ripl-rc 0.1.0 → 0.1.1
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/CHANGES +7 -1
- data/README +4 -3
- data/README.rdoc +4 -3
- data/Rakefile +75 -4
- data/lib/ripl/rc/color.rb +48 -39
- data/lib/ripl/rc/ctrld_newline.rb +3 -0
- data/lib/ripl/rc/squeeze_history.rb +17 -9
- data/lib/ripl/rc/strip_backtrace.rb +35 -0
- data/lib/ripl/rc/version.rb +1 -1
- data/lib/ripl/rc.rb +1 -0
- data/ripl-rc.gemspec +9 -3
- metadata +28 -5
data/CHANGES
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
= ripl-rc changes history
|
2
2
|
|
3
|
-
== ripl-rc 0.1.
|
3
|
+
== ripl-rc 0.1.1 -- 2011-02-24
|
4
|
+
|
5
|
+
* [ plugin] added strip_backtrace
|
6
|
+
* [general] now use Ripl::Rc::U.include(YourExtension) to customize details
|
7
|
+
* [ color] use Ripl.config[:rc_color] to configure color schema
|
8
|
+
|
9
|
+
== ripl-rc 0.1.0 -- 2011-02-23
|
4
10
|
|
5
11
|
* release early, release often
|
data/README
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
= ripl-rc 0.1.
|
1
|
+
= ripl-rc 0.1.1
|
2
2
|
by Lin Jen-Shin (godfat[http://godfat.org])
|
3
|
-
|
3
|
+
godfat (XD) godfat.org
|
4
4
|
|
5
5
|
== LINKS:
|
6
6
|
|
@@ -17,6 +17,7 @@ ripl plugins collection
|
|
17
17
|
* require 'ripl/rc/ctrld_newline'
|
18
18
|
* require 'ripl/rc/eat_whites'
|
19
19
|
* require 'ripl/rc/color'
|
20
|
+
* require 'ripl/rc/strip_backtrace'
|
20
21
|
* require 'ripl/rc' # for all of above
|
21
22
|
|
22
23
|
== REQUIREMENTS:
|
@@ -31,7 +32,7 @@ ripl plugins collection
|
|
31
32
|
|
32
33
|
Apache License 2.0
|
33
34
|
|
34
|
-
Copyright (c) 2010,
|
35
|
+
Copyright (c) 2010, Lin Jen-Shin (godfat)
|
35
36
|
|
36
37
|
Licensed under the Apache License, Version 2.0 (the "License");
|
37
38
|
you may not use this file except in compliance with the License.
|
data/README.rdoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
= ripl-rc 0.1.
|
1
|
+
= ripl-rc 0.1.1
|
2
2
|
by Lin Jen-Shin (godfat[http://godfat.org])
|
3
|
-
|
3
|
+
godfat (XD) godfat.org
|
4
4
|
|
5
5
|
== LINKS:
|
6
6
|
|
@@ -17,6 +17,7 @@ ripl plugins collection
|
|
17
17
|
* require 'ripl/rc/ctrld_newline'
|
18
18
|
* require 'ripl/rc/eat_whites'
|
19
19
|
* require 'ripl/rc/color'
|
20
|
+
* require 'ripl/rc/strip_backtrace'
|
20
21
|
* require 'ripl/rc' # for all of above
|
21
22
|
|
22
23
|
== REQUIREMENTS:
|
@@ -31,7 +32,7 @@ ripl plugins collection
|
|
31
32
|
|
32
33
|
Apache License 2.0
|
33
34
|
|
34
|
-
Copyright (c) 2010,
|
35
|
+
Copyright (c) 2010, Lin Jen-Shin (godfat)
|
35
36
|
|
36
37
|
Licensed under the Apache License, Version 2.0 (the "License");
|
37
38
|
you may not use this file except in compliance with the License.
|
data/Rakefile
CHANGED
@@ -1,6 +1,42 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
|
2
|
+
gemspec = "#{File.dirname(__FILE__)}/ripl-rc.gemspec"
|
3
|
+
|
4
|
+
if File.exist?(gemspec) && File.read(gemspec).strip != ''
|
5
|
+
require 'bundler'
|
6
|
+
# please do me a favor, don't use thor!!
|
7
|
+
b = Bundler::GemHelper.new(File.dirname(__FILE__))
|
8
|
+
Bundler::GemHelper.send(:public, :name, :version, :version_tag)
|
9
|
+
|
10
|
+
desc "Build #{b.name}-#{b.version}.gem into the pkg directory"
|
11
|
+
task :build => [:gemspec] do
|
12
|
+
b.build_gem
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "Build and install #{b.name}-#{b.version}.gem into system gems"
|
16
|
+
task :install => [:gemspec] do
|
17
|
+
b.install_gem
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Create tag #{b.version_tag} and build and push " \
|
21
|
+
"#{b.name}-#{b.version}.gem to Rubygems"
|
22
|
+
task :release => [:check_version, :gemspec] do
|
23
|
+
b.release_gem
|
24
|
+
end
|
25
|
+
|
26
|
+
task :check_version do
|
27
|
+
if ENV['VERSION'].nil?
|
28
|
+
puts("\x1b[33mPlease provide " \
|
29
|
+
"\x1b[36mVERSION\x1b[33m=\x1b[36mx.y.z\x1b[m")
|
30
|
+
exit(1)
|
31
|
+
|
32
|
+
elsif ENV['VERSION'] != b.version.to_s
|
33
|
+
puts("\x1b[33mYou gave \x1b[36mVERSION\x1b[33m=\x1b[36m#{b.version} " \
|
34
|
+
"\x1b[33mbut got\n \x1b[36m" \
|
35
|
+
"VERSION\x1b[33m=\x1b[36m#{ENV['VERSION']}\x1b[m")
|
36
|
+
exit(2)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
4
40
|
|
5
41
|
desc 'Run tests'
|
6
42
|
task :test do
|
@@ -9,7 +45,39 @@ end
|
|
9
45
|
|
10
46
|
desc 'Generate gemspec'
|
11
47
|
task :gemspec do
|
48
|
+
require 'pathname'
|
12
49
|
require 'ripl/rc/version'
|
50
|
+
|
51
|
+
def dir
|
52
|
+
@dir ||= File.dirname(__FILE__)
|
53
|
+
end
|
54
|
+
|
55
|
+
def to_regexpes pathes
|
56
|
+
pathes.map{ |ignore|
|
57
|
+
if ignore =~ /\*/
|
58
|
+
to_regexpes(Dir["**/#{ignore}"])
|
59
|
+
else
|
60
|
+
Regexp.new("^#{Regexp.escape(ignore)}")
|
61
|
+
end
|
62
|
+
}.flatten
|
63
|
+
end
|
64
|
+
|
65
|
+
def ignore_files
|
66
|
+
@ignore_files ||= to_regexpes(
|
67
|
+
File.read("#{dir}/.gitignore").split("\n") + ['.git/'])
|
68
|
+
end
|
69
|
+
|
70
|
+
def gem_files
|
71
|
+
@gem_files ||= gem_files_find(Pathname.new(File.dirname(__FILE__)))
|
72
|
+
end
|
73
|
+
|
74
|
+
def gem_files_find path
|
75
|
+
path.children.select(&:file?).map{ |file| file.to_s[(dir.size+1)..-1] }.
|
76
|
+
reject{ |file| ignore_files.find{ |ignore| file.to_s =~ ignore }} +
|
77
|
+
|
78
|
+
path.children.select(&:directory?).map{ |dir| gem_files_find(dir)}.flatten
|
79
|
+
end
|
80
|
+
|
13
81
|
File.open('ripl-rc.gemspec', 'w'){ |f|
|
14
82
|
f <<
|
15
83
|
Gem::Specification.new do |s|
|
@@ -17,6 +85,9 @@ task :gemspec do
|
|
17
85
|
s.version = Ripl::Rc::VERSION
|
18
86
|
|
19
87
|
s.add_dependency('ripl')
|
88
|
+
%w[bacon rr].each{ |g|
|
89
|
+
s.add_development_dependency(g)
|
90
|
+
}
|
20
91
|
|
21
92
|
s.authors = ['Lin Jen-Shin (godfat)']
|
22
93
|
s.email = ['godfat (XD) godfat.org']
|
@@ -27,8 +98,8 @@ task :gemspec do
|
|
27
98
|
|
28
99
|
s.date = Time.now.strftime('%Y-%m-%d')
|
29
100
|
s.rubygems_version = Gem::VERSION
|
30
|
-
s.files =
|
31
|
-
s.test_files =
|
101
|
+
s.files = gem_files
|
102
|
+
s.test_files = gem_files.grep(/test_.+?\.rb$/)
|
32
103
|
s.extra_rdoc_files = ['CHANGES', 'README', "#{s.name}.gemspec"]
|
33
104
|
s.rdoc_options = ['--main', 'README']
|
34
105
|
s.require_paths = ['lib']
|
data/lib/ripl/rc/color.rb
CHANGED
@@ -3,54 +3,63 @@ require 'ripl'
|
|
3
3
|
|
4
4
|
module Ripl::Rc; end
|
5
5
|
module Ripl::Rc::Color
|
6
|
-
|
7
|
-
colors = {
|
8
|
-
String => :green ,
|
9
|
-
Numeric => :red ,
|
10
|
-
Symbol => :cyan ,
|
11
|
-
Array => :blue ,
|
12
|
-
Hash => :blue ,
|
13
|
-
NilClass => :magenta,
|
14
|
-
TrueClass => :magenta,
|
15
|
-
FalseClass => :magenta,
|
16
|
-
Object => :yellow
|
17
|
-
}
|
6
|
+
include Ripl::Rc # makes U avaliable
|
18
7
|
|
8
|
+
def format_result result
|
19
9
|
case result
|
20
|
-
when String ; send(colors[String ]){ "'#{result}'" }
|
21
|
-
when Numeric; send(colors[Numeric ]){ result }
|
22
|
-
when Symbol ; send(colors[Symbol ]){ ":#{result}" }
|
23
|
-
when Array ; send(colors[Array ]){ '[' } +
|
24
|
-
|
25
|
-
send(colors[Array ]){ ', ' }) +
|
26
|
-
send(colors[Array ]){ ']' }
|
27
|
-
when Hash ; send(colors[Hash ]){ '{' } +
|
28
|
-
|
29
|
-
send(colors[Hash ]){ '=>' } +
|
10
|
+
when String ; U.send(U.colors[String ]){ "'#{result}'" }
|
11
|
+
when Numeric; U.send(U.colors[Numeric ]){ result }
|
12
|
+
when Symbol ; U.send(U.colors[Symbol ]){ ":#{result}" }
|
13
|
+
when Array ; U.send(U.colors[Array ]){ '[' } +
|
14
|
+
result.map{ |e| format_result(e) }.join(
|
15
|
+
U.send(U.colors[Array ]){ ', ' }) +
|
16
|
+
U.send(U.colors[Array ]){ ']' }
|
17
|
+
when Hash ; U.send(U.colors[Hash ]){ '{' } +
|
18
|
+
result.map{ |k, v| format_result(k) +
|
19
|
+
U.send(U.colors[Hash ]){ '=>' } +
|
30
20
|
format_result(v) }.join(
|
31
|
-
send(colors[Hash ]){ ', ' }) +
|
32
|
-
send(colors[Hash ]){ '}' }
|
33
|
-
else ; if colors[result.class]
|
34
|
-
send(colors[result.class]){ result.inspect }
|
21
|
+
U.send(U.colors[Hash ]){ ', ' }) +
|
22
|
+
U.send(U.colors[Hash ]){ '}' }
|
23
|
+
else ; if U.colors[result.class]
|
24
|
+
U.send(U.colors[result.class]){ result.inspect }
|
35
25
|
else
|
36
|
-
send(colors[Object ]){ result.inspect }
|
26
|
+
U.send(U.colors[Object ]){ result.inspect }
|
37
27
|
end
|
38
28
|
end
|
39
29
|
end
|
40
30
|
|
41
|
-
|
42
|
-
|
43
|
-
|
31
|
+
module Imp
|
32
|
+
def colors
|
33
|
+
Ripl.config[:rc_color]
|
34
|
+
end
|
44
35
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
36
|
+
def color rgb
|
37
|
+
"\x1b[#{rgb}m" + (block_given? ? "#{yield}#{reset}" : '')
|
38
|
+
end
|
39
|
+
|
40
|
+
def black █ color(30, &block); end
|
41
|
+
def red █ color(31, &block); end
|
42
|
+
def green █ color(32, &block); end
|
43
|
+
def yellow █ color(33, &block); end
|
44
|
+
def blue █ color(34, &block); end
|
45
|
+
def magenta █ color(35, &block); end
|
46
|
+
def cyan █ color(36, &block); end
|
47
|
+
def white █ color(37, &block); end
|
48
|
+
def reset █ color('', &block); end
|
49
|
+
end
|
54
50
|
end
|
55
51
|
|
52
|
+
module Ripl::Rc::U; extend Ripl::Rc::Color::Imp; end
|
53
|
+
|
56
54
|
Ripl::Shell.include(Ripl::Rc::Color)
|
55
|
+
Ripl.config[:rc_color] ||= {
|
56
|
+
String => :green ,
|
57
|
+
Numeric => :red ,
|
58
|
+
Symbol => :cyan ,
|
59
|
+
Array => :blue ,
|
60
|
+
Hash => :blue ,
|
61
|
+
NilClass => :magenta,
|
62
|
+
TrueClass => :magenta,
|
63
|
+
FalseClass => :magenta,
|
64
|
+
Object => :yellow
|
65
|
+
}
|
@@ -3,9 +3,13 @@ require 'ripl'
|
|
3
3
|
|
4
4
|
module Ripl::Rc; end
|
5
5
|
module Ripl::Rc::SqueezeHistory
|
6
|
+
include Ripl::Rc # makes U avaliable
|
7
|
+
|
6
8
|
# write squeezed history
|
7
9
|
def write_history
|
8
|
-
File.open(history_file, 'w'){ |f|
|
10
|
+
File.open(history_file, 'w'){ |f|
|
11
|
+
f.puts U.squeeze_history(history).join("\n")
|
12
|
+
}
|
9
13
|
end
|
10
14
|
|
11
15
|
# squeeze history on memory too
|
@@ -15,15 +19,19 @@ module Ripl::Rc::SqueezeHistory
|
|
15
19
|
super
|
16
20
|
end
|
17
21
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
result
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
module Imp
|
23
|
+
def squeeze_history history
|
24
|
+
history.to_a.inject([]){ |result, item|
|
25
|
+
if result.last == item
|
26
|
+
result
|
27
|
+
else
|
28
|
+
result << item
|
29
|
+
end
|
30
|
+
}
|
31
|
+
end
|
26
32
|
end
|
27
33
|
end
|
28
34
|
|
35
|
+
module Ripl::Rc::U; extend Ripl::Rc::SqueezeHistory::Imp; end
|
36
|
+
|
29
37
|
Ripl::Shell.include(Ripl::Rc::SqueezeHistory)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
|
2
|
+
require 'ripl'
|
3
|
+
|
4
|
+
module Ripl::Rc; end
|
5
|
+
module Ripl::Rc::StripBacktrace
|
6
|
+
include Ripl::Rc # makes U avaliable
|
7
|
+
|
8
|
+
# strip backtrace until ripl
|
9
|
+
def format_error e
|
10
|
+
"#{e.class}: #{e.message}\n #{U.strip_backtrace(e).join("\n ")}"
|
11
|
+
end
|
12
|
+
|
13
|
+
module Imp
|
14
|
+
def strip_backtrace e
|
15
|
+
home(cwd(snip(e)))
|
16
|
+
end
|
17
|
+
|
18
|
+
def home b
|
19
|
+
b.map{ |p| p.sub(ENV['HOME'], '~') }
|
20
|
+
end
|
21
|
+
|
22
|
+
def cwd b
|
23
|
+
b.map{ |p| p.sub(Dir.pwd, './') }
|
24
|
+
end
|
25
|
+
|
26
|
+
def snip e
|
27
|
+
e.backtrace[0..e.backtrace.rindex{ |l| l =~ /\(ripl\):\d+:in `.+?'/ } ||
|
28
|
+
-1]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
module Ripl::Rc::U; extend Ripl::Rc::StripBacktrace::Imp; end
|
34
|
+
|
35
|
+
Ripl::Shell.include(Ripl::Rc::StripBacktrace)
|
data/lib/ripl/rc/version.rb
CHANGED
data/lib/ripl/rc.rb
CHANGED
data/ripl-rc.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{ripl-rc}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.1"
|
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-02-
|
9
|
+
s.date = %q{2011-02-24}
|
10
10
|
s.description = %q{ripl plugins collection}
|
11
11
|
s.email = ["godfat (XD) godfat.org"]
|
12
12
|
s.extra_rdoc_files = ["CHANGES", "README", "ripl-rc.gemspec"]
|
13
|
-
s.files = [".gitignore", "CHANGES", "Gemfile", "LICENSE", "README", "README.rdoc", "Rakefile", "TODO", "lib/ripl/rc.rb", "lib/ripl/rc/color.rb", "lib/ripl/rc/ctrld_newline.rb", "lib/ripl/rc/eat_whites.rb", "lib/ripl/rc/squeeze_history.rb", "lib/ripl/rc/
|
13
|
+
s.files = [".gitignore", "CHANGES", "Gemfile", "LICENSE", "README", "README.rdoc", "Rakefile", "TODO", "ripl-rc.gemspec", "lib/ripl/rc.rb", "lib/ripl/rc/color.rb", "lib/ripl/rc/ctrld_newline.rb", "lib/ripl/rc/eat_whites.rb", "lib/ripl/rc/squeeze_history.rb", "lib/ripl/rc/strip_backtrace.rb", "lib/ripl/rc/version.rb", "test/test_squeeze_history.rb"]
|
14
14
|
s.homepage = %q{http://github.com/godfat/ripl-rc}
|
15
15
|
s.rdoc_options = ["--main", "README"]
|
16
16
|
s.require_paths = ["lib"]
|
@@ -23,10 +23,16 @@ Gem::Specification.new do |s|
|
|
23
23
|
|
24
24
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
25
25
|
s.add_runtime_dependency(%q<ripl>, [">= 0"])
|
26
|
+
s.add_development_dependency(%q<bacon>, [">= 0"])
|
27
|
+
s.add_development_dependency(%q<rr>, [">= 0"])
|
26
28
|
else
|
27
29
|
s.add_dependency(%q<ripl>, [">= 0"])
|
30
|
+
s.add_dependency(%q<bacon>, [">= 0"])
|
31
|
+
s.add_dependency(%q<rr>, [">= 0"])
|
28
32
|
end
|
29
33
|
else
|
30
34
|
s.add_dependency(%q<ripl>, [">= 0"])
|
35
|
+
s.add_dependency(%q<bacon>, [">= 0"])
|
36
|
+
s.add_dependency(%q<rr>, [">= 0"])
|
31
37
|
end
|
32
38
|
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.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-02-
|
12
|
+
date: 2011-02-24 00:00:00.000000000 +08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ripl
|
17
|
-
requirement: &
|
17
|
+
requirement: &2152294800 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,7 +22,29 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2152294800
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: bacon
|
28
|
+
requirement: &2152262760 !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *2152262760
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: rr
|
39
|
+
requirement: &2152171240 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
45
|
+
type: :development
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *2152171240
|
26
48
|
description: ripl plugins collection
|
27
49
|
email:
|
28
50
|
- godfat (XD) godfat.org
|
@@ -41,13 +63,14 @@ files:
|
|
41
63
|
- README.rdoc
|
42
64
|
- Rakefile
|
43
65
|
- TODO
|
66
|
+
- ripl-rc.gemspec
|
44
67
|
- lib/ripl/rc.rb
|
45
68
|
- lib/ripl/rc/color.rb
|
46
69
|
- lib/ripl/rc/ctrld_newline.rb
|
47
70
|
- lib/ripl/rc/eat_whites.rb
|
48
71
|
- lib/ripl/rc/squeeze_history.rb
|
72
|
+
- lib/ripl/rc/strip_backtrace.rb
|
49
73
|
- lib/ripl/rc/version.rb
|
50
|
-
- ripl-rc.gemspec
|
51
74
|
- test/test_squeeze_history.rb
|
52
75
|
has_rdoc: true
|
53
76
|
homepage: http://github.com/godfat/ripl-rc
|