blog post: remove binding.pry
This commit is contained in:
parent
520e832b33
commit
d976a8f504
@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: "Remove current binding.pry from pry"
|
||||||
|
date: 2014-11-14 15:27:42 +0100
|
||||||
|
comments: true
|
||||||
|
categories:
|
||||||
|
- pry
|
||||||
|
- ruby
|
||||||
|
---
|
||||||
|
|
||||||
|
If you are a ruby user and find it annoying to remove [binding.pry](http://pryrepl.org/) by hand, you may
|
||||||
|
find the following snippet useful. (Put it in your ~/.pryrc to use it)
|
||||||
|
|
||||||
|
```ruby .pryrc
|
||||||
|
Pry.config.commands.command "remove-pry", "Remove current pry" do
|
||||||
|
require 'pry/commands/edit/file_and_line_locator'
|
||||||
|
file_name, remove_line =
|
||||||
|
Pry::Command::Edit::FileAndLineLocator.from_binding(_pry_.current_binding)
|
||||||
|
temp_file = Tempfile.new('foo')
|
||||||
|
i = 0
|
||||||
|
File.foreach(file_name) do |line|
|
||||||
|
i += 1
|
||||||
|
if i == remove_line
|
||||||
|
line.gsub!(/binding.pry(\s)?/, "")
|
||||||
|
temp_file.write line unless line =~ /\A[[:space:]]*\z/
|
||||||
|
else
|
||||||
|
temp_file.write line
|
||||||
|
end
|
||||||
|
end
|
||||||
|
temp_file.close
|
||||||
|
FileUtils.cp(temp_file.path, file_name)
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usage**
|
||||||
|
|
||||||
|
Before:
|
||||||
|
```ruby debug.rb
|
||||||
|
# ...
|
||||||
|
if foo == :bar
|
||||||
|
binding.pry
|
||||||
|
a_shiny_method
|
||||||
|
end
|
||||||
|
# ...
|
||||||
|
```
|
||||||
|
|
||||||
|
```ruby in pry
|
||||||
|
pry> remove-pry
|
||||||
|
```
|
||||||
|
|
||||||
|
After:
|
||||||
|
```ruby debug.rb
|
||||||
|
# ...
|
||||||
|
if foo == :bar
|
||||||
|
a_shiny_method
|
||||||
|
end
|
||||||
|
# ...
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user