schema_serializer 0.2.3 → 0.2.4

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: 8a88a43d37245072aabcdb80815179a1b33a0214f9663f55333a1d493b09b940
4
- data.tar.gz: 0f599ae0884b584751310a3350876ba066f510966c4028499d98f3b4d59bd986
3
+ metadata.gz: 7914525cee8225376bf03508351a44a4390e902b632f79bebfe02090360edabb
4
+ data.tar.gz: b1f3ecc4f8def7a57328f07ae27ecb1aef9bf4978d303e32548e9e3e87fa001f
5
5
  SHA512:
6
- metadata.gz: b67835d5764c9b898979fd6143baea0d8f2f53b8ee80ea47de47fe3424c710e80d3b61a25947a87908badff2d4d215c8101488be8b65220b39eeb79d41a65892
7
- data.tar.gz: 9d6a75ff1f6ad70b7ff54a82bf0269bd8853f281cfbca86d5c6788c69b5cb02eda5484cdc847a4bf6852b67d3afd92025f32ef3b52791201bc66e558777b3472
6
+ metadata.gz: 55fae4ec059c7678f7bafbe0e6587b6364c9399ffb116a95338dc90a7438a4cfc7b83d5437d7b95a8b125b17d1abe88c85f674cd173b6e79dbe473ea00415842
7
+ data.tar.gz: c7cc06fb4ac73182796ac6c953ef8f5516db39cb67733d3332bc35c6663882954b1659cd4790811f88f80271adf6977d1b1b484a5ee79bf86812eb1f7dfbd80f
@@ -1 +1,4 @@
1
+ # Throw exception with unexpected null value.
2
+ SchemaSerializer.config.raise_on_null = true
3
+
1
4
  SchemaSerializer.load_definition(Rails.root.join("doc/schema.yml"))
@@ -4,7 +4,7 @@ class SchemaSerializer
4
4
  :raise_on_null,
5
5
  ].freeze
6
6
 
7
- attr_accessor *VALID_OPTIONS
7
+ attr_accessor(*VALID_OPTIONS)
8
8
 
9
9
  def initialize(options = {})
10
10
  reset
@@ -9,11 +9,11 @@ class SchemaSerializer
9
9
 
10
10
  case type
11
11
  when "array"
12
- @items = self.class.new(hash.fetch("items"))
12
+ @items = self.class.new(@key, hash.fetch("items"))
13
13
  when "object", nil
14
14
  @required = hash["required"] || []
15
15
  @properties = hash.fetch("properties").each_with_object({}) { |(column, property), obj|
16
- obj[column] = self.class.new(property)
16
+ obj[column] = self.class.new(column, property)
17
17
  }
18
18
  end
19
19
  end
@@ -34,8 +34,19 @@ class SchemaSerializer
34
34
  when "boolean"
35
35
  !!object
36
36
  when "array"
37
- object.map { |item| items.serialize(item) }
37
+ serialize_array(object)
38
38
  else
39
+ serialize_object(object)
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def serialize_array(object)
46
+ object.map { |item| items.serialize(item) }
47
+ end
48
+
49
+ def serialize_object(object)
39
50
  not_enough_columns = required - properties.keys
40
51
  raise RequiredNotDefined, not_enough_columns.join(", ") unless not_enough_columns.empty?
41
52
 
@@ -43,9 +54,6 @@ class SchemaSerializer
43
54
  obj[column] = schema.serialize(get_value(object, column))
44
55
  }
45
56
  end
46
- end
47
-
48
- private
49
57
 
50
58
  def get_value(object, column)
51
59
  return object[column] || object[column.to_sym] if object.is_a?(Hash)
@@ -1,3 +1,3 @@
1
1
  class SchemaSerializer
2
- VERSION = "0.2.3".freeze
2
+ VERSION = "0.2.4".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_serializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - i2bskn