evt-schema 2.2.5.0 → 2.2.7.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 11db0e0940b27bbf03b4e30ce0e769d3997078402f7cacd3dd865798a05c011c
4
- data.tar.gz: d6b5aefdbb44f3a0dbafe9b80cd804d6f35043f1703c74ad3b8cfc1fe200b57b
3
+ metadata.gz: 7ba3db2edbbe435d203deacf8e1adf8371126f4233496668a4a3bf64e0f9b7b9
4
+ data.tar.gz: 327690e6aac9bf21458776935ab4213d62b45bf109290bcb416ac18fea0912de
5
5
  SHA512:
6
- metadata.gz: 20a2f86f42dbcbf0846bfa33a9f2cf82c62028e42f1995c82188c3f3e656212edff18f63b45107cab497e421ac2879e26669dd04f489fea7992dc366ec3959e9
7
- data.tar.gz: 77b65107b983cabc8dbac513992d7705cf03a5e460c25311c1ef3d59951df185b95ed8042f19eaea4edde790fbd1901aa68f65088e38e19d4d3564816a88e6f0
6
+ metadata.gz: 7244b65f846380ea41de0f6b19ed6c1bac4b67ca7843e6e0ea20903627904c58879a3d703f4cd5f35caa23e4b5569cb8a7948523ea18bba02d5cf304ed6f6b06
7
+ data.tar.gz: 8d7418966296aa94c6df0bc79abc30b8d2e06e8cdd46bcc8a65f20fbd92052b1d763a0596951011aaaaf10273931b9f4082cbb8972381aedbfe86a446b3192a9
@@ -124,11 +124,20 @@ module Schema
124
124
  attribute :some_other_attribute
125
125
  end
126
126
 
127
- module Proc
128
- class Example
129
- include ::Schema
130
- attribute :some_attribute, default: proc { 'some default value' }
131
- end
127
+ class Primitive
128
+ include ::Schema
129
+ attribute :some_attribute, default: 11
130
+ attribute :some_other_attribute
131
+ end
132
+
133
+ class Proc
134
+ include ::Schema
135
+ attribute :some_attribute, default: proc { 'some default value' }
136
+ end
137
+
138
+ class ObjectReference
139
+ include ::Schema
140
+ attribute :some_attribute, default: []
132
141
  end
133
142
  end
134
143
 
@@ -39,9 +39,20 @@ module Schema
39
39
  end
40
40
  end
41
41
 
42
- def dup
42
+ def deep_copy
43
43
  data = to_h
44
44
  self.class.build(data)
45
45
  end
46
+ alias :dup :deep_copy
47
+
48
+ def clone
49
+ duplicate = deep_copy
50
+
51
+ if frozen?
52
+ duplicate.freeze
53
+ end
54
+
55
+ duplicate
56
+ end
46
57
  end
47
58
  end
@@ -0,0 +1 @@
1
+ lib/schema/Users/sbellware/projects/eventide/schema-fixtures/lib/schema/fixtures
@@ -0,0 +1 @@
1
+ lib/schema/Users/sbellware/projects/eventide/schema-fixtures/lib/schema/fixtures.rb
@@ -62,7 +62,7 @@ module Schema
62
62
  if default.is_a? Proc
63
63
  initialize_value = default
64
64
  elsif !default.nil?
65
- initialize_value = proc { default }
65
+ initialize_value = proc { default.clone }
66
66
  end
67
67
 
68
68
  ::Attribute::Define.(self, attribute_name, :accessor, check: check, &initialize_value)
@@ -78,7 +78,9 @@ module Schema
78
78
  @attributes ||= AttributeRegistry.new
79
79
  end
80
80
 
81
- def attribute_names
81
+ def attribute_names(include_transient: nil)
82
+ include_transient ||= false
83
+
82
84
  transient_attributes = []
83
85
  if respond_to?(:transient_attributes)
84
86
  transient_attributes = self.transient_attributes
@@ -86,12 +88,20 @@ module Schema
86
88
 
87
89
  attribute_names = []
88
90
  attributes.each do |attribute|
89
- next if transient_attributes.include?(attribute.name)
91
+ if !include_transient &&
92
+ transient_attributes.include?(attribute.name)
93
+ next
94
+ end
95
+
90
96
  attribute_names << attribute.name
91
97
  end
92
98
 
93
99
  attribute_names
94
100
  end
101
+
102
+ def all_attribute_names
103
+ attribute_names(include_transient: true)
104
+ end
95
105
  end
96
106
 
97
107
  class AttributeRegistry
@@ -50,12 +50,12 @@ module Schema
50
50
 
51
51
  def self.build_entry(control_name, control, compare_name, compare)
52
52
  control_class = control.class
53
- if not control_class.attribute_names.include?(control_name)
53
+ if not control_class.all_attribute_names.include?(control_name)
54
54
  raise Error, "Attribute is not defined (Attribute Name: #{control_name.inspect}, Schema Class: #{control_class})"
55
55
  end
56
56
 
57
57
  compare_class = compare.class
58
- if not compare_class.attribute_names.include?(compare_name)
58
+ if not compare_class.all_attribute_names.include?(compare_name)
59
59
  raise Error, "Attribute is not defined (Attribute Name: #{compare_name.inspect}, Schema Class: #{compare_class})"
60
60
  end
61
61
 
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: 2.2.5.0
4
+ version: 2.2.7.2
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: 2020-07-14 00:00:00.000000000 Z
11
+ date: 2020-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-attribute
@@ -110,6 +110,8 @@ files:
110
110
  - lib/schema/controls/schema.rb
111
111
  - lib/schema/controls/schema/different.rb
112
112
  - lib/schema/data_structure.rb
113
+ - lib/schema/fixtures
114
+ - lib/schema/fixtures.rb
113
115
  - lib/schema/schema.rb
114
116
  - lib/schema/schema/attribute.rb
115
117
  - lib/schema/schema/compare.rb