riel 1.1.7 → 1.1.10

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.
@@ -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