evt-schema 1.0.0.0 → 1.0.1.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 +4 -4
- data/lib/schema/controls/data_structure.rb +29 -1
- data/lib/schema/data_structure.rb +2 -0
- data/lib/schema/schema.rb +12 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b28f918ca687069fb8873fd2beb3adbabf9b94d38970ce215d79e58b85d52bbc
|
4
|
+
data.tar.gz: cac22a2b6d9098a5525d9ac1ccf6c0130c5c016c39703b1414981184831701d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ea3009dc43e0538e4fff15a952825553c1b1574d5782c568b9b3a88691c8bfa43db1c2c11de261627762df4a04498383e6777c25b8bcc919cace1438a3df155
|
7
|
+
data.tar.gz: e78f28d4541fa257ea873691e07668d2be493af76fb6ca7cadb1f36c96e793a970d6581c2c3271bc053fe067182296ab5294b4b6d912321224407e4382f101fa
|
@@ -16,7 +16,9 @@ module Schema
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.hash
|
19
|
-
|
19
|
+
{
|
20
|
+
some_attribute: 'some value'
|
21
|
+
}
|
20
22
|
end
|
21
23
|
|
22
24
|
class Example
|
@@ -48,6 +50,32 @@ module Schema
|
|
48
50
|
end
|
49
51
|
end
|
50
52
|
end
|
53
|
+
|
54
|
+
module ImportAndExport
|
55
|
+
def self.example
|
56
|
+
example = Example.new
|
57
|
+
example.some_attribute = 'some value'
|
58
|
+
example
|
59
|
+
end
|
60
|
+
|
61
|
+
class Example < DataStructure::Example
|
62
|
+
def import(data)
|
63
|
+
data[:some_attribute] = 'some imported value'
|
64
|
+
end
|
65
|
+
|
66
|
+
def export(data)
|
67
|
+
data[:some_attribute] = 'some exported value'
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
module Data
|
72
|
+
def self.example
|
73
|
+
{
|
74
|
+
some_attribute: 'some value'
|
75
|
+
}
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
51
79
|
end
|
52
80
|
end
|
53
81
|
end
|
@@ -10,6 +10,7 @@ module Schema
|
|
10
10
|
virtual :configure_dependencies do
|
11
11
|
configure
|
12
12
|
end
|
13
|
+
virtual :import
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
@@ -19,6 +20,7 @@ module Schema
|
|
19
20
|
strict ||= false
|
20
21
|
|
21
22
|
new.tap do |instance|
|
23
|
+
instance.import(data)
|
22
24
|
set_attributes(instance, data, strict)
|
23
25
|
instance.configure_dependencies
|
24
26
|
end
|
data/lib/schema/schema.rb
CHANGED
@@ -6,6 +6,13 @@ module Schema
|
|
6
6
|
extend AttributeMacro
|
7
7
|
extend Attributes
|
8
8
|
|
9
|
+
# This is done as a countermeasure for incompatibility
|
10
|
+
# between Virtual and an Assertions module
|
11
|
+
# include Virtual
|
12
|
+
# virtual :export
|
13
|
+
define_method(:export) {|data|}
|
14
|
+
#
|
15
|
+
|
9
16
|
const_set(:Boolean, Boolean)
|
10
17
|
end
|
11
18
|
end
|
@@ -143,10 +150,14 @@ module Schema
|
|
143
150
|
transient_attributes = self.class.transient_attributes
|
144
151
|
end
|
145
152
|
|
146
|
-
self.class.attributes.each_with_object({}) do |attribute, attributes|
|
153
|
+
data = self.class.attributes.each_with_object({}) do |attribute, attributes|
|
147
154
|
next if transient_attributes.include?(attribute.name)
|
148
155
|
attributes[attribute.name] = public_send(attribute.name)
|
149
156
|
end
|
157
|
+
|
158
|
+
export(data)
|
159
|
+
|
160
|
+
data
|
150
161
|
end
|
151
162
|
alias :to_h :attributes
|
152
163
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evt-schema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Eventide Project
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: evt-attribute
|
@@ -115,8 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
117
|
requirements: []
|
118
|
-
|
119
|
-
rubygems_version: 2.7.6
|
118
|
+
rubygems_version: 3.0.1
|
120
119
|
signing_key:
|
121
120
|
specification_version: 4
|
122
121
|
summary: Primitives for schema and data structure
|