json-serializer 0.0.7 → 0.0.8

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: 26c95a974c36b11abb9169a072c8f2c5a0a41d7b
4
- data.tar.gz: 97ef2774077f9908fd36df3d52a8a890504badf7
3
+ metadata.gz: 95499fbf4041e6cb01173dcc2b0c242f842010e9
4
+ data.tar.gz: a54709155b9ea1515c8a2ccf1d1f2ac61c0dba62
5
5
  SHA512:
6
- metadata.gz: d0eb9817d4363e86884020dc2981033554774eef02445fa5f6b54ebd096d03c63e9637f0963b432cf11a43d59a10e5e33786afac673a445538133006cf29f007
7
- data.tar.gz: 633d1948f1354bf206ae48b590edd7e47bdfbe740fd0f2148be58729706f9a08c0bc29adacc6f43c856cce458c98755fdcedca4fd1f459924e2f19458a09a68f
6
+ metadata.gz: 037c0b869e8c2427589b65906130f139f1e54340d5bf11cec27e0ba87acad2d062eaae670c4a6ed4be0275384057e34c856c96101d3c522aeaa02ed2b85ea48b
7
+ data.tar.gz: 1d6c92842f3f313b0281588afd0b8c13d59cfc39010e6ee3989eb737ee8d8bea6ea0e5fb2e255a3abbf95b7c2c0b8600718f213653d8b3aa45a7c41fc66a2e6f
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "json-serializer"
3
- s.version = "0.0.7"
3
+ s.version = "0.0.8"
4
4
  s.summary = "Customize JSON ouput through serializer objects."
5
5
  s.description = s.summary
6
6
  s.authors = ["Francesco Rodríguez"]
@@ -36,8 +36,10 @@ class JsonSerializer
36
36
  protected
37
37
 
38
38
  def serializable_object
39
- if object.kind_of?(Enumerable)
40
- object.to_a.map { |item| self.class.new(item).to_hash }
39
+ return nil unless @object
40
+
41
+ if @object.respond_to?(:to_a)
42
+ @object.to_a.map { |item| self.class.new(item).to_hash }
41
43
  else
42
44
  to_hash
43
45
  end
@@ -45,7 +47,7 @@ class JsonSerializer
45
47
 
46
48
  def to_hash
47
49
  self.class.attributes.each_with_object({}) do |(name, serializer), hash|
48
- data = self.class.method_defined?(name) ? self.send(name) : object.send(name)
50
+ data = self.class.method_defined?(name) ? self.send(name) : @object.send(name)
49
51
  data = Utils.const(self.class, serializer).new(data).serializable_object if serializer
50
52
  hash[name] = data
51
53
  end
data/test/association.rb CHANGED
@@ -30,6 +30,19 @@ test "serializes object with association" do
30
30
  assert_equal result, UserWithOrganizationSerializer.new(user).to_json
31
31
  end
32
32
 
33
+ test "serializes object with a nil association" do
34
+ user = User.new(id: 1, name: "sonny")
35
+ user.organization = nil
36
+
37
+ result = {
38
+ id: 1,
39
+ name: "sonny",
40
+ organization: nil
41
+ }.to_json
42
+
43
+ assert_equal result, UserWithOrganizationSerializer.new(user).to_json
44
+ end
45
+
33
46
  test "serializes array with association" do
34
47
  users = [
35
48
  User.new(id: 1, name: "sonny", organization: Organization.new(id: 1, name: "enterprise")),
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-serializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Rodríguez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-11 00:00:00.000000000 Z
11
+ date: 2014-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cutest
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  description: Customize JSON ouput through serializer objects.
@@ -31,8 +31,8 @@ executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
- - ".gems"
35
- - ".gitignore"
34
+ - .gems
35
+ - .gitignore
36
36
  - LICENSE
37
37
  - README.md
38
38
  - json-serializer.gemspec
@@ -52,17 +52,17 @@ require_paths:
52
52
  - lib
53
53
  required_ruby_version: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - ">="
55
+ - - '>='
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
58
  required_rubygems_version: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">="
60
+ - - '>='
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  requirements: []
64
64
  rubyforge_project:
65
- rubygems_version: 2.2.0
65
+ rubygems_version: 2.0.14
66
66
  signing_key:
67
67
  specification_version: 4
68
68
  summary: Customize JSON ouput through serializer objects.