irt 1.1.1 → 1.1.2
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/README.markdown +18 -20
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/irt +9 -6
- data/irt.gemspec +2 -2
- data/irtrc +1 -1
- data/lib/irt/commands/core.rb +1 -1
- data/lib/irt/commands/help.rb +22 -17
- data/lib/irt/commands/test.rb +2 -2
- data/lib/irt/differ.rb +6 -6
- data/lib/irt/directives/test.rb +9 -9
- data/lib/irt/extensions/irb/context.rb +4 -4
- data/lib/irt/extensions/irb.rb +1 -1
- data/lib/irt/hunks.rb +3 -3
- data/lib/irt/log.rb +10 -7
- data/lib/irt.rb +50 -62
- metadata +12 -12
data/README.markdown
CHANGED
@@ -506,7 +506,7 @@ which should work quite well without any change:
|
|
506
506
|
# IRT.vi_command_format ="vi -c 'startinsert' %1$s +%2$d"
|
507
507
|
|
508
508
|
# the format to build the command to launch the ri tool
|
509
|
-
# IRT.ri_command_format = "qri -f #{
|
509
|
+
# IRT.ri_command_format = "qri -f #{Dye.color? ? 'ansi' : 'plain'} %s"
|
510
510
|
|
511
511
|
# add your command format if you want to use another editor than nano or vi
|
512
512
|
# default 'open -t %1$s' on MacOX; 'kde-open %1$s' or 'gnome-open %1$s' un unix/linux; '%1$s' on windoze
|
@@ -527,25 +527,23 @@ The default color styles of IRT should be OK in most situation, anyway, if you r
|
|
527
527
|
you can switch off the color completely (IRT.force_color = false) or you can also
|
528
528
|
redefine the colors by redefining them in your .irtrc file.
|
529
529
|
|
530
|
-
The following are the default
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
:diff_a_color => :cyan,
|
548
|
-
:diff_b_color => :green } , true)
|
530
|
+
The following are the default Dye (gem) styles, change them at will:
|
531
|
+
|
532
|
+
IRT.dye_styles = { :null => :clear,
|
533
|
+
|
534
|
+
:log_color => :blue,
|
535
|
+
:file_color => :cyan,
|
536
|
+
:interactive_color => :magenta,
|
537
|
+
:inspect_color => :clear,
|
538
|
+
:binding_color => :yellow,
|
539
|
+
:actual_color => :green,
|
540
|
+
:ignored_color => :yellow,
|
541
|
+
|
542
|
+
:error_color => :red,
|
543
|
+
:ok_color => :green,
|
544
|
+
:diff_color => :yellow,
|
545
|
+
:diff_a_color => :cyan,
|
546
|
+
:diff_b_color => :green }
|
549
547
|
|
550
548
|
### Note about IRT.autoload_helper_files
|
551
549
|
|
data/Rakefile
CHANGED
@@ -20,7 +20,7 @@ task :install, :force do |t, args|
|
|
20
20
|
File.open('VERSION', 'w') {|f| f.puts version }
|
21
21
|
gem_name = "#{name}-#{version}.gem"
|
22
22
|
sh %(gem build #{name}.gemspec)
|
23
|
-
sh %(gem install #{gem_name} --local)
|
23
|
+
sh %(gem install #{gem_name} --local --no-rdoc --no-ri)
|
24
24
|
puts <<-EOS.gsub(/^ {6}/, '')
|
25
25
|
|
26
26
|
*******************************************************************************
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.2
|
data/bin/irt
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
|
-
require 'irt'
|
5
4
|
require 'fileutils'
|
6
5
|
require 'tempfile'
|
7
6
|
require 'optparse'
|
7
|
+
require 'prompter'
|
8
|
+
require 'dye'
|
8
9
|
|
9
10
|
|
10
|
-
|
11
|
+
version = File.read(File.expand_path('../../VERSION', __FILE__)).strip
|
12
|
+
|
13
|
+
copy = Dye.dye "irt #{version} (c) 2010-2011 Domizio Demichelis", :blue, :bold
|
11
14
|
|
12
15
|
options = {}
|
13
16
|
|
@@ -37,7 +40,7 @@ EOB
|
|
37
40
|
end
|
38
41
|
|
39
42
|
opts.on( '-v', '--version', 'Shows the version and exits' ) do
|
40
|
-
puts
|
43
|
+
puts version
|
41
44
|
exit
|
42
45
|
end
|
43
46
|
|
@@ -62,7 +65,7 @@ paths = if ARGV.empty?
|
|
62
65
|
|
63
66
|
files = paths.map do |path|
|
64
67
|
unless File.exists?(path)
|
65
|
-
next if
|
68
|
+
next if Prompter.no? %(Do you want to create the file "#{path}"?), :hint => '[<enter=y|n]', :default => 'y'
|
66
69
|
options[:interactive_eof] = true
|
67
70
|
dirname = File.dirname(path)
|
68
71
|
FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
|
@@ -72,7 +75,7 @@ files = paths.map do |path|
|
|
72
75
|
end.flatten
|
73
76
|
|
74
77
|
if files.empty?
|
75
|
-
|
78
|
+
Prompter.say_notice 'No *.irt files to run'
|
76
79
|
exit
|
77
80
|
end
|
78
81
|
|
@@ -95,7 +98,7 @@ ENV['IRT_INTERACTIVE_EOF'] = options[:interactive_eof].inspect if options[:inter
|
|
95
98
|
files.each do |file|
|
96
99
|
ENV['IRT_COMMAND'] = sprintf cmd_format, file, options[:irb_options], options[:rails_env]
|
97
100
|
unless system(ENV['IRT_COMMAND'])
|
98
|
-
puts "\e[0m" if
|
101
|
+
puts "\e[0m" if Dye.color?
|
99
102
|
exit(1)
|
100
103
|
end
|
101
104
|
end
|
data/irt.gemspec
CHANGED
@@ -11,8 +11,8 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.description = 'If you use IRT in place of irb or rails console, you will have more tools that will make your life a lot easier.'
|
12
12
|
|
13
13
|
s.add_runtime_dependency('differ', [">= 0.1.1"])
|
14
|
-
s.add_runtime_dependency('
|
15
|
-
s.add_runtime_dependency('prompter', [">= 0.1.
|
14
|
+
s.add_runtime_dependency('dye', [">= 0.1.1"])
|
15
|
+
s.add_runtime_dependency('prompter', [">= 0.1.2"])
|
16
16
|
s.add_runtime_dependency('fastri', [">= 0.3.1.1"])
|
17
17
|
|
18
18
|
s.executables = ['irt', 'irt_irb', 'irt_rails2']
|
data/irtrc
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
# IRT.vi_command_format ="vi -c 'startinsert' %1$s +%2$d"
|
31
31
|
|
32
32
|
# the format to build the command to launch the ri tool
|
33
|
-
# IRT.ri_command_format = "qri -f #{
|
33
|
+
# IRT.ri_command_format = "qri -f #{Dye.color? ? 'ansi' : 'plain'} %s"
|
34
34
|
|
35
35
|
# add your command format if you want to use another editor than nano or vi
|
36
36
|
# default 'open -t %1$s' on MacOX; 'kde-open %1$s' or 'gnome-open %1$s' un unix/linux; '%1$s' on windoze
|
data/lib/irt/commands/core.rb
CHANGED
@@ -41,7 +41,7 @@ module IRT
|
|
41
41
|
IRB.irb_at_exit
|
42
42
|
str = "Rerunning: `#{ENV['IRT_COMMAND']}`"
|
43
43
|
puts
|
44
|
-
puts " #{str} "
|
44
|
+
puts IRT.dye(" #{str} ", "*** #{str} ***", :error_color, :bold, :reversed)
|
45
45
|
puts
|
46
46
|
exec ENV["IRT_COMMAND"]
|
47
47
|
end
|
data/lib/irt/commands/help.rb
CHANGED
@@ -5,25 +5,25 @@ module IRT
|
|
5
5
|
def irt_help
|
6
6
|
ensure_session
|
7
7
|
puts %(
|
8
|
-
#{" NOTICE "
|
9
|
-
- The #{"Commands"
|
10
|
-
- The #{"Directives"
|
11
|
-
- The #{"Extensions"
|
8
|
+
#{label " NOTICE ", :log_color}
|
9
|
+
- The #{IRT.dye "Commands", :interactive_color, :bold} are methods generally available in any IRT session
|
10
|
+
- The #{IRT.dye "Directives", :file_color, :bold} are methods available in any file but not in IRT sessions
|
11
|
+
- The #{IRT.dye "Extensions", :log_color, :bold} are methods available anywhere
|
12
12
|
|
13
|
-
#{" Inspecting Commands "
|
13
|
+
#{label " Inspecting Commands ", :interactive_color}
|
14
14
|
irt object Opens an inspecting session into object
|
15
15
|
vdiff|vd obj_a, obj_b Prints the visual diff of the yaml dump of 2 objects
|
16
16
|
cat args Similar to system cat
|
17
17
|
ls args Similar to system ls
|
18
18
|
|
19
|
-
#{" Log Commands "
|
19
|
+
#{label " Log Commands ", :interactive_color}
|
20
20
|
log|l [limit] Prints limit or 'tail_size' lines of the virtual log
|
21
21
|
full_log|ll Prints all the lines in the virtual log
|
22
22
|
print_lines|pl Prints the last lines of the current session
|
23
23
|
without numbers (for easy copying)
|
24
24
|
print_all_lines|pll Like print_line but prints all the sessions lines
|
25
25
|
|
26
|
-
#{" In Place Editing Commands "
|
26
|
+
#{label " In Place Editing Commands ", :interactive_color}
|
27
27
|
(<editor> can be 'vi', 'nano|nn', 'edit|ed')
|
28
28
|
<editor> Uses <editor> to open the current evalued file at
|
29
29
|
the current evalued line for in place edit
|
@@ -37,14 +37,14 @@ module IRT
|
|
37
37
|
<editor> n Uses <editor> to open the backtraced file [n] at
|
38
38
|
the backtraced line
|
39
39
|
|
40
|
-
#{" Copy-Edit Commands "
|
40
|
+
#{label( " Copy-Edit Commands ", :interactive_color ) + IRT.dye(" (use copy_to_clipboard_command)", :interactive_color, :bold)}
|
41
41
|
copy_lines|cl Copy the last session lines
|
42
42
|
copy_all_lines|cll Copy the lines of all the sessions
|
43
43
|
cnano|cnn Like nano, but copy the last session lines first
|
44
44
|
cvi Like vi, but copy the last session lines first
|
45
45
|
cedit|ced Like edit, but copy the last session lines first
|
46
46
|
|
47
|
-
#{" Test Commands "
|
47
|
+
#{label(" Test Commands ", :interactive_color) + IRT.dye(" (only available in interactive sessions)", :interactive_color, :bold)}
|
48
48
|
add_desc|dd desc Adds a description for the test in the log
|
49
49
|
add_test|tt Adds a test in the log, checking the last value (_)
|
50
50
|
by automatically choosing the :_eql?, or :_yaml_eql?
|
@@ -52,15 +52,15 @@ module IRT
|
|
52
52
|
add_test|tt desc Like add_test but adds a 'desc' directive first'
|
53
53
|
save_as|sa path Saves the current irt file as path and runs it
|
54
54
|
|
55
|
-
#{" FileUtils Commands "
|
55
|
+
#{label " FileUtils Commands ", :interactive_color}
|
56
56
|
All the FileUtils methods are availabe as IRT Commands
|
57
57
|
(e.g. pwd, touch, mkdir, mv, cp, rm, rm_rf, compare_files, ...)
|
58
58
|
|
59
|
-
#{" Enhanced Commands "
|
59
|
+
#{label " Enhanced Commands ", :interactive_color}
|
60
60
|
p, pp, ap, y When invoked with no arguments print the last_value
|
61
61
|
(e.g. just type 'y' instead 'y _')
|
62
62
|
|
63
|
-
#{" Documentation Commands "
|
63
|
+
#{label " Documentation Commands ", :interactive_color}
|
64
64
|
ri to_search Search the ri doc for to_search (no quotes needed)
|
65
65
|
ri obj.any_method Search the method.owner ri doc for of any_method
|
66
66
|
(no quotes needed, and completion available)
|
@@ -69,30 +69,30 @@ module IRT
|
|
69
69
|
ri n Search the ri doc for the method n in a multiple
|
70
70
|
choices list
|
71
71
|
|
72
|
-
#{" Misc Commands "
|
72
|
+
#{label " Misc Commands ", :interactive_color}
|
73
73
|
x|q Aliases for exit (from the current session)
|
74
74
|
xx|qq Aliases for abort (abort the irt process)
|
75
75
|
status|ss Prints the session status line
|
76
76
|
rerun|rr Reruns the same file
|
77
77
|
irt_help|hh Shows this screen
|
78
78
|
|
79
|
-
#{" Session Directives "
|
79
|
+
#{label " Session Directives ", :file_color}
|
80
80
|
irt Opens an interactive session which retains the
|
81
81
|
current variables and the last value (_)
|
82
82
|
irt binding Opens a binding session at the line of the call
|
83
83
|
|
84
|
-
#{" Test Directives "
|
84
|
+
#{label(" Test Directives ", :file_color) + IRT.dye(" (auto added by the Test Commands)", :file_color, :bold)}
|
85
85
|
desc description Adds a description to the next test
|
86
86
|
_eql? val Runs a test checking _ == val
|
87
87
|
_yaml_eql? yaml_dump Runs a test checking y _ == yaml_dump
|
88
88
|
|
89
|
-
#{" Helper Directives "
|
89
|
+
#{label " Helper Directives ", :file_color}
|
90
90
|
insert_file file Evaluates file as it were inserted at that line
|
91
91
|
eval_file Alias for eval_file
|
92
92
|
irt_at_exit block Ensures execution of block at exit (useful for
|
93
93
|
cleanup of test env)
|
94
94
|
|
95
|
-
#{" Extensions "
|
95
|
+
#{label " Extensions ", :log_color}
|
96
96
|
Kernel#capture block Executes block and returns a string containing the
|
97
97
|
captured stdout
|
98
98
|
Object#own_methods Returns the methods implemented by the receiver
|
@@ -106,6 +106,11 @@ module IRT
|
|
106
106
|
end
|
107
107
|
alias_method :hh, :irt_help
|
108
108
|
|
109
|
+
private
|
110
|
+
def label(string, color)
|
111
|
+
IRT.dye string, color, :reversed, :bold
|
112
|
+
end
|
113
|
+
|
109
114
|
end
|
110
115
|
end
|
111
116
|
end
|
data/lib/irt/commands/test.rb
CHANGED
@@ -10,7 +10,7 @@ module IRT
|
|
10
10
|
desc_str = %(desc "#{description}")
|
11
11
|
context.current_line = desc_str
|
12
12
|
puts
|
13
|
-
puts desc_str
|
13
|
+
puts IRT.dye(desc_str, :interactive_color)
|
14
14
|
puts
|
15
15
|
end
|
16
16
|
alias_method :dd, :add_desc
|
@@ -39,7 +39,7 @@ module IRT
|
|
39
39
|
str = desc_str + test_str
|
40
40
|
context.current_line = str
|
41
41
|
puts
|
42
|
-
puts str
|
42
|
+
puts IRT.dye(str, :interactive_color)
|
43
43
|
puts
|
44
44
|
end
|
45
45
|
alias_method :tt, :add_test
|
data/lib/irt/differ.rb
CHANGED
@@ -19,11 +19,11 @@ module IRT
|
|
19
19
|
|
20
20
|
def output
|
21
21
|
out = "\n"
|
22
|
-
out <<
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
out << IRT.dye(' = same ', :reversed, :bold)
|
23
|
+
a = "#{@options[:a_marker]} #{@options[:a_label]}"
|
24
|
+
out << IRT.dye(" #{a} ", " (#{a}) ", :diff_a_color, :reversed, :bold)
|
25
|
+
b = "#{@options[:b_marker]} #{@options[:b_label]}"
|
26
|
+
out << IRT.dye(" #{b} ", " (#{b}) ", :diff_b_color, :reversed, :bold)
|
27
27
|
out << "\n"
|
28
28
|
diff = @diff.format_as(IRT::Differ::Format)
|
29
29
|
out << diff.sub(/^\n/,'')
|
@@ -48,7 +48,7 @@ module IRT
|
|
48
48
|
|
49
49
|
def process(string, mark='=', color=:null, bold=:null)
|
50
50
|
string.sub(/^\n/,'').split("\n").map do |s|
|
51
|
-
" #{mark} "
|
51
|
+
IRT.dye(" #{mark} ", " #{mark} |", color, :bold, :reversed) + ' ' + IRT.dye(s, color)
|
52
52
|
end.join("\n") + "\n"
|
53
53
|
end
|
54
54
|
|
data/lib/irt/directives/test.rb
CHANGED
@@ -31,12 +31,12 @@ module IRT
|
|
31
31
|
return unless @@tests > 0
|
32
32
|
if @@tests == @@oks
|
33
33
|
str = @@tests == 1 ? " The TEST is OK! " : " All #{@@tests} TESTs are OK! "
|
34
|
-
puts str
|
34
|
+
puts IRT.dye(str, :ok_color, :bold)
|
35
35
|
else
|
36
|
-
puts "#{@@tests} TEST#{'s' unless @@tests == 1}: "
|
37
|
-
"#{@@oks} OK#{'s' unless @@oks == 1}, "
|
38
|
-
"#{@@diffs} DIFF#{'s' unless @@diffs == 1}, "
|
39
|
-
"#{@@errors} ERROR#{'s' unless @@errors == 1}."
|
36
|
+
puts IRT.dye("#{@@tests} TEST#{'s' unless @@tests == 1}: ", :bold) +
|
37
|
+
IRT.dye("#{@@oks} OK#{'s' unless @@oks == 1}, ", :ok_color, :bold) +
|
38
|
+
IRT.dye("#{@@diffs} DIFF#{'s' unless @@diffs == 1}, ", :diff_color, :bold) +
|
39
|
+
IRT.dye("#{@@errors} ERROR#{'s' unless @@errors == 1}.", :error_color, :bold)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -64,17 +64,17 @@ module IRT
|
|
64
64
|
begin
|
65
65
|
if saved == actual
|
66
66
|
@@oks += 1
|
67
|
-
puts "#{tno}. OK!"
|
67
|
+
puts IRT.dye("#{tno}. OK!", :ok_color, :bold) + IRT.dye(" #{d}", :ok_color)
|
68
68
|
else
|
69
69
|
@@diffs += 1
|
70
|
-
puts "#{tno}. DIFFS!"
|
71
|
-
|
70
|
+
puts IRT.dye("#{tno}. DIFFS!", :diff_color, :bold) + IRT.dye(" #{d}\n ", :diff_color) +
|
71
|
+
IRT.dye(" at #{context.irb_path}: #{context.last_line_no} ", :file_color, :reversed, :bold)
|
72
72
|
puts IRT.differ.new(saved, actual, kind).output
|
73
73
|
IRT::Session.enter(:interactive) if IRT.irt_on_diffs
|
74
74
|
end
|
75
75
|
rescue Exception
|
76
76
|
@@errors += 1
|
77
|
-
puts "#{tno}. ERROR! "
|
77
|
+
puts IRT.dye("#{tno}. ERROR! ", :error_color, :bold) + IRT.dye(d, :error_color)
|
78
78
|
raise
|
79
79
|
end
|
80
80
|
end
|
@@ -59,7 +59,7 @@ module IRB
|
|
59
59
|
rescue Exception => e
|
60
60
|
@exception_raised = true
|
61
61
|
process_exception(e)
|
62
|
-
print "\e[31m" if
|
62
|
+
print "\e[31m" if Dye.color?
|
63
63
|
raise
|
64
64
|
else
|
65
65
|
log_session_line(line, line_no) unless irt_mode == :file
|
@@ -69,7 +69,7 @@ module IRB
|
|
69
69
|
%w[prompt_i prompt_s prompt_c prompt_n].each do |m|
|
70
70
|
define_method(m) do
|
71
71
|
pr = instance_variable_get("@#{m}")
|
72
|
-
col_pr =
|
72
|
+
col_pr = IRT.dye pr, "#{irt_mode}_color".to_sym
|
73
73
|
# workaround for Readline bug see http://www.ruby-forum.com/topic/213807
|
74
74
|
if IRT.fix_readline_prompt
|
75
75
|
col_pr.gsub(/^(.*)#{pr}(.*)$/, "\001\\1\002#{pr}\001\\2\002")
|
@@ -81,7 +81,7 @@ module IRB
|
|
81
81
|
|
82
82
|
def return_format(color=:actual_color, ignored=false)
|
83
83
|
ret = ignored ? @return_format.sub(/=/,'#') : @return_format
|
84
|
-
|
84
|
+
IRT.dye ret, color
|
85
85
|
end
|
86
86
|
|
87
87
|
private
|
@@ -95,7 +95,7 @@ private
|
|
95
95
|
def map_backtrace(bktr)
|
96
96
|
@backtrace_map = {}
|
97
97
|
mapped_bktr = []
|
98
|
-
reverted_error_colors = 'xxx'
|
98
|
+
reverted_error_colors = IRT.dye('xxx', :error_color).match(/^(.*)xxx(.*)$/).captures.reverse
|
99
99
|
index_format = sprintf '%s%%s%s', *reverted_error_colors
|
100
100
|
bktr.each_with_index do |m, i|
|
101
101
|
unless i + 1 > back_trace_limit || m.match(/^\(.*\)/)
|
data/lib/irt/extensions/irb.rb
CHANGED
@@ -31,7 +31,7 @@ module IRB #:nodoc:
|
|
31
31
|
@CONF[:AT_EXIT] ||= []
|
32
32
|
@CONF[:AT_EXIT] << proc{ IRT::Session.enter(:interactive) if IRB.CurrentContext.irt_mode == :file } if !!ENV['IRT_INTERACTIVE_EOF']
|
33
33
|
@CONF[:AT_EXIT] << proc{ IRT::Directives.test_summary }
|
34
|
-
@CONF[:AT_EXIT] << proc{ print "\e[0m" if
|
34
|
+
@CONF[:AT_EXIT] << proc{ print "\e[0m" if Dye.color? } # reset colors
|
35
35
|
@CONF[:RC_NAME_GENERATOR] = proc {|rc| File.expand_path '~/.irtrc' }
|
36
36
|
|
37
37
|
IRT.init
|
data/lib/irt/hunks.rb
CHANGED
@@ -37,12 +37,12 @@ module IRT
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def render_header
|
40
|
-
puts " #{header_name} "
|
40
|
+
puts IRT.dye(" #{header_name} ", "***** #{header_name} *****", color, :bold, :reversed)
|
41
41
|
end
|
42
42
|
|
43
43
|
def render_line(content, line_no)
|
44
|
-
lcontent = content
|
45
|
-
lno = ('%3d ' % line_no)
|
44
|
+
lcontent = IRT.dye content, color
|
45
|
+
lno = IRT.dye(('%3d ' % line_no), color, :reversed)
|
46
46
|
puts "#{lno} #{lcontent}"
|
47
47
|
end
|
48
48
|
|
data/lib/irt/log.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
module IRT
|
2
2
|
class Log < Array
|
3
3
|
|
4
|
-
attr_accessor :ignored_commands, :ignored_echo_commands, :non_setting_commands, :tail_size
|
4
|
+
attr_accessor :ignored_commands, :ignored_echo_commands, :non_setting_commands, :tail_size
|
5
|
+
attr_reader :status
|
5
6
|
|
6
7
|
def initialize
|
7
8
|
@ignored_echo_commands = FileUtils.own_methods
|
@@ -24,7 +25,7 @@ module IRT
|
|
24
25
|
end
|
25
26
|
|
26
27
|
def self.print_border
|
27
|
-
print ' '
|
28
|
+
print IRT.dye(' ','', :log_color, :reversed)
|
28
29
|
end
|
29
30
|
|
30
31
|
def print(limit=nil) # nil prints all
|
@@ -66,29 +67,31 @@ module IRT
|
|
66
67
|
|
67
68
|
def print_status
|
68
69
|
segments = status.map {|name,mode| status_segment(name,mode)}
|
69
|
-
puts segments.join(">>"
|
70
|
+
puts segments.join(IRT.dye(">>", :log_color, :bold))
|
70
71
|
end
|
71
72
|
|
72
73
|
def pop_status
|
73
74
|
name, mode = status.pop
|
74
75
|
return if mode == :file
|
75
|
-
puts " <<"
|
76
|
+
puts IRT.dye(" <<", :log_color, :bold) + status_segment(name, mode)
|
76
77
|
puts
|
77
78
|
end
|
78
79
|
|
79
80
|
def print_running_file
|
80
|
-
|
81
|
+
run_str = "Running: #{IRT.irt_file}"
|
82
|
+
puts IRT.dye(" #{run_str} ", "*** #{run_str} ***", :file_color, :bold, :reversed)
|
81
83
|
end
|
82
84
|
|
83
85
|
private
|
84
86
|
|
85
87
|
def print_header(tail_str='')
|
86
88
|
puts
|
87
|
-
|
89
|
+
log_head = "Virtual Log#{' '+ tail_str unless tail_str.empty?}"
|
90
|
+
puts IRT.dye(" #{log_head} ", '***** #{log_head} *****', :log_color, :bold, :reversed)
|
88
91
|
end
|
89
92
|
|
90
93
|
def status_segment(name, mode)
|
91
|
-
" #{name} "
|
94
|
+
IRT.dye(" #{name} ", "[#{name}]", "#{mode}_color".to_sym, :bold, :reversed)
|
92
95
|
end
|
93
96
|
end
|
94
97
|
end
|
data/lib/irt.rb
CHANGED
@@ -13,7 +13,7 @@ require 'irt/extensions/object'
|
|
13
13
|
require 'irt/extensions/method'
|
14
14
|
require 'irt/extensions/irb'
|
15
15
|
require 'irb/completion'
|
16
|
-
require '
|
16
|
+
require 'dye'
|
17
17
|
require 'irt/log'
|
18
18
|
require 'irt/hunks'
|
19
19
|
require 'irt/differ'
|
@@ -24,6 +24,19 @@ module IRT
|
|
24
24
|
|
25
25
|
VERSION = File.read(File.expand_path('../../VERSION', __FILE__)).strip
|
26
26
|
|
27
|
+
OS = case RbConfig::CONFIG['host_os']
|
28
|
+
when /mswin|msys|mingw32|windows/i
|
29
|
+
:windows
|
30
|
+
when /darwin|mac os/i
|
31
|
+
:macosx
|
32
|
+
when /linux/i
|
33
|
+
:linux
|
34
|
+
when /(solaris|bsd)/i
|
35
|
+
:unix
|
36
|
+
else
|
37
|
+
:unknown
|
38
|
+
end
|
39
|
+
|
27
40
|
class IndexError < RuntimeError ; end
|
28
41
|
class SessionModeError < RuntimeError ; end
|
29
42
|
class ArgumentTypeError < RuntimeError ; end
|
@@ -32,30 +45,12 @@ module IRT
|
|
32
45
|
extend self
|
33
46
|
|
34
47
|
attr_accessor :irt_on_diffs, :tail_on_irt, :fix_readline_prompt, :debug,
|
35
|
-
:full_exit, :exception_raised, :session_no, :autoload_helper_files,
|
48
|
+
:full_exit, :exception_raised, :session_no, :autoload_helper_files, :dye_styles,
|
36
49
|
:copy_to_clipboard_command, :nano_command_format, :vi_command_format, :edit_command_format, :ri_command_format
|
37
|
-
attr_reader :log, :irt_file, :differ
|
38
|
-
|
39
|
-
Colorer.def_custom_styles :bold => :bold,
|
40
|
-
:reversed => :reversed,
|
41
|
-
:null => :clear,
|
42
|
-
|
43
|
-
:log_color => :blue,
|
44
|
-
:file_color => :cyan,
|
45
|
-
:interactive_color => :magenta,
|
46
|
-
:inspect_color => :clear,
|
47
|
-
:binding_color => :yellow,
|
48
|
-
:actual_color => :green,
|
49
|
-
:ignored_color => :yellow,
|
50
|
-
|
51
|
-
:error_color => :red,
|
52
|
-
:ok_color => :green,
|
53
|
-
:diff_color => :yellow,
|
54
|
-
:diff_a_color => :cyan,
|
55
|
-
:diff_b_color => :green
|
50
|
+
attr_reader :log, :irt_file, :differ
|
56
51
|
|
57
52
|
def force_color=(bool)
|
58
|
-
|
53
|
+
Dye.color = bool
|
59
54
|
end
|
60
55
|
|
61
56
|
def init
|
@@ -65,31 +60,41 @@ module IRT
|
|
65
60
|
@tail_on_irt = false
|
66
61
|
@fix_readline_prompt = false
|
67
62
|
@autoload_helper_files = true
|
68
|
-
@
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
63
|
+
@dye_styles = { :null => :clear,
|
64
|
+
|
65
|
+
:log_color => :blue,
|
66
|
+
:file_color => :cyan,
|
67
|
+
:interactive_color => :magenta,
|
68
|
+
:inspect_color => :clear,
|
69
|
+
:binding_color => :yellow,
|
70
|
+
:actual_color => :green,
|
71
|
+
:ignored_color => :yellow,
|
72
|
+
|
73
|
+
:error_color => :red,
|
74
|
+
:ok_color => :green,
|
75
|
+
:diff_color => :yellow,
|
76
|
+
:diff_a_color => :cyan,
|
77
|
+
:diff_b_color => :green }
|
78
|
+
define_dye_method @dye_styles
|
79
|
+
case OS
|
80
|
+
when :windows
|
81
|
+
@copy_to_clipboard_command = 'clip'
|
82
|
+
@edit_command_format = '%1$s'
|
83
|
+
when :macosx
|
84
|
+
@copy_to_clipboard_command = 'pbcopy'
|
85
|
+
@edit_command_format = 'open -t %1$s'
|
86
|
+
when :linux, :unix
|
87
|
+
@copy_to_clipboard_command = 'xclip -selection c'
|
88
|
+
@edit_command_format = case ENV['DESKTOP_SESSION']
|
84
89
|
when /kde/i
|
85
90
|
'kde-open %1$s'
|
86
91
|
when /gnome/i
|
87
92
|
'gnome-open %1$s'
|
88
93
|
end
|
89
|
-
|
94
|
+
end
|
90
95
|
@vi_command_format = "vi -c 'startinsert' %1$s +%2$d"
|
91
96
|
@nano_command_format = 'nano +%2$d %1$s'
|
92
|
-
@ri_command_format = "qri -f #{
|
97
|
+
@ri_command_format = "qri -f #{Dye.color? ? 'ansi' : 'plain'} %s"
|
93
98
|
@debug = false
|
94
99
|
end
|
95
100
|
|
@@ -114,30 +119,13 @@ module IRT
|
|
114
119
|
def prompter
|
115
120
|
@prompter ||= begin
|
116
121
|
require 'prompter'
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
122
|
+
Prompter.new do |pr|
|
123
|
+
def pr.say_echo(result, opts={})
|
124
|
+
opts = {:style => IRT.dye_styles[:ignored_color]}.merge opts
|
125
|
+
say ' #> ' + result.inspect, opts
|
126
|
+
end
|
121
127
|
end
|
122
|
-
pr
|
123
128
|
end
|
124
129
|
end
|
125
130
|
|
126
|
-
private
|
127
|
-
|
128
|
-
def get_os
|
129
|
-
case RbConfig::CONFIG['host_os']
|
130
|
-
when /mswin|msys|mingw32|windows/i
|
131
|
-
:windows
|
132
|
-
when /darwin|mac os/i
|
133
|
-
:macosx
|
134
|
-
when /linux/i
|
135
|
-
:linux
|
136
|
-
when /solaris|bsd/i
|
137
|
-
:unix
|
138
|
-
else
|
139
|
-
:unknown
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
131
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: irt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 2
|
10
|
+
version: 1.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Domizio Demichelis
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01
|
18
|
+
date: 2011-02-01 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -35,19 +35,19 @@ dependencies:
|
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
38
|
+
name: dye
|
39
39
|
prerelease: false
|
40
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
hash:
|
45
|
+
hash: 25
|
46
46
|
segments:
|
47
47
|
- 0
|
48
|
-
-
|
49
|
-
-
|
50
|
-
version: 0.
|
48
|
+
- 1
|
49
|
+
- 1
|
50
|
+
version: 0.1.1
|
51
51
|
type: :runtime
|
52
52
|
version_requirements: *id002
|
53
53
|
- !ruby/object:Gem::Dependency
|
@@ -58,12 +58,12 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
hash:
|
61
|
+
hash: 31
|
62
62
|
segments:
|
63
63
|
- 0
|
64
64
|
- 1
|
65
|
-
-
|
66
|
-
version: 0.1.
|
65
|
+
- 2
|
66
|
+
version: 0.1.2
|
67
67
|
type: :runtime
|
68
68
|
version_requirements: *id003
|
69
69
|
- !ruby/object:Gem::Dependency
|