rmtools 1.1.0 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +1 -0
- data/Rakefile +3 -2
- data/lib/rmtools.rb +2 -0
- data/lib/rmtools/console/coloring.rb +2 -1
- data/lib/rmtools/core/aliases.rb +10 -0
- data/lib/rmtools/core/arguments.rb +0 -2
- data/lib/rmtools/core/class.rb +3 -1
- data/lib/rmtools/core/object.rb +0 -2
- data/lib/rmtools/debug/binding.rb +25 -5
- data/lib/rmtools/debug/highlight.rb +2 -2
- data/lib/rmtools/debug/logging.rb +6 -5
- data/lib/rmtools/debug/present.rb +1 -0
- data/lib/rmtools/debug/traceback.rb +8 -6
- data/lib/rmtools/enumerable/hash.rb +2 -0
- data/lib/rmtools/text/string_parse.rb +5 -5
- data/lib/rmtools/text/string_simple.rb +0 -3
- metadata +6 -5
data/Manifest.txt
CHANGED
data/Rakefile
CHANGED
@@ -2,9 +2,10 @@ require 'rake'
|
|
2
2
|
require './lib/rmtools/setup'
|
3
3
|
compile_manifest
|
4
4
|
|
5
|
+
RMTools_VERSION = '1.1.2'
|
5
6
|
begin
|
6
7
|
require 'hoe'
|
7
|
-
config = Hoe.
|
8
|
+
config = Hoe.spec 'rmtools' do |h|
|
8
9
|
h.developer("Shinku Templar", "tinbka@gmail.com")
|
9
10
|
|
10
11
|
h.summary = 'Yet another Ruby applied framework'
|
@@ -37,6 +38,6 @@ Dir.chdir "ext" do
|
|
37
38
|
if File.file? 'Makefile'
|
38
39
|
system "#{make} clean" and FileUtils.rm_f "Makefile"
|
39
40
|
end
|
40
|
-
end unless ext_files_not_modified 'rmtools',
|
41
|
+
end unless ext_files_not_modified 'rmtools', RMTools_VERSION
|
41
42
|
|
42
43
|
puts "RMTools installed!"
|
data/lib/rmtools.rb
CHANGED
data/lib/rmtools/core/class.rb
CHANGED
data/lib/rmtools/core/object.rb
CHANGED
@@ -39,18 +39,38 @@ class Binding
|
|
39
39
|
def start_interaction(sandbox=true)
|
40
40
|
$__env__ = inspect_env
|
41
41
|
Kernel.puts RMTools.format_trace(caller(2)).join("\n")
|
42
|
-
$
|
42
|
+
$__env__.present
|
43
43
|
$__binding__ = self
|
44
44
|
|
45
45
|
$log << "entering irb"
|
46
|
-
$__MAIN__.irb
|
47
|
-
# Now input "irb_change_binding$__binding__" and have fun with debug
|
46
|
+
$__MAIN__.irb$__binding__
|
48
47
|
$log << "exiting irb"
|
49
48
|
|
50
49
|
if sandbox
|
51
|
-
self.eval($
|
50
|
+
self.eval($__env__.keys.map {|k, v| "#{k} = $__env__[#{k.inspect}]" if k != 'self'} * '; ')
|
52
51
|
end
|
53
52
|
$__env__ = nil
|
54
53
|
end
|
55
54
|
|
56
|
-
end
|
55
|
+
end
|
56
|
+
=begin
|
57
|
+
$ignore_gems = %w{rmtools i18n active}
|
58
|
+
$ignore_names = %w{irbrc.rb}
|
59
|
+
$ignore_path = %r{(/usr/lib/ruby/(1.8/|gems/1.8/gems/#{"(#{$ignore_gems*'|'})" if !$ignore_all_gems})#{"|(#{$ignore_names*'|'})" if $ignore_names.b})}
|
60
|
+
$binding_stack = []
|
61
|
+
set_trace_func proc {|event, file, line, id, binding_here, classname|
|
62
|
+
if file !~ $ignore_path
|
63
|
+
if event == 'call'
|
64
|
+
$binding_stack << binding_here
|
65
|
+
elsif !$keep_binding_stack and event == 'return'
|
66
|
+
$binding_stack.pop
|
67
|
+
elsif event == 'raise'
|
68
|
+
puts Painter.c_b "STOP!!!"
|
69
|
+
$keep_binding_stack = true
|
70
|
+
end
|
71
|
+
puts "#{event} by #{caller[2]} -> #{classname}##{id} <#{file}>; stack size = #{$binding_stack.size}" if event.in %w{raise call return} if $panic
|
72
|
+
end
|
73
|
+
}
|
74
|
+
|
75
|
+
begin; abc; rescue => e; $keep_binding_stack = false; $binding_stack.inspect_envs.present; $binding_stack.last.start_interaction; p e; $binding_stack = [] end
|
76
|
+
=end
|
@@ -4,10 +4,10 @@ module RMTools
|
|
4
4
|
|
5
5
|
def highlighted_line(file, line)
|
6
6
|
if defined? SCRIPT_LINES__
|
7
|
-
" >>
|
7
|
+
" >> #{Painter.green SCRIPT_LINES__[file][line.to_i - 1].chop}" if SCRIPT_LINES__[file]
|
8
8
|
else
|
9
9
|
file = Readline::TEMPLOG if file == '(irb)' and defined? Readline::TEMPLOG
|
10
|
-
" >>
|
10
|
+
" >> #{Painter.green read_lines(file, line.to_i).chop}" if File.file? file
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require_with_path 'console/coloring'
|
3
3
|
require_with_path 'text/string_parse'
|
4
|
+
require_with_path 'b'
|
4
5
|
|
5
6
|
module RMTools
|
6
7
|
|
@@ -11,7 +12,7 @@ module RMTools
|
|
11
12
|
attr_accessor :mute_info, :mute_warn, :mute_log, :mute_debug
|
12
13
|
attr_reader :default_format
|
13
14
|
|
14
|
-
Modes =
|
15
|
+
Modes = [:debug, :log, :info, :warn]
|
15
16
|
NOPRINT = 4
|
16
17
|
NOLOG = 2
|
17
18
|
INLINE = 1
|
@@ -118,7 +119,7 @@ module RMTools
|
|
118
119
|
bind, opts = check_binding a
|
119
120
|
opts |= NOLOG if !cfg.out
|
120
121
|
opts |= NOPRINT if !cfg.print
|
121
|
-
text
|
122
|
+
text = yield if block_given?
|
122
123
|
_print(:warn, text, opts, cfg._caller && caller[0], bind, cfg)
|
123
124
|
end
|
124
125
|
end
|
@@ -129,7 +130,7 @@ module RMTools
|
|
129
130
|
bind, opts = check_binding a
|
130
131
|
opts |= NOLOG if !cfg.out
|
131
132
|
opts |= NOPRINT if !(cfg.print && !$quiet && $verbose)
|
132
|
-
text
|
133
|
+
text = yield if block_given?
|
133
134
|
_print(:log, text, opts, cfg._caller && caller[0], bind, cfg)
|
134
135
|
end
|
135
136
|
end
|
@@ -140,7 +141,7 @@ module RMTools
|
|
140
141
|
bind, opts = check_binding a
|
141
142
|
opts |= NOLOG if !(cfg.out && cfg.out_all)
|
142
143
|
opts |= NOPRINT if !(cfg.print && !$quiet)
|
143
|
-
text
|
144
|
+
text = yield if block_given?
|
144
145
|
_print(:info, text, opts, cfg._caller && caller[0], bind, cfg)
|
145
146
|
end
|
146
147
|
end
|
@@ -151,7 +152,7 @@ module RMTools
|
|
151
152
|
bind, opts = check_binding a
|
152
153
|
opts |= NOLOG if !(cfg.out && cfg.out_all)
|
153
154
|
opts |= NOPRINT if !(cfg.print && $panic && !$quiet)
|
154
|
-
text
|
155
|
+
text = yield if block_given?
|
155
156
|
_print(:debug, text, opts, cfg._caller && caller[0], bind, cfg)
|
156
157
|
end
|
157
158
|
end
|
@@ -1,4 +1,6 @@
|
|
1
1
|
require_with_path 'debug/highlight'
|
2
|
+
require_with_path 'debug/logging'
|
3
|
+
|
2
4
|
module Kernel
|
3
5
|
|
4
6
|
# Python-like traceback for exceptions; uses ANSI coloring.
|
@@ -25,12 +27,12 @@ module Kernel
|
|
25
27
|
m2 = a[i+1] && a[i+1].parse(:caller)
|
26
28
|
# $log.info 'm', binding
|
27
29
|
# $log.info 'm2', binding
|
28
|
-
# $log.info 'm[
|
29
|
-
# $log.info 'm
|
30
|
-
# $log.info highlighted_line(
|
30
|
+
# $log.info 'm.func [m.path,m.line]==[m2.path,m2.line]', binding if m and m2
|
31
|
+
# $log.info 'm.path m.line', binding if m
|
32
|
+
# $log.info RMTools.highlighted_line(m.path, m.line) if m
|
31
33
|
if m and m.func and m2 and [m.path, m.line] == [m2.path, m2.line]
|
32
34
|
calls << "`#{m.func}' -> "
|
33
|
-
elsif m and m.line != 0 and line = highlighted_line(m.path, m.line)
|
35
|
+
elsif m and m.line != 0 and line = RMTools.highlighted_line(m.path, m.line)
|
34
36
|
bt << "#{a[i]}#{calls.join}\n#{line}"
|
35
37
|
calls = []
|
36
38
|
else bt << a[i]
|
@@ -38,7 +40,7 @@ module Kernel
|
|
38
40
|
i += 1
|
39
41
|
m = m2
|
40
42
|
end
|
41
|
-
# $log << Painter.r("FORMAT DONE! #{bt.size} lines formatted")
|
43
|
+
# $log << RMTools::Painter.r("FORMAT DONE! #{bt.size} lines formatted")
|
42
44
|
bt
|
43
45
|
end
|
44
46
|
|
@@ -57,7 +59,7 @@ class Class
|
|
57
59
|
def set_backtrace src
|
58
60
|
set_bt src
|
59
61
|
end
|
60
|
-
})
|
62
|
+
}, __FILE__, __LINE__-10)
|
61
63
|
else
|
62
64
|
raise NoMethodError, "undefined method `trace_format' for class #{self}"
|
63
65
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require_with_path 'conversions/string'
|
2
2
|
|
3
3
|
class String
|
4
|
-
CALLER_RE =
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
CALLER_RE = %r{^(.*?([^/\\]+?))#{ # ( path ( file ) )
|
5
|
+
}:(\d+)(?::in #{ # :( line )[ :in
|
6
|
+
}[`<]([^'>]+)[>']#{ # `( closure )' ]
|
7
|
+
})?$}
|
8
8
|
URL_RE = %r{^((?:([^:]+)://)#{ # ( protocol
|
9
9
|
}([^/:]*(?::(\d+))?))?#{ # root[:port] )
|
10
10
|
}((/[^?#]*?(?:\.(\w+))?)#{ # ( path[.( fileext )]
|
@@ -33,7 +33,7 @@ class String
|
|
33
33
|
'anchor' => m[9] }
|
34
34
|
when :caller
|
35
35
|
m = match CALLER_RE
|
36
|
-
m || m[0].empty? ? nil :
|
36
|
+
!m || m[0].empty? ? nil :
|
37
37
|
{ 'path' => m[1],
|
38
38
|
'file' => m[2],
|
39
39
|
'line' => m[3].to_i,
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rmtools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
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
|
- Shinku Templar
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-02-
|
18
|
+
date: 2011-02-09 00:00:00 +03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -106,6 +106,7 @@ files:
|
|
106
106
|
- lib/rmtools/core/string_compliance.rb
|
107
107
|
- lib/rmtools/core/kernel.rb
|
108
108
|
- lib/rmtools/core/boolean.rb
|
109
|
+
- lib/rmtools/core/aliases.rb
|
109
110
|
- lib/rmtools/core/module.rb
|
110
111
|
- lib/rmtools/core/object.rb
|
111
112
|
- lib/rmtools/core/regexp.rb
|
@@ -208,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
209
|
requirements: []
|
209
210
|
|
210
211
|
rubyforge_project: rmtools
|
211
|
-
rubygems_version: 1.
|
212
|
+
rubygems_version: 1.5.0
|
212
213
|
signing_key:
|
213
214
|
specification_version: 3
|
214
215
|
summary: Yet another Ruby applied framework
|