rbfind 1.4 → 1.5

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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/rbfind +4 -4
  3. data/lib/rbfind.rb +27 -16
  4. metadata +8 -10
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 280a77034256c49e824e1f17d34f4203ba674928
4
+ data.tar.gz: 88f8c7ba6ccdef27cc598b0d8a0886791ea8f6ec
5
+ SHA512:
6
+ metadata.gz: 829dfbb87533f8042ad9ed3b663d032858bd13e9987855b253a9745859c441dca8944d8df67d9f113589bdc06fe285f59c304817479ec78df3ca65cc1d60c2d1
7
+ data.tar.gz: 6f920a815b6710ef37c9d2e169cebbc7b9208cf6cb68b870aead72b1983ed905237d2b99ecdc408270100d8f430a9e73535bf6363ba93d1bbe9698819fd9d24e
data/bin/rbfind CHANGED
@@ -209,7 +209,7 @@ def set_encoding extern, intern = nil
209
209
  end
210
210
 
211
211
 
212
- class RbFindX < RbFind
212
+ class RbFindApp < RbFind
213
213
 
214
214
  # Alias the question marks away from all method names because
215
215
  # they're a nuisance on the command line.
@@ -375,9 +375,9 @@ error_handle do
375
375
  opath = co ? "cpath" : "path"
376
376
  case @lines
377
377
  when :plain then
378
- @puts and @block = "( #@block ) and colsep #{opath}, $., $_"
378
+ @puts and @block = "( #@block ) and colsep #{opath}, num, line"
379
379
  @real and @block = "break if ~/\0/o ; #@block"
380
- @block = "lines { |line,num| $_, $. = line, num ; #@block }"
380
+ @block = "lines { |line,num| #@block }"
381
381
 
382
382
  when :grep then
383
383
  RE = Regexp.new @block, @icase && Regexp::IGNORECASE
@@ -474,7 +474,7 @@ end
474
474
  EOT
475
475
 
476
476
  eval @blkbegin if @blkbegin
477
- RbFindX.open args, @params do |f| f.instance_eval @block end
477
+ RbFindApp.open args, @params do |f| f.instance_eval @block end
478
478
  eval @blkend if @blkend
479
479
  end
480
480
 
data/lib/rbfind.rb CHANGED
@@ -249,7 +249,7 @@ Sort without case sensitivity and preceding dot:
249
249
 
250
250
  class RbFind
251
251
 
252
- VERSION = "1.4".freeze
252
+ VERSION = "1.5".freeze
253
253
 
254
254
  class <<self
255
255
  private :new
@@ -259,12 +259,13 @@ class RbFind
259
259
  end
260
260
  args.flatten!
261
261
  if args.any? then
262
- args.inject 0 do |count,path|
263
- f = new path, params, &block
264
- count + f.count
262
+ count = 0
263
+ args.each do |path|
264
+ f = new path, count, params, &block
265
+ count = f.count
265
266
  end
266
267
  else
267
- f = new nil, params, &block
268
+ f = new nil, 0, params, &block
268
269
  f.count
269
270
  end
270
271
  end
@@ -275,17 +276,15 @@ class RbFind
275
276
 
276
277
  attr_reader :count, :wd, :start
277
278
 
278
- def initialize path, params = nil, &block
279
+ def initialize path, count, params = nil, &block
279
280
  @levels = []
280
281
  @block = block
281
282
 
282
283
  if params then
283
284
  params = params.dup
284
285
  dl = :do_level_depth if params.delete :depth
285
- md = params.delete :max_depth
286
- @max_depth = md.to_i if md
287
- st = params.delete :sort
288
- @sort = sort_parser st
286
+ md = params.delete :max_depth ; @max_depth = md.to_i if md
287
+ st = params.delete :sort ; @sort = sort_parser st
289
288
  @follow = params.delete :follow
290
289
  @error = params.delete :error
291
290
  params.empty? or
@@ -293,7 +292,7 @@ class RbFind
293
292
  end
294
293
  @do_level = method dl||:do_level
295
294
 
296
- @start, @count = Time.now, 0
295
+ @start, @count = Time.now, count
297
296
  @wd = Dir.getwd
298
297
  if path then
299
298
  File.lstat path
@@ -616,10 +615,11 @@ class RbFind
616
615
  block_given? or return lines do end
617
616
  open { |file|
618
617
  n = 0
619
- file.each_line { |line|
618
+ file.each_line { |l|
619
+ l.chomp!
620
620
  n += 1
621
- line.chomp!
622
- yield line, n
621
+ set_predefs l, n
622
+ yield l, n
623
623
  }
624
624
  n
625
625
  }
@@ -781,7 +781,7 @@ class RbFind
781
781
 
782
782
  def do_level
783
783
  begin
784
- @block.call self
784
+ call_block
785
785
  rescue Prune
786
786
  return
787
787
  end
@@ -796,12 +796,23 @@ class RbFind
796
796
  @path, @fullpath = path, fullpath
797
797
  end
798
798
  begin
799
- @block.call self
799
+ call_block
800
800
  rescue Prune
801
801
  raise RuntimeError, "#{self.class}: prune doesn't work with :depth."
802
802
  end
803
803
  end
804
804
 
805
+ def call_block
806
+ set_predefs name, count
807
+ @block.call self
808
+ end
809
+
810
+ def set_predefs l, n
811
+ b = @block.binding
812
+ b.local_variable_set "_", [ l, n]
813
+ b.eval "$_, $. = *_"
814
+ end
815
+
805
816
  def read_dir
806
817
  handle_error Errno::EACCES do
807
818
  Dir.new @path
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbfind
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.4'
5
- prerelease:
4
+ version: '1.5'
6
5
  platform: ruby
7
6
  authors:
8
7
  - Bertram Scharpf
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-03-31 00:00:00.000000000 Z
11
+ date: 2015-07-14 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: |
15
14
  A replacement for the standard UNIX command find.
@@ -23,14 +22,15 @@ extensions: []
23
22
  extra_rdoc_files:
24
23
  - LICENSE
25
24
  files:
26
- - README
27
- - lib/rbfind.rb
28
- - lib/humansiz.rb
29
25
  - LICENSE
26
+ - README
30
27
  - bin/rbfind
28
+ - lib/humansiz.rb
29
+ - lib/rbfind.rb
31
30
  homepage: http://www.bertram-scharpf.de/software/rbfind
32
31
  licenses:
33
32
  - BSD
33
+ metadata: {}
34
34
  post_install_message:
35
35
  rdoc_options:
36
36
  - "--charset"
@@ -40,13 +40,11 @@ rdoc_options:
40
40
  require_paths:
41
41
  - lib
42
42
  required_ruby_version: !ruby/object:Gem::Requirement
43
- none: false
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
46
  version: '0'
48
47
  required_rubygems_version: !ruby/object:Gem::Requirement
49
- none: false
50
48
  requirements:
51
49
  - - ">="
52
50
  - !ruby/object:Gem::Version
@@ -54,8 +52,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
54
52
  requirements:
55
53
  - just Ruby
56
54
  rubyforge_project:
57
- rubygems_version: 1.8.29
55
+ rubygems_version: 2.4.8
58
56
  signing_key:
59
- specification_version: 3
57
+ specification_version: 4
60
58
  summary: Ruby replacement for the standard Unix find tool
61
59
  test_files: []