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.
- checksums.yaml +7 -0
- data/listers.rb +104 -0
- 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: []
|