dir-to-xml 0.9.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 01a4b3aec17ca252dcbb382039fc1d524232d4ed
4
- data.tar.gz: 323364e008498af01dae7f5dcca7c89814ecd943
2
+ SHA256:
3
+ metadata.gz: d6496a0f8c9d61c424059f610d41ec4694af6b0978becff48d288fa69f6e92a1
4
+ data.tar.gz: 727f869e42d65809b44ae09fa8047d8489b861030545dfc4697823bf0803f7f0
5
5
  SHA512:
6
- metadata.gz: ecfb0f041170061498a80f5d8d3ade3f328382051682b62e23d7d94eefcb799646e9186b1bab0f4f0d08a9c069eaadb499152b1f8e5ca8bc7fc4f60af7e8f1d3
7
- data.tar.gz: 00ef273e6116280099c6f08a671bc314b009841980c79fe3451f308e5b35768e3250989619f1bef28d987ed54c0404935a0042ec6c1f9398333ba8d4868dbdfc
6
+ metadata.gz: 66b044181149d1560fe343c4de959667475322503ac124a522b33a2b6ad8625b2325d7c949ec1dca2adc01c0fc03413d8b273b35ae973297afec99cb9bb95beb
7
+ data.tar.gz: 2e04fe70291f883a0c165baa5dd4337841682f34888d36a3a57763e4b1867d1746650ae2375a525eece11c576b75bdbd5503b21b263be691b5f9e7384e241840
Binary file
data.tar.gz.sig CHANGED
@@ -1,2 +1,3 @@
1
- ��!��Ý�1K‡��$Nη�����V��n�F�h+/��F�W�A)t����7�G��V���Z�����#���(E��.qc���^� lw���w6����\d/��!����x�h�Ec݋�� Ir}Wp�_;�U�7=�L?�b�c�N�%�̕�e
2
- n���l�V���4�=�`�҃|E�I��sI�Srq!j
1
+ <�򈎼�����H����?v:w��7v��^܇|�p
2
+ 07z�bݹ�[w�m*��LO�绝�x_�������V�զ@q�j��k��s�!��\�������������޸z0
3
+ w7+=]$�UlBe&�7���N7D�Ѷ�l�����=y�L��5´՚�WNU��a��Z�}a��hH3+��TJTJ{�t�>�à�] :U= d�e��򭏱LČ�Boq�����`��/��2.Rш{:'ƣ�]�!7���u���z�1ۻ�� ��I�A1~���՜*]�M�?0�@��ڕ��jA=xy�K��޴VV�X��E��ľ�o -�⯿��,�m��g��r
@@ -2,18 +2,20 @@
2
2
 
3
3
  # file: dir-to-xml.rb
4
4
 
5
- require 'dynarex'
5
+ require 'dxlite'
6
6
 
7
7
 
8
8
  class DirToXML
9
9
 
10
10
  attr_reader :dx
11
11
 
12
- def initialize(x= '.', recursive: false, index: 'dir.xml')
13
-
12
+ def initialize(x= '.', recursive: false, index: 'dir.xml', debug: false)
13
+
14
14
  super()
15
15
 
16
- if x.is_a? Dynarex then
16
+ @debug = debug
17
+
18
+ if x.is_a? DxLite then
17
19
 
18
20
  @dx = x
19
21
  @a = @dx.to_a
@@ -74,15 +76,19 @@ class DirToXML
74
76
  @dx.filter &blk
75
77
  end
76
78
 
77
- def filter_by(pattern=/.*/, type: nil)
79
+ def filter_by(pattern=/.*/, type: nil, ext: nil)
78
80
 
79
81
  @object = @a.select do |x|
80
82
 
81
83
  pattern_match = x[:name] =~ pattern
84
+
82
85
  type_match = type ? x[:type] == type.to_s : true
86
+ ext_match = ext ? x[:ext] == ext.to_s : true
87
+
88
+ pattern_match and type_match and ext_match
83
89
 
84
90
  end
85
-
91
+
86
92
  self
87
93
  end
88
94
 
@@ -113,12 +119,15 @@ class DirToXML
113
119
  @dx.save File.join(@path, @index)
114
120
  end
115
121
 
116
- def select_by_ext(ext)
122
+ def select_by_ext(ext, &blk)
123
+
124
+ @object = ext != '*' ? @a.select{|x| x[:ext][/#{ext}$/]} : @a
125
+ return if @object.empty?
117
126
 
118
- @object = ext != '*' ? @a.select{|x| x[:ext][/#{ext}/]} : @a
119
- dx = Dynarex.new json_out: false
127
+ dx = DxLite.new
120
128
  dx.import @object
121
- DirToXML.new(dx)
129
+ dtx = DirToXML.new(dx)
130
+ block_given? ? dtx.dx.all.map(&:name).each(&blk) : dtx
122
131
  end
123
132
 
124
133
  def sort_by(sym)
@@ -149,16 +158,18 @@ class DirToXML
149
158
  @dx.clone
150
159
  end
151
160
 
161
+ alias to_dx to_dynarex
162
+
152
163
  private
153
164
 
154
165
  def dxify(a)
155
166
 
156
- dx = Dynarex.new('directory[title,file_path]/file(name, ' + \
167
+ dx = DxLite.new('directory[title, file_path, description]/file(name, ' + \
157
168
  'type, ext, ctime, mtime, atime, description, owner, ' + \
158
- 'group, permissions)', json_out: false)
169
+ 'group, permissions)')
159
170
 
160
- dx.title = 'Index of ' + @path
161
- dx.file_path = @path
171
+ dx.title = 'Index of ' + File.expand_path(@path)
172
+ dx.file_path = File.expand_path(@path)
162
173
 
163
174
  dx.import a
164
175
 
@@ -170,14 +181,18 @@ class DirToXML
170
181
 
171
182
  def refresh(cur_files)
172
183
 
173
- dx = Dynarex.new(File.join(@path, @index), json_out: false)
184
+ puts 'inside refresh' if @debug
185
+ dx = DxLite.new(File.join(@path, @index), debug: @debug)
174
186
 
175
187
  prev_files = dx.to_a
188
+
189
+ #puts 'prev_files: ' + prev_files.inspect
190
+ #puts 'cur_files: ' + cur_files.inspect
176
191
 
177
192
  cur_files.each do |x|
178
193
 
179
194
  file = prev_files.find {|item| item[:name] == x[:name] }
180
-
195
+ #puts 'found : ' + file.inspect if @debug
181
196
  x[:description] = file[:description] if file and file[:description]
182
197
  end
183
198
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dir-to-xml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,51 +10,55 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE2MDczMTE1MDg0MFoXDTE3MDczMTE1MDg0MFowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAKe0Tx9cyuP49OURT7IiCnuCaeFllrizfGPz71cWJwRwG3tTKgyahn929V6N
19
- 8ALUq10u1g3s1ZtOxhpv0UXj8DkqrV6Y7B37ASrKgfeN8+oKOOYldFlcP0Bixyfp
20
- K7Y1O3xrd66O2qNjtTdD7uTEzOPhLw3SUkO0IkuF+Kqam81fsmAcAIWdROGiD9ax
21
- DL4j7ykZ/AYmi6R8NKrYN637w2sOnkYXufIQ8wx9qibY3HMW5+X21L6gEaFUDeSW
22
- 2m//fkHlxmFN+IICo6DFc5VZKtwQmJVK1HnpKOVtWfsVN4bll7ANy54AxvyPsz0r
23
- AO6/53uNtf6aJXGNkgAoSnRskXMCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUaNTA8KT0NF8E1x4S7UJf8EzbHJYwJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAC6wZQVPx
27
- H8PVmazVDwrxyllTrkeVFSgr3qVyigcBGpm+/sGyTDYnYWhV2GH9vYHM/OI1pJup
28
- 0q2bFjmKFR1xSHtlMzCTulPY+OpKY403Wg0VZepzTjh9ZDS19/0tQQoaFRd6Y0CT
29
- y8cHVYq+Ij6Ug16AA5KRuViQ1vaanElSlRKEmoWom3gkt5fkZ3SMVu/I/Bpx2j6u
30
- wqDD24RYravGp0su86eLBFeVjwF8kMUx1VA64kCz8FDTws+tozgFi2HMWPO/B603
31
- KsWUx1RJXP2nrd/DuPwuyaNM0fcsnnqFnbAO7RjbYXWS96dGA0WVmxdO7PcMnJ9K
32
- PneSyA3VrnMuNQ==
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjEwMTIzMTgwNTQ4WhcN
15
+ MjIwMTIzMTgwNTQ4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC3/Li6
17
+ /b2XI6+wLVA57zxSEu6RtQqu94GlPisH87ziQS+xYDYq8MqrlqHwA2O6GyK+dnCS
18
+ V0pdXagOSMj27drmy9j6AhdOGxZTvB4M+q2uxxSt1AU8jAlKVBhRiKt15sbSF43K
19
+ 3cY/PrccN4XpJT1YD44WU4+FwaGatFwcAsHtPpxYZgYMZj1sY+wnlKklqBrcWo6H
20
+ 21+fRAVgHi5dqypH6Yez5Rc2rUKEg72OIU76iSjyx9XP8CiX4sxSqw+HRwyCkjKx
21
+ d5Onb6vhlSyWpBwRmPRP1bbiztxho4Pla28HM+qVvLIqHpCYoWZi2xmKBoJ5oKPx
22
+ cUj1ThI5nucnixrbg5dUjhJF9Ews4PukHtG2uIc/7WG+vCbZHn2CZNqH4HfB8cW5
23
+ yoeD4sBFEJwzK8nfGZuAwJ0yOi8yZTqcW8HyK/IVXH+fqC1NsQVEL5yYhnaCCVvx
24
+ ShG2g5rh48kNN5CsIQb87WP3J/YnsXhIz3+dwJPmLt+QuWE6sI1NkGWHQFECAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUEmUqvmku
26
+ azMk41rHySinmAUmae8wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAUyL0Sh3Ld6sK0fldg057McECcaOIyB/nKJApz1er
29
+ ET9qYthBvhpcaNNo19NFuf9W9UyaE6RI9Eb07DvGYyVP/b0yTrIKyzXzSAwFmrek
30
+ 3VUVAhdqOIrIrf16Zpm4NoOGTOst+6sXZ9KQ52DPPwxdLbRCL7HkUFBMIVf2x2LV
31
+ XflA8IOlSUPH2vmHJnE0yfs7Lzd5+xYpKeOzQSHo0p+SBDzIim3mOZ3ryf4IZQhv
32
+ wh0fYGJ2iC/w3rPA78Awm6FNPlGCPjgPIz4mliMicRI/sZmFQvn8+2HYWEzDDOO8
33
+ zYvUB7rkjDGXYqN1Ft3N6EOuNworOFjUlcPrDFCQHf4UgPjD6Z8WbYkI9c7LWtjc
34
+ HJCyl/PVyS0Srbl8IPn7JsgUCS7S02KOnVzukQ7PTc1wBlAZ4mNb7N9EOp90GP9a
35
+ YSREEphg3phQsU9LV4Dlc2Id4gB3W+//c1Ek6TFieKoVemKMkbtB1lgqsEpTCfwh
36
+ oNUg84DlSmZ2z9LKagBVAlDy
33
37
  -----END CERTIFICATE-----
34
- date: 2017-06-11 00:00:00.000000000 Z
38
+ date: 2021-01-23 00:00:00.000000000 Z
35
39
  dependencies:
36
40
  - !ruby/object:Gem::Dependency
37
- name: dynarex
41
+ name: dxlite
38
42
  requirement: !ruby/object:Gem::Requirement
39
43
  requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '1.7'
43
44
  - - ">="
44
45
  - !ruby/object:Gem::Version
45
- version: 1.7.22
46
+ version: 0.3.0
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.3'
46
50
  type: :runtime
47
51
  prerelease: false
48
52
  version_requirements: !ruby/object:Gem::Requirement
49
53
  requirements:
50
- - - "~>"
51
- - !ruby/object:Gem::Version
52
- version: '1.7'
53
54
  - - ">="
54
55
  - !ruby/object:Gem::Version
55
- version: 1.7.22
56
+ version: 0.3.0
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.3'
56
60
  description:
57
- email: james@jamesrobertson.eu
61
+ email: digital.robertson@gmail.com
58
62
  executables: []
59
63
  extensions: []
60
64
  extra_rdoc_files: []
@@ -72,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
72
76
  requirements:
73
77
  - - ">="
74
78
  - !ruby/object:Gem::Version
75
- version: 2.1.2
79
+ version: 2.5.3
76
80
  required_rubygems_version: !ruby/object:Gem::Requirement
77
81
  requirements:
78
82
  - - ">="
@@ -80,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
84
  version: '0'
81
85
  requirements: []
82
86
  rubyforge_project:
83
- rubygems_version: 2.6.8
87
+ rubygems_version: 2.7.10
84
88
  signing_key:
85
89
  specification_version: 4
86
90
  summary: Dir-to-xml saves a directory listing in the Dynarex XML format
metadata.gz.sig CHANGED
Binary file