binding.repl 0.10.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 881260583be0c5997a75febf99efbf065f60a529
4
- data.tar.gz: 986efe28b8769dd1ffeac275eba4498d91450580
3
+ metadata.gz: c545da807e38567cab20601c50fdd8ffd36f8fad
4
+ data.tar.gz: 623dd1a001140557e2f1ee8821bf2d0630fe5384
5
5
  SHA512:
6
- metadata.gz: 676af3d0f78e7b4f26d625a7cbef0658ef1432fda4454316281a734cb7c0caae95efe81f4d61ce033b99ef0e76904935e3dc4921ff2499e73ddfb9c50dd019f7
7
- data.tar.gz: bbb6a3e476662d05180eb93cd06cab283b001a62b60ad15580898dcbc11f0b3065f863afd4f2502e8b00cd6072d2ac0d268692973329092cb9aa718f38a5a41b
6
+ metadata.gz: ceb58d6786c6d564cea9b3f9c37ef251b4494d1f9547b2a18e7c202ab7d6f02cfb200c2da165156b3e239a10528c5d06b11024d28670f896e534d287ff2b27b1
7
+ data.tar.gz: d211a14e759a9d1cf1a5c747bdd38ba9dc3178c1512de577bb5d0f6b2315110b779f2d28d7b73b9a98f8a2cc4857d86781e003b9c25a707c71384b5abaa92540
@@ -7,17 +7,14 @@ rvm:
7
7
  - 2.1.0
8
8
  - ruby-head
9
9
  - rbx
10
- - jruby-19mode
10
+ - jruby
11
11
 
12
- matrix:
13
- allow_failures:
14
- # TravisCI:
15
- # jruby-d19 is not installed - installing.
16
- # Searching for binary rubies, this might take some time.
17
- # Requested binary installation but no rubies are available to download, consider skipping --binary flag.
18
- # Gemset '' does not exist, 'rvm jruby-d19 do rvm gemset create ' first, or append '--create'.
19
- # The command "rvm use jruby-d19 --install --binary --fuzzy" failed and exited with 2 during setup.
20
- - rvm: jruby-19mode
12
+ script:
13
+ - rake
14
+ - ruby test/isolation/lazy_irb_require_test.rb
15
+ - ruby test/isolation/lazy_pry_require_test.rb
16
+ - ruby test/isolation/lazy_rib_require_test.rb
17
+ - ruby test/isolation/lazy_ripl_require_test.rb
21
18
 
22
19
  notifications:
23
20
  email: true
@@ -1,3 +1,18 @@
1
+ == v1.0.0 (2014-02-09)
2
+ - add binding.repl!
3
+ a shortcut to `binding.repl.auto`. (#26)
4
+
5
+ - remove toml parser as a runtime dependency.
6
+ brings the number of runtime dependencies binding.repl has from 3 to 0. (#27)
7
+
8
+ - remove rc file support
9
+ if i find the time i might provide the feature in a `binding.repl-rcfile` gem.
10
+ (related #25)
11
+
12
+ - add isolation tests
13
+ add tests to test/isolation that confirm a require of "binding.repl" does not
14
+ attempt to require a console(e.g: "irb").
15
+
1
16
  == v0.10.0 (2014-02-08)
2
17
  - add DELIMITER_REGEXP to BindingRepl::ENV.
3
18
  it is a single reference kept to /[,:]/ which is used when parsing
data/Gemfile CHANGED
@@ -7,14 +7,13 @@ end
7
7
 
8
8
  group :test do
9
9
  gem "rspec-mocks"
10
- gem "minitest"
10
+ gem "minitest", require: "minitest/autorun"
11
11
  end
12
12
 
13
13
  group :test, :repls do
14
14
  gem 'ripl'
15
15
  gem 'pry'
16
16
  gem 'rib'
17
- gem "fakefs", require: "fakefs/safe"
18
17
  end
19
18
 
20
19
  platform :rbx do
data/README.md CHANGED
@@ -6,12 +6,12 @@
6
6
  __DESCRIPTION__
7
7
 
8
8
  __binding.repl__ can start a number of different ruby consoles at runtime.
9
- IRB, ripl, rib, and pry(of course!) can be invoked at runtime in any context
10
- that an instance of `Binding` closes over. I owe credit to John Mair([banisterfiend](https://github.com/banister)),
11
- the creator of pry, for seeing the potential in a console that can be started at
12
- runtime and bound to the context of a `Binding` easily.
9
+ IRB, ripl, rib, and pry(of course!) can be started at runtime in any context
10
+ that an instance of `Binding` closes over. credit is owed to John Mair([banisterfiend](https://github.com/banister)),
11
+ the original author of pry, for seeing the potential in a console that can be started at
12
+ runtime and bound to a `Binding` with ease.
13
13
 
14
- the interface to invoke pry at runtime has become known in a lot of circles and
14
+ the interface to start pry at runtime(`binding.pry`) has become known in a lot of circles and
15
15
  I thought it'd be cool to offer the same feature to other REPLs.
16
16
 
17
17
  __FEATURES__
@@ -19,9 +19,13 @@ __FEATURES__
19
19
  - `binding.pry` for all ruby consoles
20
20
  - start the consoles IRB, Pry, Ripl, or Rib at runtime
21
21
  - option to auto discover and start the first available console
22
- - enable or disable at runtime(a la Pry)
23
- - configurable via shell environment variables and an optional RC file in `$HOME`.
22
+ - default auto order is configurable via shell environment variable and at runtime.
23
+ - it can be enabled or disabled at runtime(like pry)
24
24
  - easily extended to support new consoles.
25
+ - lazy require of consoles (e.g: `binding.repl.irb` requires "irb"). <br>
26
+ `Kernel#require` is never called more than once for a given console.
27
+ - zero (gemspec) runtime dependencies.
28
+ - ships with a helpful [doc/](https://github.com/robgleeson/binding.repl/tree/master/doc) directory
25
29
 
26
30
  __EXAMPLES__
27
31
 
@@ -38,30 +42,27 @@ end
38
42
 
39
43
  _Auto discovery_
40
44
 
41
- the first available console can be loaded with `binding.repl.auto`. the default order
42
- is defined `["pry", "ripl", "rib", "irb"]` but it can be changed at runtime, through
43
- an RC file, and with shell environment variables.
45
+ the first available console can be loaded with `binding.repl.auto` or if you're in a
46
+ hurry `binding.repl!`. the default order is defined as `["pry", "ripl", "rib", "irb"]` but
47
+ it can be changed at runtime and with shell environment variables.
44
48
 
45
49
  ```ruby
46
50
  class Foo
47
51
  # auto discover and start the first available console.
48
52
  binding.repl.auto
49
53
 
50
- # change default load order of auto (pry first, etc..)
51
- Binding.repl.auto_order = ["pry", "ripl", "irb"]
54
+ # same as 'binding.repl.auto' but in a hurry
55
+ binding.repl!
56
+
57
+ # change default load order of auto (irb first, etc..)
58
+ BindingRepl.auto_order = ["irb", "ripl"]
52
59
  end
53
60
  ```
54
61
 
55
62
  __DOCS__
56
63
 
57
- - RCFILE <br>
58
- configure the default order of `binding.repl.auto` with an RC file.
59
-
60
- see [doc/rcfile.md](https://github.com/robgleeson/binding.repl/blob/master/doc/rcfile.md)
61
-
62
64
  - SHELL ENVIRONMENT VARIABLES <br>
63
- temporarily disable the RC file or configure the default of order of `binding.repl.auto` with shell
64
- envionment variables.
65
+ configure the default order used by `binding.repl.auto` with shell envionment variables.
65
66
 
66
67
  see [doc/shellvariables.md](https://github.com/robgleeson/binding.repl/blob/master/doc/shellvariables.md)
67
68
 
@@ -72,6 +73,11 @@ __DOCS__
72
73
 
73
74
  see [doc/runtimeoptions.md](https://github.com/robgleeson/binding.repl/blob/master/doc/runtimeoptions.md)
74
75
 
76
+ - EXIT VALUES <br>
77
+ binding.repl and repl exit values.
78
+
79
+ see [doc/exit_values.md](https://github.com/robgleeson/binding.repl/blob/master/doc/exit_values.md)
80
+
75
81
  - ENABLE/DISABLE AT RUNTIME <br>
76
82
  binding.repl can be enabled or disabled at runtime.
77
83
 
@@ -79,9 +85,12 @@ __DOCS__
79
85
 
80
86
  __DEPENDENCIES__
81
87
 
82
- binding.repl doesn't depend on anything but `toml`. it's up to you to meet the
83
- console dependencies(pry, irb, rib, and/or ripl). `binding.repl.{ripl,pry,rib,irb}`
84
- will try to load the appropiate console for you if it looks like it hasn't been loaded yet.
88
+ binding.repl has 0 (gemspec) runtime dependencies. <br>
89
+ irb, pry, rib, and ripl can be installed manually and binding.repl will delay their require
90
+ until you try to start a console at runtime(e.g: `binding.repl.irb`).
91
+
92
+ binding.repl has no load dependencies on external gems or the standard library. <br>
93
+ it should be light to load and prevent eager-loading of dependencies you don't use at runtime.
85
94
 
86
95
  __RUBIES__
87
96
 
@@ -100,6 +109,13 @@ bundle install
100
109
  rake test # run tests
101
110
  ```
102
111
 
112
+ _the isolation tests_
113
+
114
+ tests inside `test/isolation/` are meant to be run as standalone tests and are excluded
115
+ from a regular test run through 'rake test'. the tests inside `test/isolation/` make sure
116
+ a require of "binding.repl" does not attempt to require any consoles. the CI service TravisCI
117
+ takes care of running each isolation test in its own process on every push.
118
+
103
119
  __INSTALL__
104
120
 
105
121
  ```
@@ -5,7 +5,7 @@ Gem::Specification.new do |spec|
5
5
  spec.version = BindingRepl.version
6
6
  spec.authors = ["Public Domain"]
7
7
  spec.email = ["robert@flowof.info"]
8
- spec.description = "binding.repl: binding.pry for all ruby consoles"
8
+ spec.description = "binding.repl can start a number of different ruby consoles at runtime"
9
9
  spec.summary = spec.description
10
10
  spec.homepage = "https://github.com/robgleeson/binding.repl"
11
11
  spec.license = "Public Domain"
@@ -16,18 +16,9 @@ Gem::Specification.new do |spec|
16
16
  spec.require_paths = ["lib"]
17
17
  spec.required_ruby_version = ">= 1.9.2"
18
18
 
19
- spec.add_runtime_dependency "toml", "~> 0.0.3"
20
- spec.add_development_dependency "bundler", "~> 1.3"
21
- spec.add_development_dependency "rake"
22
-
23
19
  spec.post_install_message = <<-INSTALL_MESSAGE
24
-
25
- ** binding.repl **
26
- Thanks for installing v#{BindingRepl.version}!
27
- Check out ChangeLog.txt to read about what's changed.
28
-
29
- ChangeLog.txt
20
+ == binding.repl v#{BindingRepl.version}
21
+ ChangeLog.txt:
30
22
  https://github.com/robgleeson/binding.repl/blob/v#{BindingRepl.version}/ChangeLog.txt
31
-
32
23
  INSTALL_MESSAGE
33
24
  end
@@ -0,0 +1,53 @@
1
+ __EXIT VALUES__
2
+
3
+ a repl exit value is returned when `binding.repl.{irb,pry,ripl,rib,auto}` has <br>
4
+ been called and the repl has exited through "exit".
5
+
6
+ __IRB__
7
+
8
+ for the IRB example I used a nested IRB session who passes an exit value back <br>
9
+ through to a parent session:
10
+
11
+ ```
12
+ irb(main):001:0> exit "hello world!"
13
+ => #<BindingRepl::ExitValue:0x007fb3124e6cc8 @object="hello world!">
14
+ irb(main):002:0> method(:exit).owner
15
+ => IRB::ExtendCommandBundle
16
+ ```
17
+
18
+ __pry__
19
+
20
+ pry exits a session through a pry command called 'exit'. the difference between a <br>
21
+ pry command and a ruby method is that a command is not mapped as a ruby method in <br>
22
+ the active context. like IRB though, the exit command exists partially to allow a <br>
23
+ value to be passed back to the caller:
24
+
25
+ ```
26
+ [1] pry(main)> exit "Hello!"
27
+ => #<BindingRepl::ExitValue:0x007fd95d1f4670 @object="Hello!">
28
+ [2] pry(main)>
29
+ ```
30
+
31
+ __rib__
32
+
33
+ 'exit' inside rib resolves back to `Kernel#exit`. it wasn't immediately clear to me how <br>
34
+ to send back a custom value with rib but for an example you can see how it works: <br>
35
+
36
+ ```
37
+ main(0)>> binding.repl.rib
38
+ main(1)>> exit
39
+ => #<BindingRepl::ExitValue:0x007faab19cc328 @object=#<Object:0x007faab1a16d60>>
40
+ main(0)>> method(:exit).owner
41
+ => Kernel
42
+ main(0)>>
43
+ ```
44
+
45
+ __ripl__
46
+
47
+ 'ripl' is similar to rib. i couldn't figure out how to pass a value back to the caller <br>
48
+ and 'exit' resolves to `Kernel#exit` like on rib: <br>
49
+
50
+ ```
51
+ >> exit
52
+ => #<BindingRepl::ExitValue:0x007faab2d2cee0 @object=nil>
53
+ ```
@@ -2,20 +2,9 @@ __SHELL ENVIRONMENT VARIABLES__
2
2
 
3
3
  __$auto\_order__
4
4
 
5
- binding.repl can start the first available console through `binding.repl.auto`. the lookup order
6
- can be defined in an RC file or with an environment variable. the environment variable is simply
7
- named `auto_order` and takes precendece over an RC file when defined. values can be separated by
8
- a comma(`,`) or a colon(`:`).
5
+ binding.repl can start the first available console through `binding.repl.auto` or the shortcut
6
+ `binding.repl!`. the default lookup order can be changed by setting an environment variable:
9
7
 
10
8
  example
11
9
 
12
10
  $ auto_order=pry,irb ruby myscript.rb
13
-
14
- __$disable\_rc__
15
-
16
- the `disable_rc` environment variable can be set to '1' or 'true' to disable or abort the load
17
- of `$HOME/.binding.repl.rc`.
18
-
19
- example
20
-
21
- $ disable_rc=1 ruby myscript.rb
@@ -43,7 +43,9 @@ class BindingRepl
43
43
  # a Proc that is expected to start a repl.
44
44
  # the Proc is passed a `Binding` and a Hash of options.
45
45
  #
46
- # @return [void]
46
+ # @return [nil, Symbol]
47
+ # returns the return value of a method definition.
48
+ # on 2.1+ that could be the method name as a symbol, or nil on <2.1.
47
49
  #
48
50
  def self.add(console, initializer, runner)
49
51
  LOOKUP[console.to_s] = [initializer, runner]
@@ -58,6 +60,19 @@ class BindingRepl
58
60
  @lookup = LOOKUP
59
61
  end
60
62
 
63
+ #
64
+ # iterates through BindingRepl.auto_order and starts the first available console.
65
+ #
66
+ # @raise [LoadError]
67
+ # raises a LoadError when BindingRepl.auto_order is empty.
68
+ #
69
+ # @raise [LoadError]
70
+ # raises a LoadError when no consoles in BindingRepl.auto_order can be loaded
71
+ # via Kernel#require.
72
+ #
73
+ # @return [BindingRepl::ExitValue]
74
+ # returns an instance of {BindingRepl::ExitValue} when the repl has exited.
75
+ #
61
76
  def auto
62
77
  consoles = Binding.repl.auto_order
63
78
  value = run_any_console(consoles)
@@ -103,12 +118,10 @@ end
103
118
 
104
119
  require_relative "binding.repl/core_ext/binding"
105
120
  require_relative "binding.repl/env"
106
- require_relative "binding.repl/rcfile"
107
121
  require_relative "binding.repl/exit_value"
108
122
  require_relative "binding.repl/version"
109
123
  require_relative "binding.repl/console/pry"
110
124
  require_relative "binding.repl/console/irb"
111
125
  require_relative "binding.repl/console/ripl"
112
126
  require_relative "binding.repl/console/rib"
113
- BindingRepl::RCFile.load
114
127
  BindingRepl.auto_order = BindingRepl::ENV.auto_order
@@ -6,4 +6,8 @@ class Binding
6
6
  def repl
7
7
  Binding.repl.new(self)
8
8
  end
9
+
10
+ def repl!
11
+ repl.auto
12
+ end
9
13
  end
@@ -1,6 +1,5 @@
1
1
  class BindingRepl
2
- VERSION = "0.10.0".freeze
3
-
2
+ VERSION = "1.0.0".freeze
4
3
  def self.version
5
4
  VERSION
6
5
  end
@@ -1,8 +1,8 @@
1
1
  require_relative "setup"
2
2
  class BindingReplAutoTest < MiniTest::Test
3
- include BindingRepl::Mock
3
+ include BindingRepl::RSpecMocks
4
4
  def setup
5
- @before = BindingRepl.auto_order
5
+ @before = BindingRepl.auto_order.dup
6
6
  super
7
7
  end
8
8
 
@@ -1,7 +1,7 @@
1
1
  require_relative "setup"
2
2
  require "irb"
3
3
  class BindingReplIrbTest < MiniTest::Test
4
- include BindingRepl::Mock
4
+ include BindingRepl::RSpecMocks
5
5
  def test_irb
6
6
  expect_any_instance_of(::IRB::Irb).to receive(:eval_input)
7
7
  binding.repl.irb
@@ -1,6 +1,6 @@
1
1
  require_relative "setup"
2
2
  class BindingReplPryTest < MiniTest::Test
3
- include BindingRepl::Mock
3
+ include BindingRepl::RSpecMocks
4
4
  def test_pry
5
5
  expect(Pry).to receive(:start).with(instance_of(Binding), {})
6
6
  binding.repl.pry
@@ -1,6 +1,6 @@
1
1
  require_relative "setup"
2
2
  class BindingReplRibTest < MiniTest::Test
3
- include BindingRepl::Mock
3
+ include BindingRepl::RSpecMocks
4
4
  def test_rib
5
5
  expect(Rib).to receive(:anchor).with(instance_of(Binding), {})
6
6
  binding.repl.rib
@@ -1,6 +1,6 @@
1
1
  require_relative "setup"
2
2
  class BindingReplRiplTest < MiniTest::Test
3
- include BindingRepl::Mock
3
+ include BindingRepl::RSpecMocks
4
4
  def test_ripl
5
5
  expect(Ripl).to receive(:start).with({binding: instance_of(Binding)})
6
6
  binding.repl.ripl
@@ -0,0 +1,12 @@
1
+ require_relative "setup"
2
+ class BindingTest < MiniTest::Test
3
+ include BindingRepl::RSpecMocks
4
+ def test_return_value_of_repl
5
+ assert_instance_of BindingRepl, binding.repl
6
+ end
7
+
8
+ def test_delegate_to_auto
9
+ expect_any_instance_of(BindingRepl).to receive(:auto)
10
+ binding.repl!
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ require "bundler/setup"
2
+ require "minitest/autorun"
3
+ class LazyIRBTest < MiniTest::Test
4
+ def test_lazy_irb
5
+ require "binding.repl"
6
+ assert_equal true, binding.repl.respond_to?(:irb)
7
+ assert_equal nil, defined?(IRB)
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require "bundler/setup"
2
+ require "minitest/autorun"
3
+ class LazyPryTest < MiniTest::Test
4
+ def test_lazy_pry
5
+ require "binding.repl"
6
+ assert_equal true, binding.repl.respond_to?(:pry)
7
+ assert_equal nil, defined?(Pry)
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require "bundler/setup"
2
+ require "minitest/autorun"
3
+ class LazyRibTest < MiniTest::Test
4
+ def test_lazy_rib
5
+ require "binding.repl"
6
+ assert_equal true, binding.repl.respond_to?(:rib)
7
+ assert_equal nil, defined?(Rib)
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require "bundler/setup"
2
+ require "minitest/autorun"
3
+ class LazyRiplTest < MiniTest::Test
4
+ def test_lazy_pry
5
+ require "binding.repl"
6
+ assert_equal true, binding.repl.respond_to?(:ripl)
7
+ assert_equal nil, defined?(Ripl)
8
+ end
9
+ end
@@ -1,5 +1,3 @@
1
1
  require "bundler"
2
2
  Bundler.require :default, :test
3
- require "minitest/unit"
4
- require "minitest/autorun"
5
- require_relative "support/binding.repl/mock"
3
+ require_relative "support/binding.repl/rspec_mocks"
@@ -1,4 +1,4 @@
1
- module BindingRepl::Mock
1
+ module BindingRepl::RSpecMocks
2
2
  include RSpec::Mocks::ExampleMethods
3
3
 
4
4
  def setup
metadata CHANGED
@@ -1,58 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binding.repl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Public Domain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-08 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: toml
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 0.0.3
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 0.0.3
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '1.3'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '1.3'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- description: 'binding.repl: binding.pry for all ruby consoles'
11
+ date: 2014-02-09 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: binding.repl can start a number of different ruby consoles at runtime
56
14
  email:
57
15
  - robert@flowof.info
58
16
  executables: []
@@ -70,7 +28,7 @@ files:
70
28
  - UNLICENSE.txt
71
29
  - binding.repl.gemspec
72
30
  - doc/disableatruntime.md
73
- - doc/rcfile.md
31
+ - doc/exit_values.md
74
32
  - doc/runtimeoptions.md
75
33
  - doc/shellvariables.md
76
34
  - lib/binding.repl.rb
@@ -81,30 +39,28 @@ files:
81
39
  - lib/binding.repl/core_ext/binding.rb
82
40
  - lib/binding.repl/env.rb
83
41
  - lib/binding.repl/exit_value.rb
84
- - lib/binding.repl/rcfile.rb
85
42
  - lib/binding.repl/version.rb
86
43
  - test/binding_repl_auto_test.rb
87
44
  - test/binding_repl_env_test.rb
88
45
  - test/binding_repl_irb_test.rb
89
46
  - test/binding_repl_pry_test.rb
90
- - test/binding_repl_rcfile_test.rb
91
47
  - test/binding_repl_rib_test.rb
92
48
  - test/binding_repl_ripl_test.rb
49
+ - test/binding_test.rb
50
+ - test/isolation/lazy_irb_require_test.rb
51
+ - test/isolation/lazy_pry_require_test.rb
52
+ - test/isolation/lazy_rib_require_test.rb
53
+ - test/isolation/lazy_ripl_require_test.rb
93
54
  - test/setup.rb
94
- - test/support/binding.repl/mock.rb
55
+ - test/support/binding.repl/rspec_mocks.rb
95
56
  homepage: https://github.com/robgleeson/binding.repl
96
57
  licenses:
97
58
  - Public Domain
98
59
  metadata: {}
99
- post_install_message: |2+
100
-
101
- ** binding.repl **
102
- Thanks for installing v0.10.0!
103
- Check out ChangeLog.txt to read about what's changed.
104
-
105
- ChangeLog.txt
106
- https://github.com/robgleeson/binding.repl/blob/v0.10.0/ChangeLog.txt
107
-
60
+ post_install_message: |2
61
+ == binding.repl v1.0.0
62
+ ChangeLog.txt:
63
+ https://github.com/robgleeson/binding.repl/blob/v1.0.0/ChangeLog.txt
108
64
  rdoc_options: []
109
65
  require_paths:
110
66
  - lib
@@ -123,14 +79,18 @@ rubyforge_project:
123
79
  rubygems_version: 2.2.2
124
80
  signing_key:
125
81
  specification_version: 4
126
- summary: 'binding.repl: binding.pry for all ruby consoles'
82
+ summary: binding.repl can start a number of different ruby consoles at runtime
127
83
  test_files:
128
84
  - test/binding_repl_auto_test.rb
129
85
  - test/binding_repl_env_test.rb
130
86
  - test/binding_repl_irb_test.rb
131
87
  - test/binding_repl_pry_test.rb
132
- - test/binding_repl_rcfile_test.rb
133
88
  - test/binding_repl_rib_test.rb
134
89
  - test/binding_repl_ripl_test.rb
90
+ - test/binding_test.rb
91
+ - test/isolation/lazy_irb_require_test.rb
92
+ - test/isolation/lazy_pry_require_test.rb
93
+ - test/isolation/lazy_rib_require_test.rb
94
+ - test/isolation/lazy_ripl_require_test.rb
135
95
  - test/setup.rb
136
- - test/support/binding.repl/mock.rb
96
+ - test/support/binding.repl/rspec_mocks.rb
@@ -1,20 +0,0 @@
1
- __RCFILE__
2
-
3
- binding.repl reads a configuration file from `$HOME/.binding.repl.rc`.
4
- the configuration file is written in a human readable and writable
5
- language called [toml](https://github.com/mojombo/toml).
6
-
7
- at the moment the only configuration option is to define the order that
8
- `binding.repl.auto` will use to look for ruby consoles. the example sets
9
- up pry to be the first preference, then ripl, then rib, and finally irb.
10
-
11
- ```toml
12
- [auto]
13
- order = ["pry", "ripl", "rib", "irb"]
14
- ```
15
-
16
- __DISABLE OR OVERRIDE__
17
-
18
- the RC file is optional. if it doesn't exist that's cool.
19
- it can be temporarily disabled and overriden by setting [shell environment variables](https://github.com/robgleeson/binding.repl/blob/master/doc/shellvariables.md)
20
- when it does exist.
@@ -1,20 +0,0 @@
1
- require "toml"
2
- module BindingRepl::RCFile
3
- module_function
4
- def path
5
- File.join ENV["HOME"], ".binding.repl.rc"
6
- end
7
-
8
- def enabled?
9
- BindingRepl::ENV.enable_rc_file?
10
- end
11
-
12
- def load
13
- return nil unless enabled? and File.readable?(path)
14
- content = File.read(path)
15
- parsed = TOML::Parser.new(content).parsed
16
- Binding.repl.auto_order = parsed["auto"]["order"]
17
- rescue StandardError => e
18
- warn "binding.repl: '#{path}' read failed."
19
- end
20
- end
@@ -1,34 +0,0 @@
1
- require_relative "setup"
2
- testcase = if defined?(Rubinius)
3
- # skip Rubinius (breaks with FakeFS).
4
- Object
5
- else
6
- MiniTest::Test
7
- end
8
-
9
- class BindingReplRCFileTest < testcase
10
- DIR = File.dirname BindingRepl::RCFile.path
11
- FILENAME = File.basename BindingRepl::RCFile.path
12
-
13
- def setup
14
- @before = BindingRepl.auto_order
15
- FakeFS.activate!
16
- dir = FakeFS::FileSystem.add DIR
17
- file = FakeFS::FakeFile.new FILENAME, dir
18
- file.content = <<-RCFILE
19
- [auto]
20
- order = ["fakerepl", "irb"]
21
- RCFILE
22
- dir[file.name] = file
23
- end
24
-
25
- def teardown
26
- BindingRepl.auto_order = @before
27
- FakeFS.deactivate!
28
- end
29
-
30
- def test_auto_order_defined_by_rc_file
31
- BindingRepl::RCFile.load
32
- assert_equal ["fakerepl", "irb"], BindingRepl.auto_order
33
- end
34
- end