LRH-filelister 1.0.0

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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/listers.rb +104 -0
  3. metadata +57 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1239f5654a9ebee07b5b57f08a9755175c3033b0
4
+ data.tar.gz: a48f5bb0d67b6ae7abaa694760fec21268109703
5
+ SHA512:
6
+ metadata.gz: f5bb9c1ffbf19fc822d8af0b4b055f63a957d307a322701a643005fc00aee17ae64c59f7b3109ebc4bf853a40e301c1001c3a1622c980f7c72f9b57ee2bfebeb
7
+ data.tar.gz: 26d02843b4257cf6350c52d143bb4415955340aecef535a9a29af9fc0b8663cb45fd43ad0cc969cab1b3eeb70ccc5659b71408f4e4967ea547eed1cbc85500d6
data/listers.rb ADDED
@@ -0,0 +1,104 @@
1
+ require "LRH"
2
+
3
+ class RecursiveLister < Lister
4
+ def initialize(dir, ext, filter=/.*/)
5
+ super()
6
+ set_option :dir, dir
7
+ set_option :ext, ext
8
+ set_option :filter, filter
9
+ end
10
+
11
+ def list
12
+ dir = get_option :dir
13
+ ext = get_option :ext
14
+ filter = get_option :filter
15
+
16
+ queue = [dir]
17
+
18
+ while queue.size > 0
19
+ cdir = queue.shift
20
+ Dir.entries(cdir).each do |entry|
21
+ next if ["..", "."].include? entry
22
+ file = File.join(cdir, entry)
23
+
24
+ if FileTest.directory? file
25
+ queue.push file
26
+ else
27
+ next if ext != nil && !ext.include?(File.extname(file).gsub(/[^A-Za-z]/, ""))
28
+ next if !(file =~ filter)
29
+ toy = {
30
+ :filename => file,
31
+ :path => File.basename(cdir),
32
+ :basedir => cdir
33
+ }
34
+
35
+ yield toy
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ def self.test(dir="../../../RQ2")
42
+ LRHTest.test_lister RecursiveLister.new(dir, ['xml', 'html'])
43
+ end
44
+ end
45
+
46
+ class NonRecursiveLister < Lister
47
+ def initialize(dir, ext, filter=/.*/)
48
+ super()
49
+ set_option :dir, dir
50
+ set_option :ext, ext
51
+ set_option :filter, filter
52
+ end
53
+
54
+ def list
55
+ dir = get_option :dir
56
+ ext = get_option :ext
57
+ filter = get_option :filter
58
+
59
+ cdir = dir
60
+ Dir.entries(cdir).each do |entry|
61
+ next if ["..", "."].include? entry
62
+ file = File.join(dir, entry)
63
+
64
+ if !FileTest.directory? file
65
+ next if ext != nil && !ext.include?(File.extname(file).gsub(/[^A-Za-z]/, ""))
66
+ next if !(file =~ filter)
67
+ toy = {
68
+ :filename => file,
69
+ :path => File.basename(dir),
70
+ :basedir => dir
71
+ }
72
+
73
+ yield toy
74
+ end
75
+ end
76
+ end
77
+
78
+ def self.test(dir="../../../RQ2")
79
+ LRHTest.test_lister NonRecursiveLister.new(dir, ['xml', 'html'])
80
+ end
81
+ end
82
+
83
+ class SingleLister < Lister
84
+ def initialize(file)
85
+ super()
86
+ set_option :file, file
87
+ end
88
+
89
+ def list
90
+ file = get_option :file
91
+ cdir = File.dirname file
92
+ toy = {
93
+ :filename => file,
94
+ :path => File.basename(cdir),
95
+ :basedir => cdir
96
+ }
97
+
98
+ yield toy
99
+ end
100
+
101
+ def self.test(dir="../../../RQ2")
102
+ LRHTest.test_lister SingleLister.new("/home/test/x.alfa")
103
+ end
104
+ end
metadata ADDED
@@ -0,0 +1,57 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: LRH-filelister
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Simone Scalabrino
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-10-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: LRH
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0
27
+ description: Allows to list files in the LRH framework
28
+ email: s.scalabrino9@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - listers.rb
34
+ homepage: ''
35
+ licenses: []
36
+ metadata: {}
37
+ post_install_message:
38
+ rdoc_options: []
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ requirements: []
52
+ rubyforge_project:
53
+ rubygems_version: 2.6.13
54
+ signing_key:
55
+ specification_version: 4
56
+ summary: File lister in LRH framework
57
+ test_files: []