restpack_serializer 0.4.24 → 0.4.25
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d870c817c227fbac2102919ec10f69e727b61d4
|
4
|
+
data.tar.gz: 14b4250d2a77c3d60b9e5c8872150b54503ff1f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69e3fc5bc5c44d9c29ed24df5a06a326264e350d8147b9956ea1181546fdef97996145f0c3a7aabb081b5033129ca3e6ca3536ceca7d31c44e01b36c06ab49bb
|
7
|
+
data.tar.gz: fe92f589efcf2273642b1c88d13415d9e75034d79e0eb50c993841a0c9aa6c8689b06a8b474cc1080df6dc69b5931b9a556460f53b2ae1add05e1c947d90d7f6
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Symbolizer
|
2
|
+
def self.recursive_symbolize(hash)
|
3
|
+
{}.tap do |h|
|
4
|
+
hash.each { |key, value| h[key.to_sym] = self.map_value(value) }
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
def self.map_value(thing)
|
11
|
+
case thing
|
12
|
+
when Hash
|
13
|
+
self.recursive_symbolize(thing)
|
14
|
+
when Array
|
15
|
+
thing.map { |v| map_value(v) }
|
16
|
+
else
|
17
|
+
thing
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -6,6 +6,7 @@ require_relative "serializable/paging"
|
|
6
6
|
require_relative "serializable/resource"
|
7
7
|
require_relative "serializable/single"
|
8
8
|
require_relative "serializable/side_loading"
|
9
|
+
require_relative "serializable/symbolizer"
|
9
10
|
|
10
11
|
module RestPack
|
11
12
|
module Serializer
|
@@ -46,7 +47,7 @@ module RestPack
|
|
46
47
|
add_custom_attributes(data)
|
47
48
|
add_links(model, data)
|
48
49
|
|
49
|
-
data
|
50
|
+
Symbolizer.recursive_symbolize(data)
|
50
51
|
end
|
51
52
|
|
52
53
|
def custom_attributes
|
data/restpack_serializer.gemspec
CHANGED
@@ -24,7 +24,6 @@ Gem::Specification.new do |gem|
|
|
24
24
|
|
25
25
|
gem.add_development_dependency 'restpack_gem', '~> 0.0.9'
|
26
26
|
gem.add_development_dependency 'rake', '~> 10.0.3'
|
27
|
-
gem.add_development_dependency 'rspec', '~> 2.12'
|
28
27
|
gem.add_development_dependency 'guard-rspec', '~> 2.5.4'
|
29
28
|
gem.add_development_dependency 'growl', '~> 1.0.3'
|
30
29
|
gem.add_development_dependency 'factory_girl', '~> 4.2.0'
|
@@ -36,7 +36,12 @@ describe RestPack::Serializer do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def admin_info
|
39
|
-
{
|
39
|
+
{
|
40
|
+
"key" => "super_secret_sauce",
|
41
|
+
"array" => [
|
42
|
+
{ "name" => "Alex" }
|
43
|
+
]
|
44
|
+
}
|
40
45
|
end
|
41
46
|
|
42
47
|
def include_admin_info?
|
@@ -120,7 +125,12 @@ describe RestPack::Serializer do
|
|
120
125
|
|
121
126
|
it "includes custom attributes if specified" do
|
122
127
|
hash = serializer.as_json(person, { is_admin?: true })
|
123
|
-
hash[:admin_info].should == {
|
128
|
+
hash[:admin_info].should == {
|
129
|
+
key: "super_secret_sauce",
|
130
|
+
array: [
|
131
|
+
name: 'Alex'
|
132
|
+
]
|
133
|
+
}
|
124
134
|
end
|
125
135
|
end
|
126
136
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restpack_serializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gavin Joyce
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -106,20 +106,6 @@ dependencies:
|
|
106
106
|
- - "~>"
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: 10.0.3
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: rspec
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
112
|
-
requirements:
|
113
|
-
- - "~>"
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version: '2.12'
|
116
|
-
type: :development
|
117
|
-
prerelease: false
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
requirements:
|
120
|
-
- - "~>"
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: '2.12'
|
123
109
|
- !ruby/object:Gem::Dependency
|
124
110
|
name: guard-rspec
|
125
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -245,6 +231,7 @@ files:
|
|
245
231
|
- lib/restpack_serializer/serializable/resource.rb
|
246
232
|
- lib/restpack_serializer/serializable/side_loading.rb
|
247
233
|
- lib/restpack_serializer/serializable/single.rb
|
234
|
+
- lib/restpack_serializer/serializable/symbolizer.rb
|
248
235
|
- lib/restpack_serializer/version.rb
|
249
236
|
- restpack_serializer.gemspec
|
250
237
|
- spec/factory/factory_spec.rb
|
@@ -283,7 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
283
270
|
version: '0'
|
284
271
|
requirements: []
|
285
272
|
rubyforge_project:
|
286
|
-
rubygems_version: 2.
|
273
|
+
rubygems_version: 2.2.2
|
287
274
|
signing_key:
|
288
275
|
specification_version: 4
|
289
276
|
summary: Model serialization, paging, side-loading and filtering
|