binding.repl 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.binding.repl.rc +3 -0
- data/.pryrc +1 -0
- data/ChangeLog.txt +12 -0
- data/README.md +36 -2
- data/lib/binding.repl.rb +8 -4
- data/lib/binding.repl/pry.rb +1 -1
- data/lib/binding.repl/rc.rb +17 -0
- metadata +5 -3
data/.binding.repl.rc
ADDED
data/.pryrc
CHANGED
data/ChangeLog.txt
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
== v0.5.0
|
2
|
+
- disable {$HOME,$CWD}/.binding.repl.rc loading
|
3
|
+
set ENV["BINDING_REPL_RC"] = 0 to disable load.
|
4
|
+
|
5
|
+
== v0.4.1
|
6
|
+
- read {$HOME,$CWD}/.binding.repl.rc as JSON
|
7
|
+
safer.
|
8
|
+
|
9
|
+
== v0.4.0
|
10
|
+
- read {$HOME,$CWD}/.binding.ripl.rc on load
|
11
|
+
see README for docs.
|
12
|
+
|
1
13
|
== v0.3.0
|
2
14
|
- add Binding.repl.add
|
3
15
|
add a ruby console to binding.repl
|
data/README.md
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|:----------------|:--------------------------------------------------
|
3
3
|
| Homepage | https://github.com/robgleeson/binding.repl
|
4
4
|
| Documentation | http://rubydoc.info/github/robgleeson/binding.repl
|
5
|
+
| Code Metrics | [](https://codeclimate.com/github/robgleeson/binding.repl)
|
5
6
|
| CI | [](https://travis-ci.org/robgleeson/binding.repl)
|
6
7
|
| Author | Robert Gleeson
|
7
8
|
|
@@ -32,7 +33,7 @@ __EXAMPLES__
|
|
32
33
|
class BlogsController < ApplicationController
|
33
34
|
def show
|
34
35
|
@blog = Blog.find(params[:id])
|
35
|
-
#
|
36
|
+
# starts pry, irb, or ripl in the context of 'BlogsController#show'.
|
36
37
|
binding.repl.{pry,irb,ripl}
|
37
38
|
end
|
38
39
|
end
|
@@ -74,6 +75,39 @@ class Foo
|
|
74
75
|
end
|
75
76
|
```
|
76
77
|
|
78
|
+
_WORKING WITH TEAMS_
|
79
|
+
|
80
|
+
people working in teams might have different choices for what ruby
|
81
|
+
console they like to use and __binding.repl__ tries to accomondate by
|
82
|
+
reading a `.binding.repl.rc` file from $HOME or the current working
|
83
|
+
directory. It's a JSON file with a single key-value pair.
|
84
|
+
|
85
|
+
amy prefers IRB, so her `$HOME/.binding.repl.rc` would look like this:
|
86
|
+
```javascript
|
87
|
+
{
|
88
|
+
"auto_load_order": ["irb", "pry", "ripl"]
|
89
|
+
}
|
90
|
+
```
|
91
|
+
|
92
|
+
rob prefers pry, so his `$HOME/.binding.repl.rc` would look like this:
|
93
|
+
```ruby
|
94
|
+
{
|
95
|
+
"auto_load_order": ["irb", "pry", "ripl"]
|
96
|
+
}
|
97
|
+
```
|
98
|
+
|
99
|
+
when either rob or amy wants to start their favorite ruby console
|
100
|
+
they can use `binding.repl.auto`:
|
101
|
+
|
102
|
+
```ruby
|
103
|
+
# lib/foo.rb
|
104
|
+
class Foo
|
105
|
+
# starts "irb" in the context of Foo for amy.
|
106
|
+
# starts "pry" in the context of Foo for rob.
|
107
|
+
binding.repl.auto
|
108
|
+
end
|
109
|
+
```
|
110
|
+
|
77
111
|
_RIPL & IRB_
|
78
112
|
|
79
113
|
I have only used Ripl once(to write this library) and I don't use IRB
|
@@ -107,7 +141,7 @@ __CREDIT__
|
|
107
141
|
Rest of the Pry team(!!):
|
108
142
|
|
109
143
|
- [cirwin](https://github.com/conradirwin), Conrad Irwin.
|
110
|
-
- [ryanf](https://github.com/
|
144
|
+
- [ryanf](https://github.com/rf-), Ryan Fitzgerald.
|
111
145
|
- [rking](https://github.com/rking), "rking", on adventures outside programming now.
|
112
146
|
|
113
147
|
__LICENSE__
|
data/lib/binding.repl.rb
CHANGED
@@ -18,14 +18,14 @@ class BindingRepl
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.version
|
21
|
-
"0.
|
21
|
+
"0.5.0"
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.add(console, predicate, runner)
|
25
25
|
LOOKUP[console] = [predicate, runner]
|
26
26
|
define_method(console) do |options = {}|
|
27
27
|
exit_value = invoke_console(console, options)
|
28
|
-
|
28
|
+
invoke_failed?(exit_value) ? fail!(console) : exit_value
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -46,7 +46,7 @@ class BindingRepl
|
|
46
46
|
load_order = Binding.repl.auto_load_order
|
47
47
|
load_order.each do |console|
|
48
48
|
exit_value = invoke_console(console.to_sym, {})
|
49
|
-
return exit_value unless
|
49
|
+
return exit_value unless invoke_failed?(exit_value)
|
50
50
|
end
|
51
51
|
raise LoadError, "failed to load consoles: #{load_order.join(", ")}", []
|
52
52
|
end
|
@@ -56,7 +56,7 @@ private
|
|
56
56
|
raise LoadError, "the console '#{console}' could not be loaded. is #{console} installed?", []
|
57
57
|
end
|
58
58
|
|
59
|
-
def
|
59
|
+
def invoke_failed?(exit_value)
|
60
60
|
exit_value.to_s.start_with? "binding.repl"
|
61
61
|
end
|
62
62
|
|
@@ -88,3 +88,7 @@ end
|
|
88
88
|
require_relative "binding.repl/pry"
|
89
89
|
require_relative "binding.repl/irb"
|
90
90
|
require_relative "binding.repl/ripl"
|
91
|
+
|
92
|
+
if ENV["BINDING_REPL_RC"].to_i != 0
|
93
|
+
require_relative "binding.repl/rc"
|
94
|
+
end
|
data/lib/binding.repl/pry.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
require "json"
|
2
|
+
home_rc = File.join ENV["HOME"], ".binding.repl.rc"
|
3
|
+
local_rc = File.join Dir.getwd, ".binding.repl.rc"
|
4
|
+
|
5
|
+
if File.exists?(home_rc)
|
6
|
+
json = File.read(home_rc)
|
7
|
+
end
|
8
|
+
if !File.exists?(home_rc) && File.exists?(local_rc)
|
9
|
+
json = File.read(local_rc)
|
10
|
+
end
|
11
|
+
|
12
|
+
if local_rc || home_rc
|
13
|
+
options = JSON.parse(json) rescue nil
|
14
|
+
end
|
15
|
+
if options
|
16
|
+
Binding.repl.auto_load_order = options["auto_load_order"]
|
17
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: binding.repl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-09-
|
12
|
+
date: 2013-09-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -50,6 +50,7 @@ executables: []
|
|
50
50
|
extensions: []
|
51
51
|
extra_rdoc_files: []
|
52
52
|
files:
|
53
|
+
- .binding.repl.rc
|
53
54
|
- .gitignore
|
54
55
|
- .pryrc
|
55
56
|
- ChangeLog.txt
|
@@ -61,6 +62,7 @@ files:
|
|
61
62
|
- lib/binding.repl.rb
|
62
63
|
- lib/binding.repl/irb.rb
|
63
64
|
- lib/binding.repl/pry.rb
|
65
|
+
- lib/binding.repl/rc.rb
|
64
66
|
- lib/binding.repl/ripl.rb
|
65
67
|
homepage: https://github.com/robgleeson/binding.repl
|
66
68
|
licenses:
|
@@ -83,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
85
|
version: '0'
|
84
86
|
segments:
|
85
87
|
- 0
|
86
|
-
hash:
|
88
|
+
hash: 184924604236581946
|
87
89
|
requirements: []
|
88
90
|
rubyforge_project:
|
89
91
|
rubygems_version: 1.8.23
|