id 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/id.gemspec +1 -1
- data/lib/id/all.rb +1 -0
- data/lib/id/hashifier.rb +23 -0
- data/lib/id/model.rb +1 -1
- metadata +2 -1
data/Gemfile.lock
CHANGED
data/id.gemspec
CHANGED
data/lib/id/all.rb
CHANGED
data/lib/id/hashifier.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
module Id
|
2
|
+
class Hashifier
|
3
|
+
|
4
|
+
def initialize(data)
|
5
|
+
@data = data
|
6
|
+
end
|
7
|
+
|
8
|
+
def hashify
|
9
|
+
Hash[data.map { |k, v| [ k.to_s, as_data(v) ] }]
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def as_data(v)
|
15
|
+
case v
|
16
|
+
when Id::Model then v.data
|
17
|
+
when Array then v.first.is_a?(Id::Model) ? v.map(&:data) : v
|
18
|
+
else v end
|
19
|
+
end
|
20
|
+
|
21
|
+
attr_reader :data
|
22
|
+
end
|
23
|
+
end
|
data/lib/id/model.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: id
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -76,6 +76,7 @@ files:
|
|
76
76
|
- id.gemspec
|
77
77
|
- lib/id.rb
|
78
78
|
- lib/id/all.rb
|
79
|
+
- lib/id/hashifier.rb
|
79
80
|
- lib/id/missing_attribute_error.rb
|
80
81
|
- lib/id/model.rb
|
81
82
|
- lib/id/model/all.rb
|