ripl-rc 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,9 @@
1
+ script: 'git submodule update --init; bundle exec rake test'
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - ruby-head
6
+ - rbx
7
+ - rbx-2.0
8
+ - jruby
9
+ - ree
data/CHANGES CHANGED
@@ -1,5 +1,20 @@
1
1
  = ripl-rc changes history
2
2
 
3
+ == ripl-rc 0.2.4 -- 2011-08-03
4
+
5
+ * [ensure_after_loop] A plugin which would make sure after_loop is called.
6
+ (Some plugins need to do cleaning up in after_loop)
7
+
8
+ * [anchor ] Fixed a bug for buggy EditLine, which would raise
9
+ weird exception upon calling `HISTORY == nil`.
10
+ Now we use `.nil?` to lookup if it's nil or not.
11
+
12
+ * [multiline_history] Fixed a bug when multiline evaluation raised an
13
+ exception, it wouldn't handle the history correctly.
14
+ Moving the handling to an ensure block fixed this.
15
+
16
+ * [squeeze_history ] (Internal) Take the advantage of the new history API
17
+
3
18
  == ripl-rc 0.2.3 -- 2011-06-16
4
19
 
5
20
  Please read this for detail:
data/Gemfile CHANGED
@@ -1,3 +1,4 @@
1
1
 
2
2
  source 'http://rubygems.org'
3
+
3
4
  gemspec
data/README CHANGED
@@ -3,7 +3,7 @@ by Lin Jen-Shin ([godfat](http://godfat.org))
3
3
 
4
4
  ## LINKS:
5
5
 
6
- * [github](http://github.com/godfat/ripl-rc)
6
+ * [github](https://github.com/godfat/ripl-rc)
7
7
  * [rubygems](http://rubygems.org/gems/ripl-rc)
8
8
 
9
9
  ## DESCRIPTION:
data/README.md CHANGED
@@ -3,7 +3,7 @@ by Lin Jen-Shin ([godfat](http://godfat.org))
3
3
 
4
4
  ## LINKS:
5
5
 
6
- * [github](http://github.com/godfat/ripl-rc)
6
+ * [github](https://github.com/godfat/ripl-rc)
7
7
  * [rubygems](http://rubygems.org/gems/ripl-rc)
8
8
 
9
9
  ## DESCRIPTION:
@@ -16,6 +16,7 @@ require 'ripl/rc/squeeze_history'
16
16
  require 'ripl/rc/multiline_history_file'
17
17
  require 'ripl/rc/mkdir_history'
18
18
  require 'ripl/rc/ctrld_newline'
19
+ require 'ripl/rc/ensure_after_loop'
19
20
 
20
21
  # upon exception occurs
21
22
  require 'ripl/rc/last_exception'
@@ -31,7 +31,7 @@ module Ripl::Rc::Anchor
31
31
  # if the object is the same, then we're exiting from an anchor,
32
32
  # so don't print anything.
33
33
  def print_result result
34
- super unless result != nil &&
34
+ super unless !result.nil? &&
35
35
  result.object_id == Ripl.config[:rc_anchor_last].object_id
36
36
  end
37
37
 
@@ -4,6 +4,7 @@ require 'ripl/rc/u'
4
4
  module Ripl::Rc::Color
5
5
  include Ripl::Rc::U
6
6
 
7
+ module_function
7
8
  def format_result result, display=result.inspect
8
9
  return super(result) if Color.disabled?
9
10
  case result
@@ -0,0 +1,18 @@
1
+
2
+ require 'ripl/rc/u'
3
+
4
+ module Ripl::Rc::EnsureAfterLoop
5
+ include Ripl::Rc::U
6
+
7
+ def in_loop
8
+ return super if EnsureAfterLoop.disabled?
9
+ begin
10
+ super
11
+ rescue Exception
12
+ after_loop
13
+ raise
14
+ end
15
+ end
16
+ end
17
+
18
+ Ripl::Shell.include(Ripl::Rc::EnsureAfterLoop)
@@ -7,14 +7,14 @@ module Ripl::Rc::MultilineHistory
7
7
 
8
8
  def loop_eval(input)
9
9
  return super if MultilineHistory.disabled?
10
- result = super # might throw
10
+ super # might throw
11
+ ensure
11
12
  unless @rc_multiline_buffer.empty?
12
13
  (@rc_multiline_buffer.size + (@rc_multiline_trash || 0)).
13
14
  times{ history.pop }
14
15
  @rc_multiline_trash = 0
15
16
  history << "\n" + @rc_multiline_buffer.join("\n")
16
17
  end
17
- result
18
18
  end
19
19
 
20
20
  def handle_interrupt
@@ -1,6 +1,5 @@
1
1
 
2
2
  require 'ripl/rc/u'
3
- # require 'ripl/rc/history_ivar' # dependency
4
3
 
5
4
  module Ripl::Rc::MultilineHistoryFile
6
5
  include Ripl::Rc::U
@@ -7,9 +7,8 @@ module Ripl::Rc::SqueezeHistory
7
7
  # write squeezed history
8
8
  def write_history
9
9
  return super if SqueezeHistory.disabled?
10
- File.open(history_file, 'w'){ |f|
11
- f.puts U.squeeze_history(history).join("\n")
12
- }
10
+ @history = [U.squeeze_history(history).join("\n") + "\n"]
11
+ super
13
12
  end
14
13
 
15
14
  # squeeze history on memory too
@@ -9,3 +9,5 @@ require 'rr'
9
9
  require 'fileutils'
10
10
  Bacon.summary_on_exit
11
11
  include RR::Adapters::RRMethods
12
+
13
+ require 'ripl/rc/noirbrc'
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Ripl
3
3
  module Rc
4
- VERSION = '0.2.3'
4
+ VERSION = '0.2.4'
5
5
  end
6
6
  end
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{ripl-rc}
5
- s.version = "0.2.3"
5
+ s.version = "0.2.4"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = [%q{Lin Jen-Shin (godfat)}]
9
- s.date = %q{2011-06-16}
9
+ s.date = %q{2011-08-03}
10
10
  s.description = %q{ripl plugins collection, take you want, leave you don't.}
11
11
  s.email = [%q{godfat (XD) godfat.org}]
12
12
  s.executables = [%q{ripl-rc}]
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.files = [
19
19
  %q{.gitignore},
20
20
  %q{.gitmodules},
21
+ %q{.travis.yml},
21
22
  %q{2011-02-28.md},
22
23
  %q{CHANGES},
23
24
  %q{CONTRIBUTORS},
@@ -35,6 +36,7 @@ Gem::Specification.new do |s|
35
36
  %q{lib/ripl/rc/ctrld_newline.rb},
36
37
  %q{lib/ripl/rc/debug.rb},
37
38
  %q{lib/ripl/rc/eat_whites.rb},
39
+ %q{lib/ripl/rc/ensure_after_loop.rb},
38
40
  %q{lib/ripl/rc/last_exception.rb},
39
41
  %q{lib/ripl/rc/mkdir_history.rb},
40
42
  %q{lib/ripl/rc/multiline.rb},
@@ -48,18 +50,23 @@ Gem::Specification.new do |s|
48
50
  %q{lib/ripl/rc/version.rb},
49
51
  %q{ripl-rc.gemspec},
50
52
  %q{screenshot.png},
53
+ %q{task/.gitignore},
51
54
  %q{task/gemgem.rb},
55
+ %q{test/test_color.rb.rb},
52
56
  %q{test/test_disable_shortcut.rb},
57
+ %q{test/test_ensure_after_loop.rb},
53
58
  %q{test/test_squeeze_history.rb}]
54
59
  s.homepage = %q{https://github.com/godfat/ripl-rc}
55
60
  s.rdoc_options = [
56
61
  %q{--main},
57
62
  %q{README}]
58
63
  s.require_paths = [%q{lib}]
59
- s.rubygems_version = %q{1.8.5}
64
+ s.rubygems_version = %q{1.8.6}
60
65
  s.summary = %q{ripl plugins collection, take you want, leave you don't.}
61
66
  s.test_files = [
67
+ %q{test/test_color.rb.rb},
62
68
  %q{test/test_disable_shortcut.rb},
69
+ %q{test/test_ensure_after_loop.rb},
63
70
  %q{test/test_squeeze_history.rb}]
64
71
 
65
72
  if s.respond_to? :specification_version then
@@ -0,0 +1 @@
1
+ *.rbc
@@ -12,11 +12,15 @@ module Gemgem
12
12
  s.authors = ['Lin Jen-Shin (godfat)']
13
13
  s.email = ['godfat (XD) godfat.org']
14
14
 
15
- s.summary = File.read("#{Gemgem.dir}/README").
16
- match(/DESCRIPTION:\n\n(.+?)\n\n/m)[1]
17
- s.description = s.summary
15
+ description = File.read("#{Gemgem.dir}/README").
16
+ match(/DESCRIPTION:\n\n(.+?)(?=\n\n[^\n]+:\n)/m)[1].
17
+ lines.to_a
18
18
 
19
- s.extra_rdoc_files = %w[CHANGES CONTRIBUTORS LICENSE TODO]
19
+ s.description = description.join
20
+ s.summary = description.first
21
+
22
+ s.extra_rdoc_files = %w[CHANGES CONTRIBUTORS LICENSE TODO].select{ |f|
23
+ File.exist?(f) }
20
24
  s.rdoc_options = %w[--main README]
21
25
  s.rubygems_version = Gem::VERSION
22
26
  s.date = Time.now.strftime('%Y-%m-%d')
@@ -24,8 +28,7 @@ module Gemgem
24
28
  s.test_files = gem_files.grep(%r{^test/(.+?/)*test_.+?\.rb$})
25
29
  s.require_paths = %w[lib]
26
30
  })
27
- spec.homepage = "https://github.com/godfat/#{spec.name}" unless
28
- spec.homepage
31
+ spec.homepage ||= "https://github.com/godfat/#{spec.name}"
29
32
  spec
30
33
  end
31
34
 
@@ -142,9 +145,27 @@ end
142
145
 
143
146
  end # of gem namespace
144
147
 
145
- desc 'Run tests'
148
+ desc 'Run tests in memory'
146
149
  task :test do
147
- sh("#{Gem.ruby} -I lib -S bacon test/test_*.rb")
150
+ require 'bacon'
151
+ Bacon.extend(Bacon::TestUnitOutput)
152
+ Bacon.summary_on_exit
153
+ $LOAD_PATH.unshift('lib')
154
+ Dir['test/test_*.rb'].each{ |file| load file }
155
+ end
156
+
157
+ desc 'Run tests with shell'
158
+ task 'test:shell', :RUBY_OPTS do |t, args|
159
+ files = unless defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
160
+ 'test/test_*.rb'
161
+ else
162
+ Dir['test/test_*.rb'].join(' ')
163
+ end
164
+
165
+ cmd = [Gem.ruby, args[:RUBY_OPTS],
166
+ '-I', 'lib', '-S', 'bacon', '--quiet', files]
167
+
168
+ sh(cmd.compact.join(' '))
148
169
  end
149
170
 
150
171
  desc 'Generate rdoc'
@@ -0,0 +1,17 @@
1
+
2
+ require 'ripl/rc/test'
3
+ require 'ripl/rc/color'
4
+
5
+ describe Ripl::Rc::Color do
6
+ should 'give correct color' do
7
+ Ripl::Rc::Color.format_result(
8
+ [{0 => :a}, 'b', [nil, {false => Object}], {true => Exception.new}]).
9
+ should ==
10
+ "\e[34m[\e[m\e[34m{\e[m\e[31m0\e[m\e[34m=>\e[m\e[36m:a\e[m\e[" \
11
+ "34m}\e[m\e[34m, \e[m\e[32m\"b\"\e[m\e[34m, \e[m\e[34m[\e[m\e" \
12
+ "[35mnil\e[m\e[34m, \e[m\e[34m{\e[m\e[35mfalse\e[m\e[34m=>\e[" \
13
+ "m\e[33mObject\e[m\e[34m}\e[m\e[34m]\e[m\e[34m, \e[m\e[34m{\e" \
14
+ "[m\e[35mtrue\e[m\e[34m=>\e[m\e[35m#<Exception: Exception>\e[" \
15
+ "m\e[34m}\e[m\e[34m]\e[m"
16
+ end
17
+ end
@@ -7,7 +7,8 @@ describe Ripl::Rc::U do
7
7
  @names = Dir[File.expand_path(
8
8
  "#{File.dirname(__FILE__)}/../lib/ripl/rc/*.rb")].
9
9
  map {|path| File.basename(path)[0..-4] }.
10
- reject{|name| %w[version u noirbrc test debug].include?(name)}
10
+ reject{|name| %w[version u noirbrc test debug].include?(name)}.
11
+ each {|name| require "ripl/rc/#{name}"}
11
12
  @mods = Ripl::Shell.ancestors[1..-1].select{ |mod| mod < Ripl::Rc }
12
13
  end
13
14
 
@@ -0,0 +1,14 @@
1
+
2
+ require 'ripl/rc/test'
3
+ require 'ripl/rc/ensure_after_loop'
4
+
5
+ describe Ripl::Rc::EnsureAfterLoop do
6
+ after do; RR.verify; end
7
+
8
+ should 'call after_loop even if in_loop raises' do
9
+ @shell = Ripl.shell
10
+ mock(@shell).loop_once{ raise 'boom' }
11
+ mock(@shell).after_loop
12
+ lambda{ @shell.loop }.should.raise(RuntimeError)
13
+ end
14
+ 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.2.3
4
+ version: 0.2.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-06-16 00:00:00.000000000Z
12
+ date: 2011-08-03 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ripl
16
- requirement: &2156666920 !ruby/object:Gem::Requirement
16
+ requirement: &2153474960 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.4.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156666920
24
+ version_requirements: *2153474960
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bacon
27
- requirement: &2156666300 !ruby/object:Gem::Requirement
27
+ requirement: &2153474400 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2156666300
35
+ version_requirements: *2153474400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rr
38
- requirement: &2156665760 !ruby/object:Gem::Requirement
38
+ requirement: &2153473720 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2156665760
46
+ version_requirements: *2153473720
47
47
  description: ripl plugins collection, take you want, leave you don't.
48
48
  email:
49
49
  - godfat (XD) godfat.org
@@ -58,6 +58,7 @@ extra_rdoc_files:
58
58
  files:
59
59
  - .gitignore
60
60
  - .gitmodules
61
+ - .travis.yml
61
62
  - 2011-02-28.md
62
63
  - CHANGES
63
64
  - CONTRIBUTORS
@@ -75,6 +76,7 @@ files:
75
76
  - lib/ripl/rc/ctrld_newline.rb
76
77
  - lib/ripl/rc/debug.rb
77
78
  - lib/ripl/rc/eat_whites.rb
79
+ - lib/ripl/rc/ensure_after_loop.rb
78
80
  - lib/ripl/rc/last_exception.rb
79
81
  - lib/ripl/rc/mkdir_history.rb
80
82
  - lib/ripl/rc/multiline.rb
@@ -88,8 +90,11 @@ files:
88
90
  - lib/ripl/rc/version.rb
89
91
  - ripl-rc.gemspec
90
92
  - screenshot.png
93
+ - task/.gitignore
91
94
  - task/gemgem.rb
95
+ - test/test_color.rb.rb
92
96
  - test/test_disable_shortcut.rb
97
+ - test/test_ensure_after_loop.rb
93
98
  - test/test_squeeze_history.rb
94
99
  homepage: https://github.com/godfat/ripl-rc
95
100
  licenses: []
@@ -113,10 +118,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
118
  version: '0'
114
119
  requirements: []
115
120
  rubyforge_project:
116
- rubygems_version: 1.8.5
121
+ rubygems_version: 1.8.6
117
122
  signing_key:
118
123
  specification_version: 3
119
124
  summary: ripl plugins collection, take you want, leave you don't.
120
125
  test_files:
126
+ - test/test_color.rb.rb
121
127
  - test/test_disable_shortcut.rb
128
+ - test/test_ensure_after_loop.rb
122
129
  - test/test_squeeze_history.rb