ripl-rc 0.1.5 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,5 +1,16 @@
1
1
  = ripl-rc changes history
2
2
 
3
+ == ripl-rc 0.2.0 -- 2011-04-10
4
+
5
+ * [ ripl-rc] tested with MRI 1.8.7, 1.9.2 and Rubinius 1.2.3, JRuby 1.6.0
6
+ * [ ripl-rc] fixed some conflicts with bundler
7
+ * [ ripl-rc] internal structure rearrangement
8
+ * [ ripl-rc] all plugins now have runtime enable/disable ability
9
+ e.g. run `Ripl.disable_color` to disable coloring,
10
+ `Ripl.enable_color` to enable again.
11
+ * [multiline] some tweak to make it more accurate
12
+ * [last_exception] save last exception in Ripl.last_exception
13
+
3
14
  == ripl-rc 0.1.5 -- 2011-03-26
4
15
 
5
16
  * [ bin] shows a better error message when ripl-rails can't be found
data/README CHANGED
@@ -10,6 +10,15 @@ by Lin Jen-Shin ([godfat](http://godfat.org))
10
10
 
11
11
  ripl plugins collection, take you want, leave you don't.
12
12
 
13
+ ## REQUIREMENTS:
14
+
15
+ * Tested with MRI 1.8.7, 1.9.2 and Rubinius 1.2.3, JRuby 1.6.0
16
+ * ripl
17
+
18
+ ## INSTALLATION:
19
+
20
+ gem install ripl-rc
21
+
13
22
  ## SYNOPSIS:
14
23
 
15
24
  If you don't know what is __ripl__, or just want to have an
@@ -58,21 +67,31 @@ upon session ends:
58
67
 
59
68
  * `require 'ripl/rc/squeeze_history'`
60
69
 
61
- which squeezes the same input in history, both in memory
70
+ Which squeezes the same input in history, both in memory
62
71
  and history file.
63
72
 
64
73
  * `require 'ripl/rc/mkdir_history'`
65
74
 
66
- which calls `mkdir -p` on directory which contains history
75
+ Which calls `mkdir -p` on directory which contains history
67
76
  file. For example, I put my irb_history in an directory
68
77
  might not exist before use: `~/.config/irb/irb_history`
69
78
 
70
79
  * `require 'ripl/rc/ctrld_newline'`
71
80
 
72
- ruby 1.9.2 has no this problem in irb, but 1.8 and ripl do.
81
+ Ruby 1.9.2 has no this problem in irb, but 1.8 and ripl do.
73
82
  When hitting ctrl+d to exit ripl, it would print a newline
74
83
  instead of messing up with shell prompt.
75
84
 
85
+ upon exception occurs:
86
+
87
+ * `require 'ripl/rc/last_exception'`
88
+
89
+ We can't access $! for last exception because input evaluation
90
+ is not in the block which rescues the exception, neither can we
91
+ update $! because it's a read only pseudo global variable.
92
+
93
+ This plugin makes last rescued exception stored in `Ripl.last_exception`
94
+
76
95
  upon formatting output:
77
96
 
78
97
  * `require 'ripl/rc/strip_backtrace'`
@@ -146,14 +165,6 @@ for lazies:
146
165
  This requires anything above for you, and is what `ripl rc`
147
166
  and `ripl rc rails` shell commands did.
148
167
 
149
- ## REQUIREMENTS:
150
-
151
- * ripl
152
-
153
- ## INSTALL:
154
-
155
- gem install ripl-rc
156
-
157
168
  ## LICENSE:
158
169
 
159
170
  Apache License 2.0
data/README.md CHANGED
@@ -10,6 +10,15 @@ by Lin Jen-Shin ([godfat](http://godfat.org))
10
10
 
11
11
  ripl plugins collection, take you want, leave you don't.
12
12
 
13
+ ## REQUIREMENTS:
14
+
15
+ * Tested with MRI 1.8.7, 1.9.2 and Rubinius 1.2.3, JRuby 1.6.0
16
+ * ripl
17
+
18
+ ## INSTALLATION:
19
+
20
+ gem install ripl-rc
21
+
13
22
  ## SYNOPSIS:
14
23
 
15
24
  If you don't know what is __ripl__, or just want to have an
@@ -58,21 +67,31 @@ upon session ends:
58
67
 
59
68
  * `require 'ripl/rc/squeeze_history'`
60
69
 
61
- which squeezes the same input in history, both in memory
70
+ Which squeezes the same input in history, both in memory
62
71
  and history file.
63
72
 
64
73
  * `require 'ripl/rc/mkdir_history'`
65
74
 
66
- which calls `mkdir -p` on directory which contains history
75
+ Which calls `mkdir -p` on directory which contains history
67
76
  file. For example, I put my irb_history in an directory
68
77
  might not exist before use: `~/.config/irb/irb_history`
69
78
 
70
79
  * `require 'ripl/rc/ctrld_newline'`
71
80
 
72
- ruby 1.9.2 has no this problem in irb, but 1.8 and ripl do.
81
+ Ruby 1.9.2 has no this problem in irb, but 1.8 and ripl do.
73
82
  When hitting ctrl+d to exit ripl, it would print a newline
74
83
  instead of messing up with shell prompt.
75
84
 
85
+ upon exception occurs:
86
+
87
+ * `require 'ripl/rc/last_exception'`
88
+
89
+ We can't access $! for last exception because input evaluation
90
+ is not in the block which rescues the exception, neither can we
91
+ update $! because it's a read only pseudo global variable.
92
+
93
+ This plugin makes last rescued exception stored in `Ripl.last_exception`
94
+
76
95
  upon formatting output:
77
96
 
78
97
  * `require 'ripl/rc/strip_backtrace'`
@@ -146,14 +165,6 @@ for lazies:
146
165
  This requires anything above for you, and is what `ripl rc`
147
166
  and `ripl rc rails` shell commands did.
148
167
 
149
- ## REQUIREMENTS:
150
-
151
- * ripl
152
-
153
- ## INSTALL:
154
-
155
- gem install ripl-rc
156
-
157
168
  ## LICENSE:
158
169
 
159
170
  Apache License 2.0
data/TODO CHANGED
@@ -2,3 +2,5 @@
2
2
 
3
3
  * tests for each plugin
4
4
  * doc
5
+
6
+ * read multiline histroy in irb_history
data/lib/ripl/rc.rb CHANGED
@@ -1,19 +1,25 @@
1
1
 
2
- # when session ends
2
+ # upon session ends
3
3
  require 'ripl/rc/squeeze_history'
4
4
  require 'ripl/rc/mkdir_history'
5
5
  require 'ripl/rc/ctrld_newline'
6
6
 
7
- # result format
7
+ # upon exception occurs
8
+ require 'ripl/rc/last_exception'
9
+
10
+ # upon formatting output
8
11
  require 'ripl/rc/strip_backtrace'
9
12
  require 'ripl/rc/color'
10
13
 
11
- # input modification
14
+ # upon input
12
15
  require 'ripl/rc/multiline'
13
16
  require 'ripl/rc/eat_whites'
14
17
 
15
18
  # speical tool
16
19
  require 'ripl/rc/anchor'
17
20
 
18
- # config
21
+ # about config
19
22
  require 'ripl/rc/noirbrc'
23
+
24
+ # to force ripl to load everything before bundler kicks in!
25
+ Ripl.shell
@@ -1,8 +1,9 @@
1
1
 
2
- require 'ripl'
2
+ require 'ripl/rc/u'
3
3
 
4
- module Ripl::Rc; end
5
4
  module Ripl::Rc::Anchor
5
+ include Ripl::Rc::U
6
+
6
7
  def loop_eval(str)
7
8
  case obj_or_binding = (config[:rc_anchor] ||= []).last
8
9
  when NilClass
@@ -42,6 +43,7 @@ module Ripl::Rc::Anchor
42
43
 
43
44
  module AnchorImp
44
45
  def anchor obj_or_binding
46
+ return if Ripl::Rc::Anchor.disabled?
45
47
  if Ripl.config[:rc_init].nil?
46
48
  Ripl::Runner.load_rc(Ripl.config[:riplrc])
47
49
  Ripl.config[:rc_init] = true
@@ -64,5 +66,6 @@ module Ripl::Rc::U; extend Ripl::Rc::Anchor::Imp; end
64
66
 
65
67
  Ripl::Shell.include(Ripl::Rc::Anchor)
66
68
  Ripl.config[:prompt] ||= Ripl::Shell::OPTIONS[:prompt]
67
-
68
- Ripl.extend(Ripl::Rc::Anchor::AnchorImp) # define Ripl.anchor
69
+ # define Ripl.anchor
70
+ Ripl .extend(Ripl::Rc::Anchor::AnchorImp)
71
+ Ripl::Rc.extend(Ripl::Rc::Anchor::AnchorImp)
data/lib/ripl/rc/color.rb CHANGED
@@ -1,11 +1,11 @@
1
1
 
2
- require 'ripl'
2
+ require 'ripl/rc/u'
3
3
 
4
- module Ripl::Rc; end
5
4
  module Ripl::Rc::Color
6
- include Ripl::Rc # makes U avaliable
5
+ include Ripl::Rc::U
7
6
 
8
7
  def format_result result, display=result.inspect
8
+ return super(result) if Color.disabled?
9
9
  case result
10
10
  when String ; U.send(U.colors[String ]){ display }
11
11
  when Numeric; U.send(U.colors[Numeric ]){ display }
@@ -32,6 +32,7 @@ module Ripl::Rc::Color
32
32
  end
33
33
 
34
34
  def get_error e, backtrace=e.backtrace
35
+ return super if Color.disabled?
35
36
  [format_result(e, "#{e.class.to_s}: #{e.message}"),
36
37
  backtrace.map{ |b|
37
38
  path, rest = File.split(b)
@@ -1,10 +1,12 @@
1
1
 
2
- require 'ripl'
2
+ require 'ripl/rc/u'
3
3
 
4
- module Ripl::Rc; end
5
4
  module Ripl::Rc::CtrldNewline
5
+ include Ripl::Rc::U
6
+
6
7
  # make ctrl-d end with a newline
7
8
  def after_loop
9
+ return super if CtrldNewline.disabled?
8
10
  puts unless @input
9
11
  super
10
12
  end
@@ -1,10 +1,12 @@
1
1
 
2
- require 'ripl'
2
+ require 'ripl/rc/u'
3
3
 
4
- module Ripl::Rc; end
5
4
  module Ripl::Rc::EatWhites
5
+ include Ripl::Rc::U
6
+
6
7
  # don't print empty input
7
8
  def print_result result
9
+ return super if EatWhites.disabled?
8
10
  super unless @input.strip == ''
9
11
  end
10
12
  end
@@ -0,0 +1,24 @@
1
+
2
+ require 'ripl/rc/u'
3
+
4
+ module Ripl::Rc::LastException
5
+ include Ripl::Rc::U
6
+
7
+ def print_eval_error(e)
8
+ Ripl.config[:rc_last_exception] = nil
9
+ return super if LastException.disabled?
10
+ Ripl.config[:rc_last_exception] = e
11
+ super
12
+ end
13
+
14
+ module LastExceptionImp
15
+ def last_exception
16
+ Ripl.config[:rc_last_exception]
17
+ end
18
+ end
19
+ end
20
+
21
+ Ripl::Shell.include(Ripl::Rc::LastException)
22
+ # define Ripl.last_exception
23
+ Ripl .extend(Ripl::Rc::LastException::LastExceptionImp)
24
+ Ripl::Rc.extend(Ripl::Rc::LastException::LastExceptionImp)
@@ -1,10 +1,12 @@
1
1
 
2
- require 'ripl'
2
+ require 'ripl/rc/u'
3
3
 
4
- module Ripl::Rc; end
5
4
  module Ripl::Rc::MkdirHistory
5
+ include Ripl::Rc::U
6
+
6
7
  # ensure path existed
7
8
  def write_history
9
+ return super if MkdirHistory.disabled?
8
10
  require 'fileutils'
9
11
  FileUtils.mkdir_p(File.dirname(history_file))
10
12
  super
@@ -1,26 +1,37 @@
1
1
 
2
- require 'ripl'
2
+ require 'ripl/rc/u'
3
3
 
4
4
  # from https://github.com/janlelis/ripl-multi_line
5
- module Ripl::Rc; end
6
5
  module Ripl::Rc::Multiline
6
+ include Ripl::Rc::U
7
+
8
+ # test those:
9
+ # ruby -e '"'
10
+ # ruby -e '{'
11
+ # ruby -e '['
12
+ # ruby -e '('
13
+ # ruby -e 'class C'
14
+ # ruby -e 'def f'
15
+ # ruby -e 'begin'
7
16
  ERROR_REGEXP = Regexp.new(
8
- [ "unexpected \\$end",
9
- "unterminated [a-z]+ meets end of file",
17
+ [ # string
18
+ "unterminated string meets end of file",
19
+ # mri and rubinius
20
+ "syntax error, unexpected \\$end",
10
21
  # rubinius
11
- "expecting '\\\\n' or ';'",
12
- "missing 'end'",
13
- "expecting '}'",
22
+ "expecting '.+'( or '.+')*",
14
23
  # jruby
15
24
  "syntax error, unexpected end-of-file",
16
25
  ].join('|'))
17
26
 
18
27
  def before_loop
28
+ return super if Multiline.disabled?
19
29
  @rc_multiline_buffer = []
20
30
  super
21
31
  end
22
32
 
23
33
  def prompt
34
+ return super if Multiline.disabled?
24
35
  if @rc_multiline_buffer.empty?
25
36
  super
26
37
  else
@@ -29,6 +40,7 @@ module Ripl::Rc::Multiline
29
40
  end
30
41
 
31
42
  def loop_once
43
+ return super if Multiline.disabled?
32
44
  catch(:rc_multiline_cont) do
33
45
  super
34
46
  @rc_multiline_buffer.clear
@@ -36,6 +48,7 @@ module Ripl::Rc::Multiline
36
48
  end
37
49
 
38
50
  def print_eval_error(e)
51
+ return super if Multiline.disabled?
39
52
  if e.is_a?(SyntaxError) && e.message =~ ERROR_REGEXP
40
53
  @rc_multiline_buffer << @input if @rc_multiline_buffer.empty?
41
54
  history.pop
@@ -46,6 +59,7 @@ module Ripl::Rc::Multiline
46
59
  end
47
60
 
48
61
  def loop_eval(input)
62
+ return super if Multiline.disabled?
49
63
  if @rc_multiline_buffer.empty?
50
64
  super
51
65
  else
@@ -57,6 +71,7 @@ module Ripl::Rc::Multiline
57
71
  end
58
72
 
59
73
  def handle_interrupt
74
+ return super if Multiline.disabled?
60
75
  if @rc_multiline_buffer.empty?
61
76
  super
62
77
  else
@@ -1,12 +1,17 @@
1
1
 
2
- require 'ripl'
2
+ require 'ripl/rc/u'
3
3
 
4
- module Ripl::Rc; end
5
4
  module Ripl::Rc::SqueezeHistory
6
- include Ripl::Rc # makes U avaliable
5
+ include Ripl::Rc::U
6
+
7
+ # avoid some complicated conditions...
8
+ def history
9
+ super || (@history ||= [])
10
+ end
7
11
 
8
12
  # write squeezed history
9
13
  def write_history
14
+ return super if SqueezeHistory.disabled?
10
15
  File.open(history_file, 'w'){ |f|
11
16
  f.puts U.squeeze_history(history).join("\n")
12
17
  }
@@ -14,12 +19,14 @@ module Ripl::Rc::SqueezeHistory
14
19
 
15
20
  # squeeze history on memory too
16
21
  def eval_input input
22
+ return super if SqueezeHistory.disabled?
17
23
  history.pop if input.strip == '' ||
18
24
  (history.size > 1 && input == history[-2])
19
25
  super
20
26
  end
21
27
 
22
28
  def before_loop
29
+ return super if SqueezeHistory.disabled?
23
30
  super if history.empty?
24
31
  end
25
32
 
@@ -1,17 +1,18 @@
1
1
 
2
- require 'ripl'
2
+ require 'ripl/rc/u'
3
3
 
4
- module Ripl::Rc; end
5
4
  module Ripl::Rc::StripBacktrace
6
- include Ripl::Rc # makes U avaliable
5
+ include Ripl::Rc::U
7
6
 
8
7
  # strip backtrace until ripl
9
8
  def format_error e
9
+ return super if StripBacktrace.disabled?
10
10
  message, backtrace = get_error(e, U.strip_backtrace(e, @name))
11
11
  "#{message}\n #{backtrace.join("\n ")}"
12
12
  end
13
13
 
14
14
  def get_error e, backtrace=e.backtrace
15
+ return super if StripBacktrace.disabled?
15
16
  ["#{e.class}: #{e.message}", backtrace]
16
17
  end
17
18
 
@@ -0,0 +1,11 @@
1
+
2
+ require 'ripl'
3
+ require 'readline'
4
+ Ripl.config.merge!(:readline => nil) unless
5
+ Readline::HISTORY.respond_to?(:clear) # EditLine is broken
6
+
7
+ require 'bacon'
8
+ require 'rr'
9
+ require 'fileutils'
10
+ Bacon.summary_on_exit
11
+ include RR::Adapters::RRMethods
data/lib/ripl/rc/u.rb ADDED
@@ -0,0 +1,47 @@
1
+
2
+ require 'ripl'
3
+
4
+ module Ripl::Rc; end
5
+ module Ripl::Rc::U
6
+ def self.included mod
7
+ mod.send(:include, Ripl::Rc)
8
+ class << mod
9
+ attr_accessor :disabled
10
+
11
+ def enable
12
+ self.disabled = false
13
+ end
14
+
15
+ def disable
16
+ self.disabled = true
17
+ end
18
+
19
+ def enabled?
20
+ !disabled
21
+ end
22
+
23
+ def disabled?
24
+ !!disabled
25
+ end
26
+ end
27
+
28
+ snake_name = mod.name[/::\w+$/].tr(':', ''). # remove namespaces
29
+ gsub(/([A-Z][a-z]*)/, '\\1_').downcase[0..-2]
30
+ code = (%w[enable disable].map{ |meth|
31
+ <<-RUBY
32
+ def #{meth}_#{snake_name}
33
+ #{mod.name}.#{meth}
34
+ end
35
+ RUBY
36
+ } + %w[enabled? disabled?].map{ |meth|
37
+ <<-RUBY
38
+ def #{snake_name}_#{meth}
39
+ #{mod.name}.#{meth}
40
+ end
41
+ RUBY
42
+ }).join("\n")
43
+ module_eval(code)
44
+ end
45
+ end
46
+
47
+ Ripl.extend(Ripl::Rc::U)
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Ripl
3
3
  module Rc
4
- VERSION = '0.1.5'
4
+ VERSION = '0.2.0'
5
5
  end
6
6
  end
data/ripl-rc.gemspec CHANGED
@@ -2,23 +2,22 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{ripl-rc}
5
- s.version = "0.1.5"
5
+ s.version = "0.2.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Lin Jen-Shin (godfat)"]
9
- s.date = %q{2011-03-26}
10
- s.default_executable = %q{ripl-rc}
9
+ s.date = %q{2011-04-10}
11
10
  s.description = %q{ripl plugins collection, take you want, leave you don't.}
12
11
  s.email = ["godfat (XD) godfat.org"]
13
12
  s.executables = ["ripl-rc"]
14
13
  s.extra_rdoc_files = ["CHANGES", "CONTRIBUTORS", "LICENSE", "TODO"]
15
- s.files = [".gitignore", "2011-02-28.md", "CHANGES", "CONTRIBUTORS", "Gemfile", "LICENSE", "README", "README.md", "Rakefile", "TODO", "bin/ripl-rc", "lib/ripl-rc.rb", "lib/ripl/rc.rb", "lib/ripl/rc/anchor.rb", "lib/ripl/rc/color.rb", "lib/ripl/rc/ctrld_newline.rb", "lib/ripl/rc/eat_whites.rb", "lib/ripl/rc/mkdir_history.rb", "lib/ripl/rc/multiline.rb", "lib/ripl/rc/noirbrc.rb", "lib/ripl/rc/squeeze_history.rb", "lib/ripl/rc/strip_backtrace.rb", "lib/ripl/rc/version.rb", "ripl-rc.gemspec", "screenshot.png", "task/gemgem.rb", "test/test_squeeze_history.rb"]
14
+ s.files = [".gitignore", "2011-02-28.md", "CHANGES", "CONTRIBUTORS", "Gemfile", "LICENSE", "README", "README.md", "Rakefile", "TODO", "bin/ripl-rc", "lib/ripl-rc.rb", "lib/ripl/rc.rb", "lib/ripl/rc/anchor.rb", "lib/ripl/rc/color.rb", "lib/ripl/rc/ctrld_newline.rb", "lib/ripl/rc/eat_whites.rb", "lib/ripl/rc/last_exception.rb", "lib/ripl/rc/mkdir_history.rb", "lib/ripl/rc/multiline.rb", "lib/ripl/rc/noirbrc.rb", "lib/ripl/rc/squeeze_history.rb", "lib/ripl/rc/strip_backtrace.rb", "lib/ripl/rc/test.rb", "lib/ripl/rc/u.rb", "lib/ripl/rc/version.rb", "ripl-rc.gemspec", "screenshot.png", "task/gemgem.rb", "test/test_disable_shortcut.rb", "test/test_squeeze_history.rb"]
16
15
  s.homepage = %q{http://github.com/godfat/}
17
16
  s.rdoc_options = ["--main", "README"]
18
17
  s.require_paths = ["lib"]
19
- s.rubygems_version = %q{1.6.2}
18
+ s.rubygems_version = %q{1.7.2}
20
19
  s.summary = %q{ripl plugins collection, take you want, leave you don't.}
21
- s.test_files = ["test/test_squeeze_history.rb"]
20
+ s.test_files = ["test/test_disable_shortcut.rb", "test/test_squeeze_history.rb"]
22
21
 
23
22
  if s.respond_to? :specification_version then
24
23
  s.specification_version = 3
@@ -0,0 +1,41 @@
1
+
2
+ require 'ripl/rc/test'
3
+ require 'ripl/rc'
4
+
5
+ describe Ripl::Rc::U do
6
+ before do
7
+ @names = Dir[File.expand_path(
8
+ "#{File.dirname(__FILE__)}/../lib/ripl/rc/*.rb")].
9
+ map { |path| File.basename(path)[0..-4] }.
10
+ reject{ |name| %w[version u noirbrc test].include?(name) }
11
+ @mods = Ripl::Shell.ancestors[1..-1].select{ |mod| mod < Ripl::Rc }
12
+ end
13
+
14
+ after do
15
+ @mods.each(&:enable)
16
+ end
17
+
18
+ should 'have shortcut methods' do
19
+ @names.each{ |name|
20
+ %w[enable disable].each{ |meth|
21
+ Ripl.should.respond_to?("#{meth}_#{name}") == true
22
+ }
23
+ %w[enabled? disabled?].each{ |meth|
24
+ Ripl.should.respond_to?("#{name}_#{meth}") == true
25
+ }
26
+ }
27
+ end
28
+
29
+ should 'be the same as mod methods' do
30
+ @mods.shuffle.take(@mods.size/2).each(&:disable)
31
+ @names.each{ |name|
32
+ %w[enabled? disabled?].each{ |meth|
33
+ Ripl.send("#{name}_#{meth}").should ==
34
+ @mods.find{ |mod|
35
+ mod.name[/::\w+$/].tr(':', '') ==
36
+ name.gsub(/([^_]+)/){$1.capitalize}.tr('_', '') }.
37
+ send(meth)
38
+ }
39
+ }
40
+ end
41
+ end
@@ -1,20 +1,18 @@
1
1
 
2
- require 'bacon'
3
- require 'rr'
4
- require 'fileutils'
2
+ require 'ripl/rc/test'
5
3
  require 'ripl/rc/squeeze_history'
6
- Bacon.summary_on_exit
7
- include RR::Adapters::RRMethods
8
4
 
9
5
  describe Ripl::Rc::SqueezeHistory do
10
6
  before do
11
7
  @history = '/tmp/test_ripl_history'
12
- @shell = Ripl::Shell.create(Ripl.config.merge!(:history => @history))
8
+ Ripl.config.merge!(:history => @history, :irbrc => nil)
9
+ @shell = Ripl::Shell.create(Ripl.config)
13
10
  @input = %w[foo bar bar foo bar]
11
+ @shell.before_loop
14
12
  @shell.history.clear
15
13
  end
16
14
 
17
- after do; FileUtils.rm_f(@history); end
15
+ after do; FileUtils.rm_f(@history); Ripl.enable_squeeze_history; end
18
16
 
19
17
  should 'after_loop saves squeezed history' do
20
18
  @shell.history.push(*@input)
@@ -30,4 +28,14 @@ describe Ripl::Rc::SqueezeHistory do
30
28
  times.times{ @shell.loop_once }
31
29
  @shell.history.to_a.should == %w[foo bar foo bar].map{ |i| "'#{i}'" }
32
30
  end
31
+
32
+ should 'be disabled if disabled' do
33
+ Ripl.disable_squeeze_history
34
+ times = @input.size
35
+ input = @input.dup
36
+ stub(@shell).get_input{ (@shell.history << "'#{@input.shift}'")[-1] }
37
+ stub(@shell).print_result(anything)
38
+ times.times{ @shell.loop_once }
39
+ @shell.history.to_a.should == input.map{ |i| "'#{i}'" }
40
+ end
33
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ripl-rc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-03-26 00:00:00.000000000 +08:00
13
- default_executable: ripl-rc
12
+ date: 2011-04-10 00:00:00.000000000Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: ripl
17
- requirement: &2158040060 !ruby/object:Gem::Requirement
16
+ requirement: &2156866000 !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
19
  - - ! '>='
@@ -22,10 +21,10 @@ dependencies:
22
21
  version: '0'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *2158040060
24
+ version_requirements: *2156866000
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: bacon
28
- requirement: &2158039580 !ruby/object:Gem::Requirement
27
+ requirement: &2156865520 !ruby/object:Gem::Requirement
29
28
  none: false
30
29
  requirements:
31
30
  - - ! '>='
@@ -33,10 +32,10 @@ dependencies:
33
32
  version: '0'
34
33
  type: :development
35
34
  prerelease: false
36
- version_requirements: *2158039580
35
+ version_requirements: *2156865520
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: rr
39
- requirement: &2158039100 !ruby/object:Gem::Requirement
38
+ requirement: &2156865040 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
42
41
  - - ! '>='
@@ -44,7 +43,7 @@ dependencies:
44
43
  version: '0'
45
44
  type: :development
46
45
  prerelease: false
47
- version_requirements: *2158039100
46
+ version_requirements: *2156865040
48
47
  description: ripl plugins collection, take you want, leave you don't.
49
48
  email:
50
49
  - godfat (XD) godfat.org
@@ -74,17 +73,20 @@ files:
74
73
  - lib/ripl/rc/color.rb
75
74
  - lib/ripl/rc/ctrld_newline.rb
76
75
  - lib/ripl/rc/eat_whites.rb
76
+ - lib/ripl/rc/last_exception.rb
77
77
  - lib/ripl/rc/mkdir_history.rb
78
78
  - lib/ripl/rc/multiline.rb
79
79
  - lib/ripl/rc/noirbrc.rb
80
80
  - lib/ripl/rc/squeeze_history.rb
81
81
  - lib/ripl/rc/strip_backtrace.rb
82
+ - lib/ripl/rc/test.rb
83
+ - lib/ripl/rc/u.rb
82
84
  - lib/ripl/rc/version.rb
83
85
  - ripl-rc.gemspec
84
86
  - screenshot.png
85
87
  - task/gemgem.rb
88
+ - test/test_disable_shortcut.rb
86
89
  - test/test_squeeze_history.rb
87
- has_rdoc: true
88
90
  homepage: http://github.com/godfat/
89
91
  licenses: []
90
92
  post_install_message:
@@ -107,9 +109,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
109
  version: '0'
108
110
  requirements: []
109
111
  rubyforge_project:
110
- rubygems_version: 1.6.2
112
+ rubygems_version: 1.7.2
111
113
  signing_key:
112
114
  specification_version: 3
113
115
  summary: ripl plugins collection, take you want, leave you don't.
114
116
  test_files:
117
+ - test/test_disable_shortcut.rb
115
118
  - test/test_squeeze_history.rb