jsondef 0.0.2 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 61e61692a7bf9b0059a307c7efa749e64b984aff
4
- data.tar.gz: 7415972dd3234d6bf359e2c748abee3f13b14ebf
3
+ metadata.gz: 46d05b8439f93fa6b9ddd50761c1e914ba344a94
4
+ data.tar.gz: bc9aaab652ecd1e496f0adafc634e4777d08b23e
5
5
  SHA512:
6
- metadata.gz: 55cede1c3b7fb534dcccfb9eb867853fd851799820b7af724f936c3ffdd219580c1da5ed2daab798f1d6a14960ce957b08aacaec4b62f5111937db13e75459d4
7
- data.tar.gz: 26aeacd7d8b87254e5a12e81492a555117e515abe018dcfc40b9c3e7f7265d8fcf1f21566199f018bbc77b50a4b86a17686b73dc467f606eeb3288c6012b9a9a
6
+ metadata.gz: ed8a2302c9c9f5c636a5539d087e3aa8c3d30a56b864cfa3fc7be6142c01b4a48a8d9c15d7b6cb1c19c0807aa26fe81b121f61838ae0f99c03d4476c3c380171
7
+ data.tar.gz: 7d209081b8ef4143d36d604a6acfbcc6ab949443ed3a2312e7cf29ffca55803a64282945433aeddca4d1407e77c4455c100f159bc8e138f46af9a1797872ee00
@@ -4,7 +4,7 @@ require_relative 'jsondef.rb'
4
4
 
5
5
  module ConfigReaderFactory
6
6
 
7
- def ConfigReaderFactory.fromJsonFile(path)
7
+ def ConfigReaderFactory.fromYamlFile(path)
8
8
  ConfigReader.new(YAML.load(IO.read(path)))
9
9
  end
10
10
 
@@ -1,117 +1,3 @@
1
- module JsonDef
2
-
3
- ANY_TYPE = :wildcard
4
-
5
- def JsonDef.verify(obj, rule)
6
- case rule.class.to_s
7
- when 'JsonRuleObject'
8
- JsonDef.verify_object(obj, rule)
9
- when 'JsonRuleArray'
10
- JsonDef.verify_array(obj, rule)
11
- when 'JsonRuleString'
12
- JsonDef.verify_string(obj, rule)
13
- when 'JsonRuleNumber'
14
- JsonDef.verify_number(obj, rule)
15
- else
16
- raise "Unknown rule at [verify] level: #{rule.class}"
17
- end
18
- end
19
-
20
- def JsonDef.verify_string(obj, rule)
21
- return false unless obj.kind_of?(String)
22
- true
23
- end
24
-
25
- def JsonDef.verify_number(obj, rule)
26
- return false unless obj.kind_of?(Numeric)
27
- true
28
- end
29
-
30
- def JsonDef.verify_object(obj, rule)
31
- return false unless obj.kind_of?(Hash)
32
-
33
- rule.key_rules.each do |key_rule|
34
- return false if key_rule.required && !obj.has_key?(key_rule.key)
35
- return true unless obj.has_key?(key_rule.key)
36
-
37
- case
38
- when key_rule.value == JsonDef::ANY_TYPE
39
- next
40
- when key_rule.value.kind_of?(JsonRuleBase)
41
- return false unless JsonDef.verify(obj[key_rule.key], key_rule.value)
42
- else
43
- return false
44
- end
45
- end
46
-
47
- # @todo In case of not allowing other keys, check if there are other not-allowed keys.
48
- if !rule.allow_other_keys
49
- obj.each { |k, v| return false unless rule.keys.member?(k) }
50
- end
51
-
52
- true
53
- end
54
-
55
- def JsonDef.verify_array(obj, rule)
56
- return false unless obj.kind_of?(Array)
57
- true
58
- end
59
-
60
- end
61
-
62
- class JsonRuleBase
63
- end
64
-
65
- class JsonRuleObject < JsonRuleBase
66
-
67
- attr_reader :key_rules, :keys, :allow_other_keys
68
-
69
- def initialize()
70
- @allow_other_keys = true
71
- @key_rules = []
72
- @keys = []
73
- end
74
-
75
- def disallow_other_keys
76
- @allow_other_keys = false
77
- self
78
- end
79
-
80
- def add_key_rule(rule)
81
- @key_rules.push(rule)
82
- @keys.push(rule.key)
83
- self
84
- end
85
-
86
- end
87
-
88
- class JsonRuleObjectKey
89
-
90
- attr_reader :required, :key, :value
91
-
92
- def initialize(key)
93
- @key = key
94
- @required = true
95
- @value = JsonDef::ANY_TYPE
96
- end
97
-
98
- def set_optional
99
- @required = false
100
- self
101
- end
102
-
103
- def set_rule(rule)
104
- @value = rule
105
- self
106
- end
107
-
108
- end
109
-
110
- class JsonRuleArray < JsonRuleBase
111
- end
112
-
113
- class JsonRuleNumber < JsonRuleBase
114
- end
115
-
116
- class JsonRuleString < JsonRuleBase
117
- end
1
+ require_relative 'verify.rb'
2
+ require_relative 'config_reader.rb'
3
+ require_relative 'rules.rb'
@@ -0,0 +1,57 @@
1
+
2
+ class JsonRuleBase
3
+ end
4
+
5
+ class JsonRuleObject < JsonRuleBase
6
+
7
+ attr_reader :key_rules, :keys, :allow_other_keys
8
+
9
+ def initialize()
10
+ @allow_other_keys = true
11
+ @key_rules = []
12
+ @keys = []
13
+ end
14
+
15
+ def disallow_other_keys
16
+ @allow_other_keys = false
17
+ self
18
+ end
19
+
20
+ def add_key_rule(rule)
21
+ @key_rules.push(rule)
22
+ @keys.push(rule.key)
23
+ self
24
+ end
25
+
26
+ end
27
+
28
+ class JsonRuleObjectKey
29
+
30
+ attr_reader :required, :key, :value
31
+
32
+ def initialize(key)
33
+ @key = key
34
+ @required = true
35
+ @value = JsonDef::ANY_TYPE
36
+ end
37
+
38
+ def set_optional
39
+ @required = false
40
+ self
41
+ end
42
+
43
+ def set_rule(rule)
44
+ @value = rule
45
+ self
46
+ end
47
+
48
+ end
49
+
50
+ class JsonRuleArray < JsonRuleBase
51
+ end
52
+
53
+ class JsonRuleNumber < JsonRuleBase
54
+ end
55
+
56
+ class JsonRuleString < JsonRuleBase
57
+ end
@@ -0,0 +1,62 @@
1
+ require_relative 'rules.rb'
2
+
3
+ module JsonDef
4
+
5
+ ANY_TYPE = :wildcard
6
+
7
+ def JsonDef.verify(obj, rule)
8
+ case rule.class.to_s
9
+ when 'JsonRuleObject'
10
+ JsonDef.verify_object(obj, rule)
11
+ when 'JsonRuleArray'
12
+ JsonDef.verify_array(obj, rule)
13
+ when 'JsonRuleString'
14
+ JsonDef.verify_string(obj, rule)
15
+ when 'JsonRuleNumber'
16
+ JsonDef.verify_number(obj, rule)
17
+ else
18
+ raise "Unknown rule at [verify] level: #{rule.class}"
19
+ end
20
+ end
21
+
22
+ def JsonDef.verify_string(obj, rule)
23
+ return false unless obj.kind_of?(String)
24
+ true
25
+ end
26
+
27
+ def JsonDef.verify_number(obj, rule)
28
+ return false unless obj.kind_of?(Numeric)
29
+ true
30
+ end
31
+
32
+ def JsonDef.verify_object(obj, rule)
33
+ return false unless obj.kind_of?(Hash)
34
+
35
+ rule.key_rules.each do |key_rule|
36
+ return false if key_rule.required && !obj.has_key?(key_rule.key)
37
+ return true unless obj.has_key?(key_rule.key)
38
+
39
+ case
40
+ when key_rule.value == JsonDef::ANY_TYPE
41
+ next
42
+ when key_rule.value.kind_of?(JsonRuleBase)
43
+ return false unless JsonDef.verify(obj[key_rule.key], key_rule.value)
44
+ else
45
+ return false
46
+ end
47
+ end
48
+
49
+ # @todo In case of not allowing other keys, check if there are other not-allowed keys.
50
+ if !rule.allow_other_keys
51
+ obj.each { |k, v| return false unless rule.keys.member?(k) }
52
+ end
53
+
54
+ true
55
+ end
56
+
57
+ def JsonDef.verify_array(obj, rule)
58
+ return false unless obj.kind_of?(Array)
59
+ true
60
+ end
61
+
62
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsondef
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Arato
@@ -18,7 +18,9 @@ extra_rdoc_files: []
18
18
  files:
19
19
  - lib/config_reader.rb
20
20
  - lib/jsondef.rb
21
- homepage: http://itarato.com
21
+ - lib/rules.rb
22
+ - lib/verify.rb
23
+ homepage: https://github.com/itarato/JsonDefRuby
22
24
  licenses:
23
25
  - MIT
24
26
  metadata: {}