dxlite 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +0 -0
- data/lib/dxlite.rb +58 -0
- metadata +110 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 23082020cd65c50d0f9bb1565d1edab3e740c37e8e5162c02a4f60b9e29ea78e
|
4
|
+
data.tar.gz: 9224232152f762b4d8c1cefd0c4f92ec46b2733dd5a5f0cb77915c05add78739
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 884afeeffa6633912460e53cca866e21e0d6c58610a682f2909bf587b214f476410ccd5299d04591daccbfa1984baf7864aa8d6fcee6de8a2f5167f59fbc235c
|
7
|
+
data.tar.gz: fb7a06d3ba34a8804ebb04816226beaea8b627a2d543ab6d034507f781a660f592afa9f0a68178bb33c2490316a9414b7a4319f0ab8c147e3f4254443017fe58
|
checksums.yaml.gz.sig
ADDED
data.tar.gz.sig
ADDED
Binary file
|
data/lib/dxlite.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# file: dxlite.rb
|
4
|
+
|
5
|
+
require 'json'
|
6
|
+
require 'recordx'
|
7
|
+
require 'rxfhelper'
|
8
|
+
|
9
|
+
class DxLite
|
10
|
+
|
11
|
+
attr_accessor :summary
|
12
|
+
attr_reader :records
|
13
|
+
|
14
|
+
def initialize(s, debug: false)
|
15
|
+
|
16
|
+
@debug = debug
|
17
|
+
|
18
|
+
buffer, type = RXFHelper.read(s)
|
19
|
+
puts 'type: ' + type.inspect if @debug
|
20
|
+
h = JSON.parse(buffer, symbolize_names: true)
|
21
|
+
|
22
|
+
@filepath = s if type == :file
|
23
|
+
|
24
|
+
@summary = h[:summary]
|
25
|
+
@records = h[:records]
|
26
|
+
@fields = @summary[:schema][/(?<=\()[^\)]+/].split(',').map(&:strip)
|
27
|
+
|
28
|
+
@fields.each do |x|
|
29
|
+
|
30
|
+
define_singleton_method ('find_all_by_' + x).to_sym do |value|
|
31
|
+
@records.select {|rec| rec[x.to_sym] == value }
|
32
|
+
end
|
33
|
+
|
34
|
+
define_singleton_method ('find_by_' + x).to_sym do |value|
|
35
|
+
@records.find {|rec| rec[x.to_sym] == value }
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
def all()
|
43
|
+
|
44
|
+
@records.map do |h|
|
45
|
+
RecordX.new(h, self, h[:id], h[:created], h[:last_modified])
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
def create(h)
|
51
|
+
@records << h
|
52
|
+
end
|
53
|
+
|
54
|
+
def save(file=@filepath)
|
55
|
+
File.write file, @records.to_json
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
metadata
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dxlite
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Robertson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwNjIwMDk1OTIyWhcN
|
15
|
+
MjEwNjIwMDk1OTIyWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCcnuff
|
17
|
+
5MVmDII05CloWme8XkTcCkGTFTCGqacPAa5803163oHfU0CovEbdSR8KNVXQ0mVz
|
18
|
+
ZkE1kEi/xlAbZHKZTgJNjzXKcTfW0zNI/1l9Jyz59fjOUgO26oWgEJX1iJBUkzAx
|
19
|
+
1jHBvCGvAgKi1gmPovfrnPkXJ4e39Kklay4mrsfRO1qAkyfoUCn8TOc4/xVyB9UV
|
20
|
+
zpSfryHT41gM3vUyVyfkLsC8St6oI2j6R45YJIL2Hz1UBZsFk8ICn8MKL84b+nyX
|
21
|
+
YiW3BoOhB5x4M+tORhMqIYwSW///P3ztFVuZCoZsZm7KDlmZ5Q+kbtg2O6WJqOeX
|
22
|
+
2CLAag6UYpWUJd9SBDOOLvNAzdzKHOlD/tJQnHrLTJzNSQQZcCLa7xjAob2vooFi
|
23
|
+
zO7nNoPnRb7MFAdnjEgIPra6GZ6BxSzeWKmkXX6vFCs8Uy8N0ijHyWg4NKDlgHzl
|
24
|
+
VCS9RW6U/gIhciP3kabmxcu2R67I79UDJU4tf8fYN+7tZLfU7g5S0QLQfrsCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUDodJj5qi
|
26
|
+
akKU2hOApwE0BzK8lGswJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAAp+SekW1hEJtEVytkrrwQlx/7umkgPsiQS18ch7v
|
29
|
+
sRZBRxLXwFdG0LLmqo1rP0vd+JMDq0DXZVR6bluBGp2NEsFD9XyBs7Rsz/+4SEQ4
|
30
|
+
4eLGxTkU8+expljNlWRAFZdyt1RPHbs0LScrjBZaVzfBJtLXLcl8CWhyqM4OPTHv
|
31
|
+
R18J5Arlbd4O0PfYXQ08UtoSsNrqf77o24nPuXMXKMwPhmaCpuj0Lo4zBkha9EO8
|
32
|
+
geBYBisigKBlddJirP391twfnfQS0Qx/j7LgkYgXAuD3Z0Ma1Z9E3HzuTvXernzM
|
33
|
+
sECCiG3ji+1NriaIv8rb6mG/Zbdjv8ydoFAj+M+0qbE+ZARNlBHKI7F7lYQJc0cT
|
34
|
+
vsTqpllA3ZpXxVzmfiJMahAv08eTnWbgCSRNbCm6mq6I4hyAiudbxcc+DPzLbrxx
|
35
|
+
dwbAN6/wokoLVZAiMRG1vZlI6RhtSOTHvFHbfBE5JI9rhjRtui8yeV+t8iI8G4Zs
|
36
|
+
2NszuYzdlVfzlrUiPWY5jL9P
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
date: 2020-06-20 00:00:00.000000000 Z
|
39
|
+
dependencies:
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: recordx
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 1.0.0
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.0'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.0.0
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '1.0'
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: rxfhelper
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0.5'
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.5.4
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0.5'
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 0.5.4
|
80
|
+
description:
|
81
|
+
email: james@jamesrobertson.eu
|
82
|
+
executables: []
|
83
|
+
extensions: []
|
84
|
+
extra_rdoc_files: []
|
85
|
+
files:
|
86
|
+
- lib/dxlite.rb
|
87
|
+
homepage: https://github.com/jrobertson/dxlite
|
88
|
+
licenses:
|
89
|
+
- MIT
|
90
|
+
metadata: {}
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
require_paths:
|
94
|
+
- lib
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
requirements: []
|
106
|
+
rubygems_version: 3.0.3
|
107
|
+
signing_key:
|
108
|
+
specification_version: 4
|
109
|
+
summary: Handles Dynarex documents (in JSON format) faster and with less overheads.
|
110
|
+
test_files: []
|
metadata.gz.sig
ADDED
Binary file
|