schema_serializer 0.2.3 → 0.2.4

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: 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