ripl 0.4.2 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gemspec +1 -1
- data/CHANGELOG.rdoc +3 -0
- data/README.rdoc +6 -0
- data/lib/ripl/history.rb +3 -3
- data/lib/ripl/version.rb +1 -1
- data/ripl.gemspec +25 -0
- data/test/history_test.rb +17 -0
- metadata +3 -2
data/.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_development_dependency 'bacon-bits'
|
20
20
|
s.add_development_dependency 'bacon-rr'
|
21
21
|
s.files = Dir.glob(%w[{lib,test}/**/*.rb bin/* [A-Z]*.{txt,rdoc} ext/**/*.{rb,c} **/deps.rip]) + %w{Rakefile .gemspec}
|
22
|
-
s.files += Dir.glob('man/*')
|
22
|
+
s.files += Dir.glob(['man/*', '*.gemspec'])
|
23
23
|
s.extra_rdoc_files = ["README.rdoc", "LICENSE.txt"]
|
24
24
|
s.license = 'MIT'
|
25
25
|
end
|
data/CHANGELOG.rdoc
CHANGED
data/README.rdoc
CHANGED
@@ -155,6 +155,12 @@ see {ripl-rails}[http://github.com/cldwalker/ripl-rails].
|
|
155
155
|
* janlelis and godfat for bug fix and tweaks
|
156
156
|
* JoshCheek for bug fixes
|
157
157
|
|
158
|
+
== Bugs/Issues
|
159
|
+
Please report them {on github}[http://github.com/cldwalker/ripl/issues].
|
160
|
+
|
161
|
+
== Contributing
|
162
|
+
{See here}[http://tagaholic.me/contributing.html]
|
163
|
+
|
158
164
|
== Ripl Plugins
|
159
165
|
|
160
166
|
* {ripl-multi_line}[http://github.com/janlelis/ripl-multi_line] : evaluate multiple lines
|
data/lib/ripl/history.rb
CHANGED
@@ -9,15 +9,15 @@ module Ripl::History
|
|
9
9
|
(@history << super)[-1]
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
13
|
-
|
14
|
-
File.exists?(history_file) &&
|
12
|
+
def read_history
|
13
|
+
File.exists?(history_file) && history.empty? &&
|
15
14
|
IO.readlines(history_file).each {|e| history << e.chomp }
|
16
15
|
end
|
17
16
|
|
18
17
|
def write_history
|
19
18
|
File.open(history_file, 'w') {|f| f.write Array(history).join("\n") }
|
20
19
|
end
|
20
|
+
def before_loop() read_history end
|
21
21
|
def after_loop() write_history end
|
22
22
|
end
|
23
23
|
Ripl::Shell.include Ripl::History
|
data/lib/ripl/version.rb
CHANGED
data/ripl.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'rubygems' unless Object.const_defined?(:Gem)
|
3
|
+
require File.dirname(__FILE__) + "/lib/ripl/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "ripl"
|
7
|
+
s.version = Ripl::VERSION
|
8
|
+
s.authors = ["Gabriel Horner"]
|
9
|
+
s.email = "gabriel.horner@gmail.com"
|
10
|
+
s.homepage = "http://github.com/cldwalker/ripl"
|
11
|
+
s.summary = "ruby interactive print loop - A light, modular alternative to irb and a shell framework"
|
12
|
+
s.description = "ripl is a light, modular alternative to irb. Like irb, it loads ~/.irbrc, has autocompletion and keeps history in ~/.irb_history. Unlike irb, it is highly customizable via plugins and supports commands i.e. ripl-play. This customizability makes it easy to build custom shells (i.e. for a gem or application) and complex shells (i.e. for the web). In other words, ripl is also a shell framework."
|
13
|
+
s.required_rubygems_version = ">= 1.3.6"
|
14
|
+
s.rubyforge_project = 'tagaholic'
|
15
|
+
s.executables = %w(ripl)
|
16
|
+
s.add_dependency 'bond', '~> 0.4.0'
|
17
|
+
s.add_development_dependency 'bacon', '>= 1.1.0'
|
18
|
+
s.add_development_dependency 'rr', '>= 1.0.0'
|
19
|
+
s.add_development_dependency 'bacon-bits'
|
20
|
+
s.add_development_dependency 'bacon-rr'
|
21
|
+
s.files = Dir.glob(%w[{lib,test}/**/*.rb bin/* [A-Z]*.{txt,rdoc} ext/**/*.{rb,c} **/deps.rip]) + %w{Rakefile .gemspec}
|
22
|
+
s.files += Dir.glob(['man/*', '*.gemspec'])
|
23
|
+
s.extra_rdoc_files = ["README.rdoc", "LICENSE.txt"]
|
24
|
+
s.license = 'MIT'
|
25
|
+
end
|
data/test/history_test.rb
CHANGED
@@ -31,12 +31,29 @@ describe "History with readline" do
|
|
31
31
|
shell.history.to_a.should == %w{check the mike}
|
32
32
|
end
|
33
33
|
|
34
|
+
it "#before_loop loads previous history only when it's empty" do
|
35
|
+
File.open(HISTORY_FILE, 'w') {|f| f.write "check\nthe\nmike" }
|
36
|
+
stub(Ripl::Runner).load_rc
|
37
|
+
history = %w{already there}
|
38
|
+
shell.instance_variable_set(:@history, history.dup)
|
39
|
+
shell.before_loop
|
40
|
+
shell.history.to_a.should == history
|
41
|
+
end
|
42
|
+
|
34
43
|
it "#before_loop has empty history if no history file exists" do
|
35
44
|
stub(Ripl::Runner).load_rc
|
36
45
|
shell.before_loop
|
37
46
|
shell.history.to_a.should == []
|
38
47
|
end
|
39
48
|
|
49
|
+
it "#read_history is accessible to plugins in #before_loop" do
|
50
|
+
mod = Object.const_set "Ping_read_history", Module.new
|
51
|
+
mod.send(:define_method, 'read_history') { @history = ['pong_read_history'] }
|
52
|
+
Shell.send :include, mod
|
53
|
+
shell.before_loop
|
54
|
+
shell.history.should == ['pong_read_history']
|
55
|
+
end
|
56
|
+
|
40
57
|
it "#write_history is accessible to plugins in #after_loop" do
|
41
58
|
mod = Object.const_set "Ping_write_history", Module.new
|
42
59
|
mod.send(:define_method, 'write_history') { @history = ['pong_write_history'] }
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: ripl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.5.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Gabriel Horner
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-08-08 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -101,6 +101,7 @@ files:
|
|
101
101
|
- man/ripl.1
|
102
102
|
- man/ripl.1.html
|
103
103
|
- man/ripl.1.ronn
|
104
|
+
- ripl.gemspec
|
104
105
|
has_rdoc: true
|
105
106
|
homepage: http://github.com/cldwalker/ripl
|
106
107
|
licenses:
|