normalizr.rb 0.1.0 → 0.2.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: 8dd079a2b917a511e5902315498dd4ebb208f603
4
- data.tar.gz: 0e1a3fdcd10163bac862cf20934ca31a8c9bcb4f
3
+ metadata.gz: 542c0a1602e07b5162f70108e0c0bba9b1d448a3
4
+ data.tar.gz: 5869d699c0f9dd7804ca9c8136b996bf44c7eb94
5
5
  SHA512:
6
- metadata.gz: b1ba4409e6be7e7af7a0d174520e1b1082b1a87026bcf4cddce7a9c5c21246477f9552cfdc63351efc4937ab9afe6601c3c2467cbcc5b133b278a3a3dca3b05a
7
- data.tar.gz: 41d89fc8d3314a9fcf5d5696e3e8e700f66d067151aab61a1dbe6932aa0fa86f9798fdbdd660b7a7e832ce3f3a6cfbf1239ff92e34881699a98a1f7c02a3c4df
6
+ metadata.gz: 018e1b063fe80916568763bd55efbdd34b1dc8e7f51160b314b2de61b0f3ef2fb8ad2648e63afbbecb076172a0bdbb5158cde3bb6d60b210ef43a3d0204e23ee
7
+ data.tar.gz: d88138fea56729b245d4ffcec0030edb9752eede5efd87c507154fd2616bf15b94893420e0a9e152469b5c0579bfdc38a1a71500c76615616df448a798e3d777
@@ -13,16 +13,34 @@ module Normalizr
13
13
  schema.visit(obj, bag)
14
14
  end
15
15
 
16
- bag.to_hash
16
+ hash = bag.to_hash
17
+
18
+ if schema.is_a? Hash
19
+ schema.keys.each do |key|
20
+ unless hash.has_key? key
21
+ if obj[key].nil? || obj[key].is_a?(Array)
22
+ hash[key] = {}
23
+ else
24
+ hash[key] = obj[key]
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ hash
17
31
  end
18
32
 
19
33
 
20
34
  def self.denormalize! obj, schema, id=nil
21
35
  schema.keys.map do |key|
22
36
  if id.nil?
23
- value = schema[key].unvisit(obj, obj[key].keys)
37
+ if obj[key].is_a? Hash
38
+ value = schema[key].unvisit(obj, obj[key].keys)
39
+ else
40
+ value = (obj[key] || [])
41
+ end
24
42
  else
25
- value = schema[key].unvisit(obj, id)
43
+ value = schema[key].unvisit(obj, Array(id))
26
44
  end
27
45
  Hash[key, value]
28
46
  end.reduce({}, &:merge)
@@ -9,12 +9,14 @@ module Normalizr
9
9
 
10
10
 
11
11
  def visit obj, bag
12
- relationships = @definition.keys.map do |key|
13
- id = @definition[key].visit(obj[key], bag)
14
- Hash[key, id]
15
- end.reduce({}, &:merge)
16
-
17
- bag.add(@name, obj.merge(relationships))
12
+ if obj.is_a? Hash
13
+ relationships = @definition.keys.map do |key|
14
+ id = @definition[key].visit(obj[key], bag)
15
+ Hash[key, id]
16
+ end.reduce({}, &:merge)
17
+
18
+ bag.add(@name, obj.merge(relationships))
19
+ end
18
20
  end
19
21
 
20
22
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: normalizr.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Okhravi