dxlite 0.4.0 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +3 -3
  3. data/lib/dxlite.rb +46 -32
  4. data.tar.gz.sig +0 -0
  5. metadata +13 -14
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e7ca783b4730eb45379b1e06eed84ad925b0c07fcffa430bdcffbe5e6eb4f58
4
- data.tar.gz: abe705038e2ba9de443ec9d05ccc6f9ad0a6373c2f666e074ed663fde4c8d486
3
+ metadata.gz: d801e5f83ee0cb995d9ce93d12f0dec7b12dee2d54abc9de52e756ad597ab2e4
4
+ data.tar.gz: 90aac22d4b4355a49f966e8f2b6a7002b7f5837dbd753c523fe20cee141f63e0
5
5
  SHA512:
6
- metadata.gz: ecf2d3105cf6e647a3218282369801206cce0711f7502a67b20fde8623dcb40dbe4e0c072e20f60d54a82b55e7479d6e4563f83dff43d53f603d50e26ab0f7a8
7
- data.tar.gz: 3673db0fe254541450bc167d351af2992d2706923b6383dba8f61ffaf9ac2d47c2d2696a70e00f4cd55093d93f01e6e9ea6acb28a6392f21569113716d3180f1
6
+ metadata.gz: fb2f3379b28b49e39c41a8cacc231a4e1b953b521c50f2cc2a406f5d081ebc9c3f35c8e48c29ec59122e40e7bab625e319941752d15a4bc7c45f425e0e056a13
7
+ data.tar.gz: ab1798ce52a986be50e48bdd3e31c745fd96e256ee39c49197bfaaf823799d5bdec0120e26932e4549c466d370bb0290575112d4ffc514f7decb5e959615a331
checksums.yaml.gz.sig CHANGED
@@ -1,3 +1,3 @@
1
- %��э��[^X��l���IO����Џ)-��6�Ӿ� ��S�ԉ���`�k`��efJ�ۣ��ū%�C�Z��=m,-�)m���$�j[W���;�Ο��96��RNy��,Q�ׂ�n���41$�m���b�'��?�~9����?����6�%�]H�����aB2�C`�*z7��f�����pσ�����+S�*˞�?����`S�;Y
2
- N_�T>��S�s|f�)9�5PX�[���
3
- ����.q�� 5;���G��S ��®�ee.���m�1揜���5��Tؗ*�#��ӤH߻���@�Xw�����R�ǵ B ���y�C0EXZ2[��Q\p��w�����Y\v�9�B�آ؈
1
+ ���zp�k��^�k0�f+g���s(��*�
2
+ 5�`����
3
+ ��`6��b��^�&+ܬ�v1��Z�yuc�X�~ʱM���X�[���~�i��y�vk�͢;j`'x��@�?oj�<f��c��_���+�O��9(�7�m�F>�w��+����V�p�[\��+��$��d>��:l�= SQ<�7ں\���:"D�X�S�A����X��GfT������9�R��f���3�b(��T<��g���p�<�s����8�J���,��~�<|C���A,|��u=5�� �}��L�_v�I�ރ����HB�M����L̍ea'Ll��wF����G�0�
data/lib/dxlite.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  # file: dxlite.rb
4
4
 
5
5
  require 'c32'
6
+ require 'kvx'
6
7
  require 'json'
7
8
  require 'recordx'
8
9
  require 'rxfhelper'
@@ -10,9 +11,10 @@ require 'rxfhelper'
10
11
 
11
12
  class DxLite
12
13
  using ColouredText
14
+ include RXFHelperModule
13
15
 
14
- attr_accessor :summary, :filepath, :schema
15
- attr_reader :records
16
+ attr_accessor :summary, :filepath
17
+ attr_reader :records, :schema
16
18
 
17
19
  def initialize(s=nil, autosave: false, debug: false)
18
20
 
@@ -30,14 +32,17 @@ class DxLite
30
32
 
31
33
  case type
32
34
 
35
+ when :dfs
36
+
37
+ read buffer
38
+
33
39
  when :file
34
40
 
35
41
  read buffer
36
42
 
37
43
  when :text
38
44
 
39
- @summary = {schema: s}
40
-
45
+ new_summary(s)
41
46
 
42
47
  when :url
43
48
 
@@ -45,29 +50,6 @@ class DxLite
45
50
 
46
51
  end
47
52
 
48
- puts '@summary: ' + @summary.inspect if @debug
49
- @schema = @summary[:schema]
50
-
51
- summary_attributes = {
52
- recordx_type: 'dynarex',
53
- default_key: @schema[/(?<=\()\w+/]
54
- }
55
-
56
- puts 'before merge' if @debug
57
- @summary.merge!(summary_attributes)
58
-
59
- summary = @summary[:schema][/(?<=\[)[^\]]+/]
60
-
61
- if summary then
62
-
63
- summary.split(/ *, */).each do |x|
64
- @summary[x] = nil unless @summary[x]
65
- end
66
-
67
- end
68
-
69
- make_methods()
70
-
71
53
  end
72
54
 
73
55
  def all()
@@ -151,13 +133,15 @@ class DxLite
151
133
 
152
134
  def parse(obj=nil)
153
135
 
136
+ @records ||= []
137
+
154
138
  if obj.is_a? Array then
155
139
 
156
140
  unless schema() then
157
141
  puts 'obj.first: ' + obj.first.inspect if @debug
158
142
  cols = obj.first.keys.map {|c| c == 'id' ? 'uid' : c}
159
143
  puts 'after cols' if @debug
160
- self.schema = "items/item(%s)" % cols.join(', ')
144
+ new_summary "items/item(%s)" % cols.join(', ')
161
145
  end
162
146
 
163
147
  obj.each do |x|
@@ -185,10 +169,10 @@ class DxLite
185
169
  summary[:schema] = summary['schema']
186
170
  %w(recordx_type format_mask schema).each {|x| summary.delete x}
187
171
 
188
- schema = summary[:schema]
172
+ @schema = summary[:schema]
189
173
  puts 'schema: ' + schema.inspect if @debug
190
174
 
191
- @fields = schema[/\(([^\)]+)/,1].split(/ *, +/)
175
+ @fields = @schema[/\(([^\)]+)/,1].split(/ *, +/)
192
176
  puts 'fields: ' + @fields.inspect if @debug
193
177
 
194
178
  @summary = summary
@@ -208,7 +192,7 @@ class DxLite
208
192
  @filepath = file
209
193
 
210
194
  s = File.extname(file) == '.json' ? to_json() : to_xml()
211
- File.write file, s
195
+ FileX.write file, s
212
196
  end
213
197
 
214
198
  def to_a()
@@ -331,6 +315,34 @@ class DxLite
331
315
 
332
316
  end
333
317
 
318
+ def new_summary(schema)
319
+
320
+ @summary = {schema: schema}
321
+
322
+ puts '@summary: ' + @summary.inspect if @debug
323
+ @schema = @summary[:schema]
324
+
325
+ summary_attributes = {
326
+ recordx_type: 'dynarex',
327
+ default_key: schema[/(?<=\()\w+/]
328
+ }
329
+
330
+ puts 'before merge' if @debug
331
+ @summary.merge!(summary_attributes)
332
+
333
+ summary = @summary[:schema][/(?<=\[)[^\]]+/]
334
+
335
+ if summary then
336
+
337
+ summary.split(/ *, */).each do |x|
338
+ @summary[x] = nil unless @summary[x]
339
+ end
340
+
341
+ end
342
+
343
+ make_methods()
344
+ end
345
+
334
346
  def read(buffer)
335
347
 
336
348
  if buffer[0] == '<' then
@@ -340,7 +352,7 @@ class DxLite
340
352
  else
341
353
 
342
354
  h1 = JSON.parse(buffer, symbolize_names: true)
343
- #puts 'h1:' + h1.inspect if @debug
355
+ puts 'h1:' + h1.inspect if @debug
344
356
 
345
357
  h = h1[h1.keys.first]
346
358
 
@@ -360,6 +372,8 @@ class DxLite
360
372
 
361
373
  end
362
374
 
375
+ make_methods()
376
+
363
377
  end
364
378
 
365
379
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dxlite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,48 +35,48 @@ cert_chain:
35
35
  9pK+pqislEMFrWscGeMsc6YMS7ALxEujTuwTWyxmWAXnYft4ff2O1Zh2sPmdOlgf
36
36
  camg7d8q+VZZzAtz0cFc4pip
37
37
  -----END CERTIFICATE-----
38
- date: 2021-12-14 00:00:00.000000000 Z
38
+ date: 2022-02-15 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
- name: recordx
41
+ name: kvx
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.5'
46
+ version: '1.0'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.5.5
49
+ version: 1.0.1
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '0.5'
56
+ version: '1.0'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 0.5.5
59
+ version: 1.0.1
60
60
  - !ruby/object:Gem::Dependency
61
- name: rxfhelper
61
+ name: recordx
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '1.1'
66
+ version: '0.5'
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 1.1.3
69
+ version: 0.5.5
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '1.1'
76
+ version: '0.5'
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: 1.1.3
79
+ version: 0.5.5
80
80
  description:
81
81
  email: digital.robertson@gmail.com
82
82
  executables: []
@@ -103,8 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  requirements: []
106
- rubyforge_project:
107
- rubygems_version: 2.7.10
106
+ rubygems_version: 3.3.3
108
107
  signing_key:
109
108
  specification_version: 4
110
109
  summary: Handles Dynarex documents (in JSON format) faster and with less overheads.
metadata.gz.sig CHANGED
Binary file