riel 1.1.7 → 1.1.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -64,12 +64,12 @@ module ANSIColor
64
64
 
65
65
  # returns the code for the given background color(s)
66
66
  def ANSIColor.background bgcolor
67
- make_code("on_" + bgcolor)
67
+ make_code "on_" + bgcolor
68
68
  end
69
69
 
70
70
  # returns the code for the given foreground color(s)
71
71
  def ANSIColor.foreground fgcolor
72
- make_code(fgcolor)
72
+ make_code fgcolor
73
73
  end
74
74
 
75
75
  protected
@@ -83,7 +83,7 @@ module ANSIColor
83
83
  $stderr.puts "WARNING: ANSIColor::make_code(" + str + "): unknown color: " + s
84
84
  return ""
85
85
  end
86
- end.join("")
86
+ end.join ""
87
87
  else
88
88
  ""
89
89
  end
data/lib/riel/array.rb CHANGED
@@ -15,7 +15,7 @@ class Array
15
15
 
16
16
  # $$$ this is the same as Array.sample
17
17
  def rand
18
- return self[Kernel.rand(length)]
18
+ return self[Kernel.rand length]
19
19
  end
20
20
 
21
21
  end
data/lib/riel/date.rb CHANGED
@@ -9,7 +9,7 @@ class Date
9
9
 
10
10
  # Returns the number of days in the given month.
11
11
 
12
- def self.days_in_month(year, month)
12
+ def self.days_in_month year, month
13
13
  (Date.new(year, 12, 31) << (12 - month)).day
14
14
  end
15
15
 
data/lib/riel/dir.rb CHANGED
@@ -35,7 +35,7 @@ class Dir
35
35
  if dir.readable?
36
36
  dir.children.sort.each do |child|
37
37
  if child.exist? && child.directory?
38
- self.remove_if_empty(child, subargs)
38
+ self.remove_if_empty child, subargs
39
39
  end
40
40
  end
41
41
 
@@ -45,10 +45,10 @@ class Dir
45
45
  can_delete = dir.children.all? do |x|
46
46
  bname = x.basename.to_s
47
47
  deletable.any? do |del|
48
- if del.kind_of?(String)
48
+ if del.kind_of? String
49
49
  bname == del
50
- elsif del.kind_of?(Regexp)
51
- del.match(bname)
50
+ elsif del.kind_of? Regexp
51
+ del.match bname
52
52
  else
53
53
  false
54
54
  end
@@ -75,15 +75,15 @@ class Dir
75
75
 
76
76
  # Moves and copies files to the given directory, creating
77
77
  # it if it does not exist.
78
- def self.move_and_copy_files(dir, move_files, copy_files)
78
+ def self.move_and_copy_files dir, move_files, copy_files
79
79
  dir.mkdir unless dir.exist?
80
80
 
81
81
  move_files.each do |mfile|
82
- File.move(mfile.to_s, dir.to_s)
82
+ File.move mfile.to_s, dir.to_s
83
83
  end
84
84
 
85
85
  copy_files.each do |cfile|
86
- File.copy(cfile.to_s, dir.to_s)
86
+ File.copy cfile.to_s, dir.to_s
87
87
  end
88
88
  end
89
89
 
data/lib/riel/env.rb CHANGED
@@ -2,9 +2,7 @@
2
2
  # -*- ruby -*-
3
3
 
4
4
  module Env
5
-
6
5
  # Returns the home directory, for both Unix and Windows.
7
-
8
6
  def self.home_directory
9
7
  if hm = ENV["HOME"]
10
8
  hm
@@ -38,12 +36,11 @@ module Env
38
36
 
39
37
  # Reads the environment variable, splitting it according to its quoting.
40
38
 
41
- def self.split(varname)
39
+ def self.split varname
42
40
  if v = ENV[varname]
43
41
  v.scan(REGEXP).collect { |x| x[1] || x[2] }
44
42
  else
45
43
  []
46
44
  end
47
45
  end
48
-
49
46
  end
data/lib/riel/file.rb CHANGED
@@ -15,17 +15,16 @@ path = ENV['PATH'].dup
15
15
  $VERBOSE = orig_verbose
16
16
 
17
17
  class File
18
-
19
- def self.text?(file)
18
+ def self.text? file
20
19
  return File.file?(file) && FileType.instance.text?(file)
21
20
  end
22
21
 
23
- def self.binary?(file)
22
+ def self.binary? file
24
23
  return !self.text?(file)
25
24
  end
26
25
 
27
26
  # Returns whether the given object is a file. Ignores errors.
28
- def self.is_file?(fd)
27
+ def self.is_file? fd
29
28
  begin
30
29
  return self.stat(fd).file?
31
30
  rescue
@@ -35,7 +34,7 @@ class File
35
34
  end
36
35
 
37
36
  # Returns whether the given file is writable. Ignores errors.
38
- def self.is_writable?(file)
37
+ def self.is_writable? file
39
38
  begin
40
39
  return self.stat(file).writable?
41
40
  rescue
@@ -45,7 +44,7 @@ class File
45
44
  end
46
45
 
47
46
  # Returns whether the given object is a directory. Ignores errors.
48
- def self.is_directory?(fd)
47
+ def self.is_directory? fd
49
48
  begin
50
49
  return self.stat(fd).directory?
51
50
  rescue
@@ -55,61 +54,61 @@ class File
55
54
  end
56
55
 
57
56
  # Returns an array of all files under the given directory.
58
- def self.find_files(dir)
57
+ def self.find_files dir
59
58
  files = Array.new
60
59
  Find.find(dir) { |f| files.push(f) if is_file?(f) }
61
60
  files
62
61
  end
63
62
 
64
63
  # Returns an array of all directory under the given directory.
65
- def self.find_directories(dir)
64
+ def self.find_directories dir
66
65
  dirs = Array.new
67
66
  Find.find(dir) { |d| dirs.push(d) if is_directory?(d) }
68
67
  dirs
69
68
  end
70
69
 
71
70
  # Removes the file/directory, including all subelements. Use with caution!
72
- def self.remove_recursively(fd)
71
+ def self.remove_recursively fd
73
72
  #$$$ this is rmtree
74
73
  if fd.directory?
75
- fd.children.each { |x| remove_recursively(x) }
74
+ fd.children.each { |x| remove_recursively x }
76
75
  end
77
76
  fd.unlink
78
77
  end
79
78
 
80
79
  # Creates the given directory.
81
- def self.mkdir(dir)
82
- pn = Pathname.new(dir)
80
+ def self.mkdir dir
81
+ pn = Pathname.new dir
83
82
  pn.mkdir unless pn.exist?
84
83
  end
85
84
 
86
85
  # Moves the files to the given directory, creating it if it does not exist.
87
- def self.move_files(dir, files)
88
- mkdir(dir)
86
+ def self.move_files dir, files
87
+ mkdir dir
89
88
 
90
89
  files.each do |file|
91
- FileUtils.move(file.to_s, dir.to_s)
90
+ FileUtils.move file.to_s, dir.to_s
92
91
  end
93
92
  end
94
93
 
95
94
  # Copies the files to the given directory, creating it if it does not exist.
96
- def self.copy_files(dir, files)
97
- mkdir(dir)
95
+ def self.copy_files dir, files
96
+ mkdir dir
98
97
 
99
98
  files.each do |file|
100
- FileUtils.copy(file.to_s, dir.to_s)
99
+ FileUtils.copy file.to_s, dir.to_s
101
100
  end
102
101
  end
103
102
 
104
103
  # Converts the argument to a Pathname.
105
- def self._to_pathname(file)
104
+ def self._to_pathname file
106
105
  file.kind_of?(Pathname) ? file : Pathname.new(file.to_s)
107
106
  end
108
107
 
109
108
  # Reads a file line by line. Returns the pathname for the file, or nil if it
110
109
  # does not exist.
111
- def self.read_file(file, &blk)
112
- fpn = _to_pathname(file)
110
+ def self.read_file file, &blk
111
+ fpn = _to_pathname file
113
112
  if fpn.exist?
114
113
  fpn.open do |f|
115
114
  blk.call f.read
@@ -123,7 +122,7 @@ class File
123
122
  # Reads a file line by line, calling the given block. Returns the pathname for
124
123
  # the file, or nil if it does not exist.
125
124
  def self.read_file_lines(file, &blk)
126
- fpn = _to_pathname(file)
125
+ fpn = _to_pathname file
127
126
  if fpn.exist?
128
127
  fpn.open do |f|
129
128
  f.each_line do |line|
@@ -138,12 +137,11 @@ class File
138
137
 
139
138
  # Opens a file for writing and delegates to the given block.
140
139
  def self.open_writable_file(file, &blk)
141
- fpn = _to_pathname(file)
140
+ fpn = _to_pathname file
142
141
 
143
142
  fpn.open(File::WRONLY | File::TRUNC | File::CREAT) do |f|
144
- blk.call(f)
143
+ blk.call f
145
144
  end
146
-
147
145
  fpn
148
146
  end
149
147
 
@@ -169,15 +167,15 @@ class File
169
167
  def self.open_via_temp_file(file, tempfile = nil, tempdir = Dir::tmpdir, &blk)
170
168
  tempname = nil
171
169
 
172
- fpn = _to_pathname(file)
170
+ fpn = _to_pathname file
173
171
  tempfile ||= fpn.rootname
174
172
 
175
173
  Tempfile.open(tempfile) do |tf|
176
- blk.call(tf)
174
+ blk.call tf
177
175
  tempname = tf.path
178
176
  end
179
177
 
180
- FileUtils.mv(tempname, file.to_s)
178
+ FileUtils.mv tempname, file.to_s
181
179
  end
182
180
 
183
181
  # Writes a file, using write, buffering it via a temp file.
@@ -197,7 +195,7 @@ class File
197
195
  # Returns a file for the given basename, sequentially appending an integer
198
196
  # until one is found that does not exist. For example, "foo.3" if "foo",
199
197
  # "foo.1", and "foo.2" already exist.
200
- def self.get_unused_file_name(basename)
198
+ def self.get_unused_file_name basename
201
199
  tgt = basename
202
200
  if tgt.exist?
203
201
  i = 1
data/lib/riel/filetype.rb CHANGED
@@ -71,18 +71,18 @@ class FileType
71
71
  set_extensions(false, *NONTEXT_EXTENSIONS)
72
72
  end
73
73
 
74
- def ascii?(c)
74
+ def ascii? c
75
75
  # from ctype.h
76
76
  (c.to_i & ~0x7f) == 0
77
77
  end
78
78
 
79
- def type(file)
79
+ def type file
80
80
  begin
81
81
  case File.stat(file).ftype
82
82
  when "directory"
83
83
  DIRECTORY
84
84
  when "file"
85
- if File.readable?(file)
85
+ if File.readable? file
86
86
  text?(file) ? TEXT : BINARY
87
87
  else
88
88
  UNREADABLE
@@ -120,12 +120,12 @@ class FileType
120
120
  @known.keys.reject { |suf| @known[suf] }
121
121
  end
122
122
 
123
- def text?(file)
123
+ def text? file
124
124
  return false unless File.exists?(file)
125
125
 
126
126
  if md = EXTENSION_REGEXP.match(file.to_s)
127
127
  suffix = md[1]
128
- if @known.include?(suffix)
128
+ if @known.include? suffix
129
129
  return @known[suffix]
130
130
  end
131
131
  end
@@ -135,7 +135,7 @@ class FileType
135
135
 
136
136
  begin
137
137
  File.open(file) do |f|
138
- buf = f.read(@test_length)
138
+ buf = f.read @test_length
139
139
  if buf
140
140
  buf.each_byte do |ch|
141
141
  ntested += 1
@@ -158,20 +158,20 @@ class FileType
158
158
  nodd < ntested * @odd_factor
159
159
  end
160
160
 
161
- def self.ascii?(c)
162
- return self.instance.ascii?(c)
161
+ def self.ascii? c
162
+ return self.instance.ascii? c
163
163
  end
164
164
 
165
- def self.type(file)
166
- return self.instance.type(file)
165
+ def self.type file
166
+ return self.instance.type file
167
167
  end
168
168
 
169
- def self.set_text(ext)
170
- return self.instance.set_text(ext)
169
+ def self.set_text ext
170
+ return self.instance.set_text ext
171
171
  end
172
172
 
173
- def self.set_nontext(ext)
174
- return self.instance.set_nontext(ext)
173
+ def self.set_nontext ext
174
+ return self.instance.set_nontext ext
175
175
  end
176
176
 
177
177
  def self.text_extensions
@@ -182,8 +182,7 @@ class FileType
182
182
  return self.instance.nontext_extensions
183
183
  end
184
184
 
185
- def self.text?(file)
186
- return self.instance.text?(file)
185
+ def self.text? file
186
+ return self.instance.text? file
187
187
  end
188
-
189
188
  end
@@ -163,6 +163,7 @@ module RIEL
163
163
  stk = caller depth
164
164
  for frame in stk
165
165
  print_stack_frame frame, cname, msg, lvl, &blk
166
+ cname = nil
166
167
  msg = ""
167
168
  end
168
169
  end
data/lib/riel/optproc.rb CHANGED
@@ -6,7 +6,6 @@ require 'riel/log'
6
6
  require 'riel/text'
7
7
  require 'riel/enumerable'
8
8
 
9
-
10
9
  module OptProc
11
10
 
12
11
  class Option
@@ -25,7 +24,7 @@ module OptProc
25
24
  ARG_TYPES << [ :string, ARG_STRING ]
26
25
  ARG_TYPES << [ :boolean, ARG_BOOLEAN ]
27
26
 
28
- def initialize(args = Hash.new, &blk)
27
+ def initialize args = Hash.new, &blk
29
28
  @tags = args[:tags] || Array.new
30
29
  @rc = args[:rc]
31
30
  @rc = [ @rc ] if @rc.kind_of?(String)
@@ -41,10 +40,8 @@ module OptProc
41
40
  @res = [ @res ] if @res.kind_of?(Regexp)
42
41
 
43
42
  if args[:arg]
44
- # log { "args.class: #{args[:arg].class}" }
45
43
  demargs = args[:arg].dup
46
44
  while arg = demargs.shift
47
- # log { "arg: #{arg}" }
48
45
  case arg
49
46
  when :required
50
47
  @type = "required"
@@ -56,19 +53,13 @@ module OptProc
56
53
  @valuere = demargs.shift
57
54
  else
58
55
  if re = ARG_TYPES.assoc(arg)
59
- # log { "re: #{re}" }
60
56
  @valuere = re[1]
61
57
  @argtype = arg
62
58
  @type ||= "required"
63
- else
64
- # log { "no expression for arg #{arg}" }
65
59
  end
66
60
  end
67
61
  end
68
62
  end
69
-
70
- # log { "valuere: #{@valuere}" }
71
- # log { "type: #{@type}" }
72
63
  end
73
64
 
74
65
  def inspect
@@ -80,101 +71,76 @@ module OptProc
80
71
  end
81
72
 
82
73
  def to_s
83
- @tags.join(" ")
74
+ @tags.join " "
84
75
  end
85
76
 
86
- def match_rc?(field)
77
+ def match_rc? field
87
78
  @rc && @rc.include?(field)
88
79
  end
89
80
 
90
- def match_value(val)
91
- # log { "valuere: #{@valuere.inspect}; val: #{val}" }
81
+ def match_value val
92
82
  @md = @valuere && @valuere.match(val)
93
- # log { "md: #{@md.inspect}" }
94
83
  @md && @md[1]
95
84
  end
96
85
 
97
- def match_tag(tag)
98
- stack { "@rc: #{@rc.inspect}; @tags: #{@tags.inspect}" }
99
-
86
+ def match_tag tag
100
87
  if tm = @tags.detect do |t|
101
- log { "t: #{t}; tag: #{tag}; idx: #{t.index(tag)}" }
102
88
  t.index(tag) == 0 && tag.length <= t.length
103
89
  end
104
90
 
105
- log { "tm: #{tm}" }
106
91
  if tag.length == tm.length
107
92
  1.0
108
93
  else
109
- len = tag.length.to_f * 0.01 # / tm.length
110
- log { "len: #{len}" }
111
- len
94
+ tag.length.to_f * 0.01
112
95
  end
113
96
  else
114
97
  nil
115
98
  end
116
99
  end
117
100
 
118
- def match(args, opt = args[0])
119
- return nil unless %r{^-}.match(opt)
120
-
121
- # log { "opt: #{opt.inspect}; args: #{args.inspect}" }
122
- # log { "@rc: #{@rc.inspect}; @re: #{@re.inspect}; @tags: #{@tags.inspect}" }
101
+ def match args, opt = args[0]
102
+ return nil unless %r{^-}.match opt
123
103
 
124
104
  tag, val = opt.split('=', 2)
125
105
  tag ||= opt
126
106
 
127
- # log { "opt: #{opt}; opt: #{opt.class}; tag: #{tag}; tags: #{@tags.inspect}" }
128
- # log { "res: #{@res.inspect}" }
129
-
130
107
  @md = nil
131
108
 
132
109
  if @res && (@md = @res.collect { |re| re.match(opt) }.detect)
133
- # log { "matched: #{@md}" }
134
110
  1.0
135
111
  else
136
- match_tag(tag)
112
+ match_tag tag
137
113
  end
138
114
  end
139
115
 
140
- def set_value(args, opt = args[0])
141
- tag, val = opt.split('=', 2)
116
+ def set_value args, opt = args[0]
117
+ tag, val = opt.split '=', 2
142
118
  args.shift
143
-
144
- # log { "opt : #{opt}" }
145
- # log { "tag : #{tag}" }
146
- # log { "tags: #{@tags.inspect}" }
147
- # log { "val : #{val.inspect}" }
148
- # log { "md : #{@md.inspect}" }
149
119
 
150
120
  if @md
151
- # log { "already have match data" }
121
+ # already have match data
152
122
  elsif @type == "required"
153
123
  if val
154
124
  # already have value
155
- # log { "already have value: #{val}" }
156
125
  elsif args.size > 0
157
126
  val = args.shift
158
- # log { "got next value: #{val}" }
159
127
  else
160
128
  $stderr.puts "value expected"
161
129
  end
162
130
 
163
131
  if val
164
- match_value(val)
132
+ match_value val
165
133
  end
166
134
  elsif @type == "optional"
167
135
  if val
168
- # log { "already have value: #{val}" }
169
- match_value(val)
136
+ # already have value
137
+ match_value val
170
138
  elsif args.size > 0
171
- if %r{^-}.match(args[0])
172
- # log { "skipping next value; apparently option" }
173
- elsif match_value(args[0])
174
- # log { "value matches: #{val}" }
139
+ if %r{^-}.match args[0]
140
+ # skipping next value; apparently option
141
+ elsif match_value args[0]
142
+ # value matches
175
143
  args.shift
176
- else
177
- # log { "value does not match" }
178
144
  end
179
145
  end
180
146
  else
@@ -183,7 +149,7 @@ module OptProc
183
149
 
184
150
  value = value_from_match
185
151
 
186
- set(value, opt, args)
152
+ set value, opt, args
187
153
  end
188
154
 
189
155
  def value_from_match
@@ -191,14 +157,14 @@ module OptProc
191
157
  if @argtype.nil? || @argtype == :regexp
192
158
  @md
193
159
  else
194
- convert_value(@md[1])
160
+ convert_value @md[1]
195
161
  end
196
162
  elsif @argtype == :boolean
197
163
  true
198
164
  end
199
165
  end
200
166
 
201
- def convert_value(val)
167
+ def convert_value val
202
168
  if val
203
169
  case @argtype
204
170
  when :string
@@ -208,7 +174,7 @@ module OptProc
208
174
  when :float
209
175
  val.to_f
210
176
  when :boolean
211
- to_boolean(val)
177
+ to_boolean val
212
178
  when :regexp
213
179
  val
214
180
  when nil
@@ -221,11 +187,11 @@ module OptProc
221
187
  end
222
188
  end
223
189
 
224
- def to_boolean(val)
190
+ def to_boolean val
225
191
  %w{ yes true on soitenly }.include?(val.downcase)
226
192
  end
227
193
 
228
- def set(val, opt = nil, args = nil)
194
+ def set val, opt = nil, args = nil
229
195
  # log { "argtype: #{@argtype}; md: #{@md.inspect}" }
230
196
 
231
197
  setargs = [ val, opt, args ].select_with_index { |x, i| i < @set.arity }
@@ -240,14 +206,14 @@ module OptProc
240
206
 
241
207
  attr_reader :options
242
208
 
243
- def initialize(data)
209
+ def initialize data
244
210
  @options = Array.new
245
211
  @shortopts = Array.new
246
212
  @longopts = Array.new
247
213
  @regexps = Hash.new
248
214
 
249
215
  data.each do |optdata|
250
- opt = OptProc::Option.new(optdata)
216
+ opt = OptProc::Option.new optdata
251
217
  @options << opt
252
218
 
253
219
  opt.tags.each do |tag|
@@ -295,12 +261,12 @@ module OptProc
295
261
  Regexp.new('^ ( - [a-z] ) ( .+ ) $ ', Regexp::EXTENDED)
296
262
  ]
297
263
 
298
- def process_option(args)
264
+ def process_option args
299
265
  opt = args[0]
300
266
 
301
267
  # log { "processing option #{opt}" }
302
268
 
303
- if md = COMBINED_OPTS_RES.collect { |re| re.match(opt) }.detect
269
+ if md = COMBINED_OPTS_RES.collect { |re| re.match opt }.detect
304
270
  lhs = md[1]
305
271
  rhs = "-" + md[2]
306
272
 
@@ -308,7 +274,7 @@ module OptProc
308
274
 
309
275
  args[0, 1] = lhs, rhs
310
276
 
311
- return process_option(args)
277
+ return process_option args
312
278
  elsif opt[0] == 45
313
279
  ch = opt[1]
314
280
  assocopts = if ch == 45 # 45 = '-'
@@ -333,7 +299,7 @@ module OptProc
333
299
  log { "bestmatch: #{@bestmatch}" }
334
300
  log { "bestopts : #{@bestopts.inspect}" }
335
301
  if @bestopts.size == 1
336
- @bestopts[0].set_value(args)
302
+ @bestopts[0].set_value args
337
303
  return @bestopts[0]
338
304
  else
339
305
  optstr = @bestopts.collect { |x| '(' + x.tags.join(', ') + ')' }.join(', ')
@@ -345,7 +311,7 @@ module OptProc
345
311
  nil
346
312
  end
347
313
 
348
- def set_option(optlist, args)
314
+ def set_option optlist, args
349
315
  @bestmatch = nil
350
316
  @bestopts = Array.new
351
317
 
@@ -353,7 +319,7 @@ module OptProc
353
319
  if mv = option.match(args)
354
320
  if mv >= 1.0
355
321
  # exact match:
356
- option.set_value(args)
322
+ option.set_value args
357
323
  return option
358
324
  elsif !@bestmatch || @bestmatch <= mv
359
325
  @bestmatch = mv
data/lib/riel/rcfile.rb CHANGED
@@ -16,7 +16,7 @@ class RCFile
16
16
  def initialize(fname, &blk)
17
17
  @settings = Array.new
18
18
 
19
- if File.exists?(fname)
19
+ if File.exists? fname
20
20
  IO::readlines(fname).each do |line|
21
21
  line.sub!(/\s*#.*/, "")
22
22
  line.chomp!
@@ -26,7 +26,7 @@ class RCFile
26
26
  value.strip!
27
27
  @settings << [ name, value ]
28
28
  if blk
29
- blk.call(name, value)
29
+ blk.call name, value
30
30
  end
31
31
  end
32
32
  end
data/lib/riel/regexp.rb CHANGED
@@ -4,7 +4,7 @@
4
4
  # Negates the given expression.
5
5
  class NegatedRegexp < Regexp
6
6
 
7
- def match(str)
7
+ def match str
8
8
  !super
9
9
  end
10
10
 
@@ -27,7 +27,7 @@ class Regexp
27
27
 
28
28
  # Returns a regular expression for the given Unix file system expression.
29
29
 
30
- def self.unixre_to_string(pat)
30
+ def self.unixre_to_string pat
31
31
  pat.gsub(%r{(\\.)|(.)}) do
32
32
  $1 || SH2RE[$2] || $2
33
33
  end
@@ -70,7 +70,7 @@ class Regexp
70
70
  # Handles negation, whole words, and ignore case (Ruby no longer supports
71
71
  # Rexexp.new(/foo/i), as of 1.8).
72
72
 
73
- def self.create(pat, args = Hash.new)
73
+ def self.create pat, args = Hash.new
74
74
  negated = args[:negated]
75
75
  ignorecase = args[:ignorecase]
76
76
  wholewords = args[:wholewords]
@@ -134,19 +134,19 @@ class Regexp
134
134
  tot | (val ? flag : 0)
135
135
  end
136
136
 
137
- reclass.new(pattern, flags)
137
+ reclass.new pattern, flags
138
138
  end
139
139
 
140
- def self.matches_word_start?(pat)
141
- WORD_START_RE.match(pat)
140
+ def self.matches_word_start? pat
141
+ WORD_START_RE.match pat
142
142
  end
143
143
 
144
- def self.matches_word_end?(pat)
145
- WORD_END_RE.match(pat)
144
+ def self.matches_word_end? pat
145
+ WORD_END_RE.match pat
146
146
  end
147
147
 
148
148
  # applies Perl-style substitution (s/foo/bar/).
149
- def self.perl_subst(pat)
149
+ def self.perl_subst pat
150
150
  end
151
151
 
152
152
  end
data/lib/riel/setdiff.rb CHANGED
@@ -5,7 +5,7 @@
5
5
  # identical, A contains B, B contains A, or A and B contain common elements.
6
6
 
7
7
  class SetDiff
8
- def SetDiff.new(a, b)
8
+ def SetDiff.new a, b
9
9
  allitems = a | b
10
10
 
11
11
  a_and_b = Array.new
@@ -13,8 +13,8 @@ class SetDiff
13
13
  b_not_in_a = Array.new
14
14
 
15
15
  allitems.each do |it|
16
- if a.include?(it)
17
- if b.include?(it)
16
+ if a.include? it
17
+ if b.include? it
18
18
  a_and_b
19
19
  else
20
20
  a_not_in_b
@@ -24,12 +24,12 @@ class SetDiff
24
24
  end << it
25
25
  end
26
26
 
27
- super(a_and_b, a_not_in_b, b_not_in_a)
27
+ super a_and_b, a_not_in_b, b_not_in_a
28
28
  end
29
29
 
30
30
  attr_reader :a_and_b, :a_not_in_b, :b_not_in_a
31
31
 
32
- def initialize(a_and_b, a_not_in_b, b_not_in_a)
32
+ def initialize a_and_b, a_not_in_b, b_not_in_a
33
33
  @a_and_b = a_and_b
34
34
  @a_not_in_b = a_not_in_b
35
35
  @b_not_in_a = b_not_in_a
@@ -5,7 +5,7 @@ class SizeConverter
5
5
  # http://www.gnu.org/software/coreutils/manual/html_node/Block-size.html
6
6
 
7
7
  # don't round to closest -- just convert
8
- def self.convert_to_kilobytes(size, decimal_places = 1)
8
+ def self.convert_to_kilobytes size, decimal_places = 1
9
9
  ### SizeConverter._convert(Human::CONVERSIONS, 2, size, decimal_places)
10
10
  end
11
11
 
@@ -20,8 +20,8 @@ class SizeConverter
20
20
  # returns a string representation of the size. Note that K, G, M are
21
21
  # gibibytes, etc., that is, powers of 10.
22
22
 
23
- def self.convert(size, decimal_places = 1)
24
- SizeConverter._convert(CONVERSIONS, 10, size, decimal_places)
23
+ def self.convert size, decimal_places = 1
24
+ SizeConverter._convert CONVERSIONS, 10, size, decimal_places
25
25
  end
26
26
  end
27
27
 
@@ -37,26 +37,26 @@ class SizeConverter
37
37
  # returns a string representation of the size. Note that K, G, M are
38
38
  # gigabytes, etc.
39
39
 
40
- def self.convert(size, decimal_places = 1)
41
- SizeConverter._convert(CONVERSIONS, 2, size, decimal_places)
40
+ def self.convert size, decimal_places = 1
41
+ SizeConverter._convert CONVERSIONS, 2, size, decimal_places
42
42
  end
43
43
  end
44
44
 
45
45
  # legacy:
46
46
 
47
- def self.convert(size, decimal_places = 1)
48
- Human::convert(size, decimal_places)
47
+ def self.convert size, decimal_places = 1
48
+ Human::convert size, decimal_places
49
49
  end
50
50
 
51
- def self._convert(conversions, base, size, decimal_places)
51
+ def self._convert conversions, base, size, decimal_places
52
52
  sizef = size.to_f
53
53
  conversions.each do |conv|
54
54
  sz = sizef / (base ** conv[0])
55
55
  if sz >= 1.0
56
- return sprintf("%.*f%s", decimal_places, sz, conv[1])
56
+ return sprintf "%.*f%s", decimal_places, sz, conv[1]
57
57
  end
58
58
  end
59
59
 
60
- sprintf("%.*f", decimal_places, size)
60
+ sprintf "%.*f", decimal_places, size
61
61
  end
62
62
  end
data/lib/riel/string.rb CHANGED
@@ -36,7 +36,7 @@ class String
36
36
  # Returns a string based on this instance, with the first occurrance of
37
37
  # +other+ removed. +other+ may be a string or regular expression.
38
38
  #
39
- def -(other)
39
+ def - other
40
40
  sub other, ''
41
41
  end
42
42
 
@@ -53,8 +53,8 @@ class String
53
53
  #
54
54
  # A class method for +to_ranges+. Deprecated in favor of the instance method.
55
55
  #
56
- def self.to_ranges(str, args = Hash.new)
57
- str.to_ranges(args)
56
+ def self.to_ranges str, args = Hash.new
57
+ str.to_ranges args
58
58
  end
59
59
 
60
60
  #
@@ -83,7 +83,7 @@ class String
83
83
  md = section.match(RANGE_REGEXP)
84
84
  next unless md
85
85
 
86
- from = String._matchdata_to_number(md, 1, min)
86
+ from = String._matchdata_to_number md, 1, min
87
87
  to = String._has_matchdata?(md, 2) ? String._matchdata_to_number(md, 3, max) : from
88
88
 
89
89
  prevrange = ranges[-1]
@@ -108,7 +108,7 @@ class String
108
108
  #
109
109
  def highlight re, color
110
110
  gsub(re) do |match|
111
- HIGHLIGHTER.color(color, match)
111
+ HIGHLIGHTER.color color, match
112
112
  end
113
113
  end
114
114
 
data/lib/riel/tempfile.rb CHANGED
@@ -3,11 +3,8 @@
3
3
 
4
4
  require 'tempfile'
5
5
 
6
-
7
6
  class Tempfile
8
-
9
7
  class << self
10
-
11
8
  alias_method :original_open, :open
12
9
 
13
10
  # this works around the behavior (fixed in 1.9) so that open returns
@@ -24,5 +21,4 @@ class Tempfile
24
21
  tempname
25
22
  end
26
23
  end
27
-
28
24
  end
data/lib/riel/text.rb CHANGED
@@ -139,13 +139,13 @@ module Text
139
139
  def color colorstr, obj = self, &blk
140
140
  # ^^^^ this is the Module self
141
141
 
142
- colornames = self.class.parse_colors(colorstr)
143
- result = names_to_code(colornames)
142
+ colornames = self.class.parse_colors colorstr
143
+ result = names_to_code colornames
144
144
 
145
145
  if blk
146
146
  result << blk.call
147
147
  result << names_to_code("reset")
148
- elsif obj.kind_of?(String)
148
+ elsif obj.kind_of? String
149
149
  result << obj
150
150
  result << names_to_code("reset")
151
151
  end
@@ -267,10 +267,10 @@ module Text
267
267
  when "negative"
268
268
  "<span style=\"color: white; background-color: black\">"
269
269
  when /on_(\w+)/
270
- colval = color_value($1)
270
+ colval = color_value $1
271
271
  "<span style=\"background-color: #{colval}\">"
272
272
  else
273
- colval = color_value(name)
273
+ colval = color_value name
274
274
  "<span style=\"color: #{colval}\">"
275
275
  end
276
276
  end
@@ -355,7 +355,7 @@ module Text
355
355
 
356
356
  module Highlightable
357
357
  # The highlighter for the class in which this module is included.
358
- @@highlighter = ANSIHighlighter.new(Text::Highlighter::DEFAULT_COLORS)
358
+ @@highlighter = ANSIHighlighter.new Text::Highlighter::DEFAULT_COLORS
359
359
 
360
360
  if false
361
361
  Text::Highlighter::ATTRIBUTES.each do |name|
data/lib/riel/timer.rb CHANGED
@@ -5,8 +5,8 @@ require 'riel/log'
5
5
 
6
6
  class Timer
7
7
 
8
- def initialize(what, args = Hash.new)
9
- if args.kind_of?(Fixnum)
8
+ def initialize what, args = Hash.new
9
+ if args.kind_of? Fixnum
10
10
  args = { :level => args }
11
11
  end
12
12
 
@@ -18,18 +18,18 @@ class Timer
18
18
  elmsg = args.include?(:elmsg) ? args[:elmsg] : "#{what} elapsed "
19
19
 
20
20
  sttime = Time.new
21
- logmsg(stmsg, sttime)
21
+ logmsg stmsg, sttime
22
22
 
23
23
  yield
24
24
 
25
25
  endtime = Time.new
26
26
 
27
- logmsg(stmsg, sttime)
28
- logmsg(endmsg, endtime)
29
- logmsg(elmsg, endtime - sttime)
27
+ logmsg stmsg, sttime
28
+ logmsg endmsg, endtime
29
+ logmsg elmsg, endtime - sttime
30
30
  end
31
31
 
32
- def logmsg(msg, value)
32
+ def logmsg msg, value
33
33
  if msg
34
34
  if @io
35
35
  @io.puts "#{msg}: #{value}"
@@ -41,7 +41,7 @@ class Timer
41
41
 
42
42
  end
43
43
 
44
- def timethis(what)
44
+ def timethis what
45
45
  sttime = Time.new
46
46
  Log.log "#{what} start time: #{sttime}"
47
47
  yield
data/lib/riel.rb CHANGED
@@ -4,7 +4,7 @@ $:.unshift(riellibdir) unless
4
4
  $:.include?(riellibdir) || $:.include?(File.expand_path(riellibdir))
5
5
 
6
6
  module RIEL
7
- VERSION = '0.0.1'
7
+ VERSION = '1.1.10'
8
8
  end
9
9
 
10
10
  rbfiles = Dir[riellibdir + "/riel/**/*.rb"]
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/ruby -w
2
+ # -*- ruby -*-
3
+
4
+ require 'pathname'
5
+ require 'rubyunit'
6
+ require 'stringio'
7
+ require 'riel/log'
8
+
9
+ class LogAbyss
10
+ include Loggable
11
+
12
+ def squeal
13
+ log "hello from the abyss"
14
+ stack "turtles all the way down"
15
+ end
16
+ end
17
+
18
+ class LogDepths
19
+ include Loggable
20
+
21
+ def speak
22
+ log "hello from the depths"
23
+ la = LogAbyss.new
24
+ la.squeal
25
+ end
26
+ end
27
+
28
+ class LogInner
29
+ include Loggable
30
+
31
+ def screech
32
+ ldi = LogDepths.new
33
+ log "hello from the innerds"
34
+ ldi.speak
35
+ end
36
+ end
37
+
38
+ class LogStackTestCase < RUNIT::TestCase
39
+ include Loggable
40
+
41
+ def test_stack
42
+ Log.set_widths(-15, 4, -40)
43
+
44
+ log = Proc.new {
45
+ li = LogInner.new
46
+ li.screech
47
+ }
48
+
49
+ expected_output = [
50
+ "[ ...: 33] {LogInner#screech } hello from the innerds",
51
+ "[ ...: 22] {LogDepths#speak } hello from the depths",
52
+ "[ ...: 13] {LogAbyss#squeal } hello from the abyss",
53
+ "[ ...: 14] {LogAbyss#squeal } turtles all the way down",
54
+ "[ ...: 24] {speak } ",
55
+ "[ ...: 34] {screech } ",
56
+ "[ ...: 46] {test_stack } ",
57
+ "[ ...: 104] {call } ",
58
+ "[ ...: 104] {run_test } ",
59
+ "[ ...: 82] {test_stack } ",
60
+ "[ ...testcase.rb: 78] {__send__ } ",
61
+ "[ ...testcase.rb: 78] {run } ",
62
+ "[ ...testcase.rb: 42] {run } ",
63
+ "[...testsuite.rb: 34] {run } ",
64
+ "[...testsuite.rb: 33] {each } ",
65
+ "[...testsuite.rb: 33] {run } ",
66
+ "[...testsuite.rb: 23] {run } ",
67
+ "[...testsuite.rb: 34] {run } ",
68
+ "[...testsuite.rb: 33] {each } ",
69
+ "[...testsuite.rb: 33] {run } ",
70
+ "[ ...: 46] {run_suite } ",
71
+ "[ ...: 67] {start_mediator } ",
72
+ "[ ...: 41] {start } ",
73
+ "[ ...: 29] {run } ",
74
+ "[ ...: 216] {run } ",
75
+ "[ ...: 12] {run } ",
76
+ # nil means to ignore these lines, which in this case is
77
+ # because this is deep in the unit test code:
78
+ nil,
79
+ nil,
80
+ ]
81
+
82
+ run_test @verbose_setup, log, *expected_output
83
+ end
84
+
85
+ # the ctor is down here so the lines above are less likely to change.
86
+ def initialize test, name
87
+ @nonverbose_setup = Proc.new {
88
+ Log.verbose = false
89
+ Log.output = StringIO.new
90
+ }
91
+
92
+ @verbose_setup = Proc.new {
93
+ Log.verbose = true
94
+ Log.output = StringIO.new
95
+ }
96
+
97
+ super
98
+ end
99
+
100
+ def run_test setup, log, *expected
101
+ io = setup.call
102
+ puts "io: #{io}"
103
+
104
+ log.call
105
+
106
+ assert_not_nil io
107
+ str = io.string
108
+ assert_not_nil str
109
+
110
+ lines = str.split "\n"
111
+
112
+ puts lines
113
+
114
+ assert_equals expected.size, lines.size, "number of lines of output"
115
+
116
+ (0 ... expected.size).each do |idx|
117
+ if expected[idx]
118
+ assert_equals expected[idx], lines[idx], "index: #{idx}"
119
+ end
120
+ end
121
+
122
+ Log.output = io
123
+ end
124
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riel
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 7
10
- version: 1.1.7
9
+ - 10
10
+ version: 1.1.10
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jeff Pace
@@ -15,12 +15,12 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-08-31 00:00:00 -04:00
18
+ date: 2012-11-01 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
22
22
  description: This library extends the core Ruby libraries.
23
- email: jpace@incava.org
23
+ email: jeugenepace@gmail.com
24
24
  executables: []
25
25
 
26
26
  extensions: []
@@ -80,6 +80,7 @@ files:
80
80
  - test/riel/log_test.rb
81
81
  - test/riel/integer_test.rb
82
82
  - test/riel/rcfile_test.rb
83
+ - test/riel/log_stack_test.rb
83
84
  - test/riel/hash_test.rb
84
85
  - test/riel/setdiff_test.rb
85
86
  - test/riel/string_test.rb
@@ -139,6 +140,7 @@ test_files:
139
140
  - test/riel/log_test.rb
140
141
  - test/riel/integer_test.rb
141
142
  - test/riel/rcfile_test.rb
143
+ - test/riel/log_stack_test.rb
142
144
  - test/riel/hash_test.rb
143
145
  - test/riel/setdiff_test.rb
144
146
  - test/riel/string_test.rb