tucana 0.0.22 → 0.0.23

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
2
  SHA256:
3
- metadata.gz: b1fca058552e7526186854e47d0966ba1df3e775b7a20420d4bc415ec14c9644
4
- data.tar.gz: c141d17e4966783514e0f92f0db5935e5e502b2f0e2def31237a1ba36745ac2f
3
+ metadata.gz: ce6f7626c79b50cb3214aaf008dea1d6941a25c28312a7b37ecb27ee0406e213
4
+ data.tar.gz: 6d9ad235ce1e934adce2f4428abb571c42a1a4645ae7f661b1bb942219d9e4d9
5
5
  SHA512:
6
- metadata.gz: 3735231392c3fca57dcd184474d72c5fa9525f6ab16cdad0ceaf0bcbd5856bea3e9510d86c45f98022b8bf9215d4cc5ea486f2cf479627dbd995920084350a2f
7
- data.tar.gz: 3318baba593e30f93213e7928b7108dfc5f64b3a94723f01fc2d138a5d154e41d691be420bb7d97e593d55d6df7d5e5631c2fbe5e7d05240cbf13d38d68fa2df
6
+ metadata.gz: 3d21af9f90e103746fa16473b113e8dbb0f64753717d97137e8cfbe3c05644cf6378e822c820a17b5e40e8da1ff3f68ab574bd3de82b7e041cd497348f8d1985
7
+ data.tar.gz: ab2318010493a501945a7480c20a993fc7d5294e3354f502a00e32f2cf0e4e0fde16c88045df7b3f52a8d9640b66f60f7abca8e2a24e8ef93e32e8dd2b14ad50
@@ -9,6 +9,23 @@ module Tucana
9
9
  self.config
10
10
  end
11
11
 
12
+ def rule_config
13
+ case variant
14
+ when :contains_key
15
+ self.contains_key
16
+ when :contains_type
17
+ self.contains_type
18
+ when :item_of_collection
19
+ self.item_of_collection
20
+ when :number_range
21
+ self.number_range
22
+ when :regex
23
+ self.regex
24
+ else
25
+ raise UnexpectedRuleType, "Unknown rule type #{variant}"
26
+ end
27
+ end
28
+
12
29
  def create(variant, config)
13
30
  case variant
14
31
  when :contains_key
@@ -16,7 +33,7 @@ module Tucana
16
33
  when :contains_type
17
34
  self.contains_type = DataTypeContainsTypeRuleConfig.new(config)
18
35
  when :item_of_collection
19
- self.item_of_collection = DataTypeItemOfCollectionRuleConfig.new(config)
36
+ self.item_of_collection = DataTypeItemOfCollectionRuleConfig.from_hash(config)
20
37
  when :number_range
21
38
  self.number_range = DataTypeNumberRangeRuleConfig.new(config)
22
39
  when :regex
@@ -32,5 +49,52 @@ module Tucana
32
49
  self.new.create(variant, config)
33
50
  end
34
51
  end
52
+
53
+ DataTypeContainsKeyRuleConfig.class_eval do
54
+ def to_h
55
+ {
56
+ key: self.key,
57
+ data_type_identifier: self.data_type_identifier,
58
+ }
59
+ end
60
+ end
61
+
62
+ DataTypeContainsTypeRuleConfig.class_eval do
63
+ def to_h
64
+ {
65
+ data_type_identifier: self.data_type_identifier,
66
+ }
67
+ end
68
+ end
69
+
70
+ DataTypeItemOfCollectionRuleConfig.class_eval do
71
+ def to_h
72
+ {
73
+ items: self.items.map { |item| item.to_ruby(true) },
74
+ }
75
+ end
76
+
77
+ def self.from_hash(hash)
78
+ new(items: hash.fetch(:items).map { |item| Value.from_ruby(item) })
79
+ end
80
+ end
81
+
82
+ DataTypeNumberRangeRuleConfig.class_eval do
83
+ def to_h
84
+ {
85
+ from: self.from,
86
+ to: self.to,
87
+ steps: self.steps,
88
+ }
89
+ end
90
+ end
91
+
92
+ DataTypeRegexRuleConfig.class_eval do
93
+ def to_h
94
+ {
95
+ pattern: self.pattern,
96
+ }
97
+ end
98
+ end
35
99
  end
36
100
  end
@@ -4,5 +4,5 @@
4
4
  # to update the version, run "bundle exec rake release:version[NEW_VERSION]".
5
5
 
6
6
  module Tucana
7
- VERSION = "0.0.22"
7
+ VERSION = "0.0.23"
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tucana
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.22
4
+ version: 0.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niklas van Schrick