gorillib 0.1.5 → 0.1.6
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.
- data/CHANGELOG.textile +9 -0
- data/Gemfile +2 -0
- data/VERSION +1 -1
- data/gorillib.gemspec +7 -2
- data/lib/gorillib/array/random.rb +8 -0
- data/lib/gorillib/hashlike/tree_merge.rb +17 -44
- data/lib/gorillib/receiver.rb +3 -3
- data/lib/gorillib/serialization.rb +50 -0
- data/spec/receiver_spec.rb +1 -1
- metadata +46 -33
data/CHANGELOG.textile
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
h3. 2011-08-21 - Version 0.1.6: Serialization and DeepHash
|
2
|
+
|
3
|
+
* Serialization with #to_wire -- like #to_hash, but hands #to_wire down the line to any element that contains it (as opposed to `#to_hash`, which should just do that)
|
4
|
+
* Hashlike#tree_merge: combined into the one version; gave it a block in the middle to do any fancy footwork
|
5
|
+
* deep_hash -- allows dotted (a.b.c) access to a nested hash
|
6
|
+
* Array#random_element -- gets a random member of the array.
|
7
|
+
|
8
|
+
Will soon be deprecating Receiver, in favor of the far more powerful Icss::ReceiverModel in the icss library.
|
9
|
+
|
1
10
|
h3. 2011-06-29 - Version 0.1.3: Fancier receivers
|
2
11
|
|
3
12
|
* can now mix activemodel into a receiver, getting all its validation and other awesomeness
|
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.6
|
data/gorillib.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{gorillib}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = [%q{Infochimps}]
|
12
|
-
s.date = %q{2011-08-
|
12
|
+
s.date = %q{2011-08-22}
|
13
13
|
s.description = %q{Gorillib: infochimps lightweight subset of ruby convenience methods}
|
14
14
|
s.email = %q{coders@infochimps.org}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
|
|
30
30
|
"lib/gorillib/array/compact_blank.rb",
|
31
31
|
"lib/gorillib/array/deep_compact.rb",
|
32
32
|
"lib/gorillib/array/extract_options.rb",
|
33
|
+
"lib/gorillib/array/random.rb",
|
33
34
|
"lib/gorillib/base.rb",
|
34
35
|
"lib/gorillib/datetime/flat.rb",
|
35
36
|
"lib/gorillib/datetime/parse.rb",
|
@@ -75,6 +76,7 @@ Gem::Specification.new do |s|
|
|
75
76
|
"lib/gorillib/receiver/tree_diff.rb",
|
76
77
|
"lib/gorillib/receiver/validations.rb",
|
77
78
|
"lib/gorillib/receiver_model.rb",
|
79
|
+
"lib/gorillib/serialization.rb",
|
78
80
|
"lib/gorillib/some.rb",
|
79
81
|
"lib/gorillib/string/constantize.rb",
|
80
82
|
"lib/gorillib/string/human.rb",
|
@@ -193,6 +195,7 @@ Gem::Specification.new do |s|
|
|
193
195
|
s.specification_version = 3
|
194
196
|
|
195
197
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
198
|
+
s.add_runtime_dependency(%q<json>, [">= 0"])
|
196
199
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.12"])
|
197
200
|
s.add_development_dependency(%q<yard>, ["~> 0.6.7"])
|
198
201
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
@@ -209,6 +212,7 @@ Gem::Specification.new do |s|
|
|
209
212
|
s.add_development_dependency(%q<spork>, ["~> 0.9.0.rc5"])
|
210
213
|
s.add_development_dependency(%q<watchr>, [">= 0"])
|
211
214
|
else
|
215
|
+
s.add_dependency(%q<json>, [">= 0"])
|
212
216
|
s.add_dependency(%q<bundler>, ["~> 1.0.12"])
|
213
217
|
s.add_dependency(%q<yard>, ["~> 0.6.7"])
|
214
218
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
@@ -226,6 +230,7 @@ Gem::Specification.new do |s|
|
|
226
230
|
s.add_dependency(%q<watchr>, [">= 0"])
|
227
231
|
end
|
228
232
|
else
|
233
|
+
s.add_dependency(%q<json>, [">= 0"])
|
229
234
|
s.add_dependency(%q<bundler>, ["~> 1.0.12"])
|
230
235
|
s.add_dependency(%q<yard>, ["~> 0.6.7"])
|
231
236
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
@@ -2,38 +2,40 @@ module Gorillib
|
|
2
2
|
module Hashlike
|
3
3
|
module TreeMerge
|
4
4
|
|
5
|
-
# Recursively merges
|
6
|
-
#
|
7
|
-
# Modifies the full receiver chain in-place.
|
5
|
+
# Recursively merges hashlike objects
|
8
6
|
#
|
9
7
|
# For each key in keys,
|
10
|
-
# * if
|
8
|
+
# * if block_given? and yield(key,self_val,other_val) returns non-nil, set that
|
9
|
+
# * if self is missing value for key, receive the attribute.
|
11
10
|
# * if self's attribute is an Array, append to it.
|
12
|
-
# * if self's value responds to tree_merge!,
|
11
|
+
# * if self's value responds to tree_merge!, deep merge it.
|
13
12
|
# * if self's value responds_to merge!, merge! it.
|
14
13
|
# * otherwise, receive the value from other_hash
|
15
14
|
#
|
16
15
|
def tree_merge!(other_hash)
|
17
|
-
|
16
|
+
return self if other_hash.blank?
|
17
|
+
[self.keys, other_hash.keys].flatten.uniq.each do |key|
|
18
18
|
# get other's val if any
|
19
19
|
if other_hash.has_key?(key.to_sym) then other_val = other_hash[key.to_sym]
|
20
20
|
elsif other_hash.has_key?(key.to_s) then other_val = other_hash[key.to_s]
|
21
21
|
else next ; end
|
22
|
-
#
|
22
|
+
# get self val if any
|
23
23
|
self_val = self[key]
|
24
|
-
#
|
24
|
+
# get block resolved result if any
|
25
|
+
if block_given? && yield(key, self_val, other_val)
|
26
|
+
next
|
27
|
+
end
|
28
|
+
# p ['hash tree_merge', key, self_val.respond_to?(:tree_merge!), self_val, '***************', other_val]
|
29
|
+
#
|
25
30
|
case
|
26
31
|
when other_val.nil? then next
|
27
|
-
when (not has_key?(key)) then
|
28
|
-
when receiver_attrs[key][:merge_as] == :hash_of_arrays
|
29
|
-
self_val.merge!(other_val) do |k, v1, v2| case when v1.blank? then v2 when v2.blank? then v1 else v1 + v2 end end
|
32
|
+
when (not has_key?(key)) then self[key] = other_val
|
30
33
|
when self_val.is_a?(Array) then self[key] += other_val
|
31
34
|
when self_val.respond_to?(:tree_merge!) then self[key] = self_val.tree_merge!(other_val)
|
32
35
|
when self_val.respond_to?(:merge!) then self[key] = self_val.merge!(other_val)
|
33
|
-
else
|
36
|
+
else self[key] = other_val
|
34
37
|
end
|
35
38
|
end
|
36
|
-
run_after_receivers(other_hash)
|
37
39
|
self
|
38
40
|
end
|
39
41
|
|
@@ -41,36 +43,7 @@ module Gorillib
|
|
41
43
|
end
|
42
44
|
end
|
43
45
|
|
46
|
+
|
44
47
|
class Hash
|
45
|
-
|
46
|
-
#
|
47
|
-
# Modifies the full receiver chain in-place.
|
48
|
-
#
|
49
|
-
# For each key in keys,
|
50
|
-
# * if self's value is nil, receive the attribute.
|
51
|
-
# * if self's attribute is an Array, append to it.
|
52
|
-
# * if self's value responds to tree_merge!, deep merge it.
|
53
|
-
# * if self's value responds_to merge!, merge! it.
|
54
|
-
# * otherwise, receive the value from other_hash
|
55
|
-
#
|
56
|
-
def tree_merge!(other_hash)
|
57
|
-
[self.keys, other_hash.keys].flatten.uniq.each do |key|
|
58
|
-
# get other's val if any
|
59
|
-
if other_hash.has_key?(key.to_sym) then other_val = other_hash[key.to_sym]
|
60
|
-
elsif other_hash.has_key?(key.to_s) then other_val = other_hash[key.to_s]
|
61
|
-
else next ; end
|
62
|
-
#
|
63
|
-
self_val = self[key]
|
64
|
-
# p ['hash tree_merge', key, self_val.respond_to?(:tree_merge!), self_val, other_val]
|
65
|
-
case
|
66
|
-
when other_val.nil? then next
|
67
|
-
when (not has_key?(key)) then self[key] = other_val
|
68
|
-
when self_val.is_a?(Array) then self[key] += other_val
|
69
|
-
when self_val.respond_to?(:tree_merge!) then self[key] = self_val.tree_merge!(other_val)
|
70
|
-
when self_val.respond_to?(:merge!) then self[key] = self_val.merge!(other_val)
|
71
|
-
else self[key] = other_val
|
72
|
-
end
|
73
|
-
end
|
74
|
-
self
|
75
|
-
end
|
48
|
+
include Gorillib::Hashlike::TreeMerge
|
76
49
|
end
|
data/lib/gorillib/receiver.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'gorillib/object/blank'
|
2
2
|
require 'gorillib/object/try'
|
3
|
+
require 'gorillib/object/try_dup'
|
3
4
|
require 'gorillib/array/extract_options'
|
4
5
|
require 'gorillib/metaprogramming/class_attribute'
|
5
6
|
|
@@ -169,7 +170,7 @@ protected
|
|
169
170
|
def impose_defaults!(hsh)
|
170
171
|
_receiver_defaults.each do |attr, val|
|
171
172
|
next if attr_set?(attr)
|
172
|
-
self.instance_variable_set "@#{attr}", val
|
173
|
+
self.instance_variable_set "@#{attr}", val.try_dup
|
173
174
|
end
|
174
175
|
end
|
175
176
|
|
@@ -181,7 +182,7 @@ protected
|
|
181
182
|
#
|
182
183
|
# f = Foo.receive({:attribute => 'bad'})
|
183
184
|
# => #<Foo:0x10156c820 @attribute="good">
|
184
|
-
|
185
|
+
#
|
185
186
|
def replace_options!(hsh)
|
186
187
|
self.receiver_attrs.each do |attr, info|
|
187
188
|
val = self.instance_variable_get("@#{attr}")
|
@@ -191,7 +192,6 @@ protected
|
|
191
192
|
end
|
192
193
|
end
|
193
194
|
|
194
|
-
|
195
195
|
def run_after_receivers(hsh)
|
196
196
|
_after_receivers.each do |after_receiver|
|
197
197
|
self.instance_exec(hsh, &after_receiver)
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Gorillib
|
2
|
+
|
3
|
+
module Hashlike
|
4
|
+
module Serialization
|
5
|
+
#
|
6
|
+
# Returns a hash with each key set to its associated value
|
7
|
+
#
|
8
|
+
# @example
|
9
|
+
# my_hshlike = MyHashlike.new
|
10
|
+
# my_hshlike[:a] = 100; my_hshlike[:b] = 200
|
11
|
+
# my_hshlike.to_hash # => { :a => 100, :b => 200 }
|
12
|
+
#
|
13
|
+
# @return [Hash] a new Hash instance, with each key set to its associated value.
|
14
|
+
#
|
15
|
+
def to_wire(options={})
|
16
|
+
{}.tap do |hsh|
|
17
|
+
each do |attr,val|
|
18
|
+
hsh[attr] =
|
19
|
+
case
|
20
|
+
when val.respond_to?(:to_wire) then val.to_wire(options)
|
21
|
+
when val.respond_to?(:to_hash) then val.to_hash
|
22
|
+
else val ; end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
module Gorillib::Hashlike
|
31
|
+
include ::Gorillib::Hashlike::Serialization
|
32
|
+
end
|
33
|
+
|
34
|
+
class ::Array
|
35
|
+
def to_wire(options={})
|
36
|
+
map{|item| item.respond_to?(:to_wire) ? item.to_wire : item }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
class ::Hash
|
41
|
+
include ::Gorillib::Hashlike::Serialization
|
42
|
+
end
|
43
|
+
|
44
|
+
class ::Time
|
45
|
+
def to_wire(options={})
|
46
|
+
self.iso8601
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
|
data/spec/receiver_spec.rb
CHANGED
@@ -467,7 +467,7 @@ describe Receiver do
|
|
467
467
|
|
468
468
|
# ---------------------------------------------------------------------------
|
469
469
|
|
470
|
-
|
470
|
+
it 'core class .receive method' do
|
471
471
|
Symbol.receive('hi').should == :hi
|
472
472
|
Integer.receive(3.4).should == 3
|
473
473
|
Float.receive("4.5").should == 4.5
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: gorillib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Infochimps
|
@@ -10,11 +10,22 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-08-
|
13
|
+
date: 2011-08-22 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: json
|
17
17
|
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: bundler
|
28
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
18
29
|
none: false
|
19
30
|
requirements:
|
20
31
|
- - ~>
|
@@ -22,10 +33,10 @@ dependencies:
|
|
22
33
|
version: 1.0.12
|
23
34
|
type: :development
|
24
35
|
prerelease: false
|
25
|
-
version_requirements: *
|
36
|
+
version_requirements: *id002
|
26
37
|
- !ruby/object:Gem::Dependency
|
27
38
|
name: yard
|
28
|
-
requirement: &
|
39
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
29
40
|
none: false
|
30
41
|
requirements:
|
31
42
|
- - ~>
|
@@ -33,10 +44,10 @@ dependencies:
|
|
33
44
|
version: 0.6.7
|
34
45
|
type: :development
|
35
46
|
prerelease: false
|
36
|
-
version_requirements: *
|
47
|
+
version_requirements: *id003
|
37
48
|
- !ruby/object:Gem::Dependency
|
38
49
|
name: jeweler
|
39
|
-
requirement: &
|
50
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
40
51
|
none: false
|
41
52
|
requirements:
|
42
53
|
- - ~>
|
@@ -44,10 +55,10 @@ dependencies:
|
|
44
55
|
version: 1.5.2
|
45
56
|
type: :development
|
46
57
|
prerelease: false
|
47
|
-
version_requirements: *
|
58
|
+
version_requirements: *id004
|
48
59
|
- !ruby/object:Gem::Dependency
|
49
60
|
name: rspec
|
50
|
-
requirement: &
|
61
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
51
62
|
none: false
|
52
63
|
requirements:
|
53
64
|
- - ~>
|
@@ -55,10 +66,10 @@ dependencies:
|
|
55
66
|
version: 2.5.0
|
56
67
|
type: :development
|
57
68
|
prerelease: false
|
58
|
-
version_requirements: *
|
69
|
+
version_requirements: *id005
|
59
70
|
- !ruby/object:Gem::Dependency
|
60
71
|
name: spork
|
61
|
-
requirement: &
|
72
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
62
73
|
none: false
|
63
74
|
requirements:
|
64
75
|
- - ~>
|
@@ -66,10 +77,10 @@ dependencies:
|
|
66
77
|
version: 0.9.0.rc5
|
67
78
|
type: :development
|
68
79
|
prerelease: false
|
69
|
-
version_requirements: *
|
80
|
+
version_requirements: *id006
|
70
81
|
- !ruby/object:Gem::Dependency
|
71
82
|
name: RedCloth
|
72
|
-
requirement: &
|
83
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
73
84
|
none: false
|
74
85
|
requirements:
|
75
86
|
- - ">="
|
@@ -77,10 +88,10 @@ dependencies:
|
|
77
88
|
version: "0"
|
78
89
|
type: :development
|
79
90
|
prerelease: false
|
80
|
-
version_requirements: *
|
91
|
+
version_requirements: *id007
|
81
92
|
- !ruby/object:Gem::Dependency
|
82
93
|
name: rcov
|
83
|
-
requirement: &
|
94
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
84
95
|
none: false
|
85
96
|
requirements:
|
86
97
|
- - ">="
|
@@ -88,10 +99,10 @@ dependencies:
|
|
88
99
|
version: 0.9.9
|
89
100
|
type: :development
|
90
101
|
prerelease: false
|
91
|
-
version_requirements: *
|
102
|
+
version_requirements: *id008
|
92
103
|
- !ruby/object:Gem::Dependency
|
93
104
|
name: watchr
|
94
|
-
requirement: &
|
105
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
95
106
|
none: false
|
96
107
|
requirements:
|
97
108
|
- - ">="
|
@@ -99,10 +110,10 @@ dependencies:
|
|
99
110
|
version: "0"
|
100
111
|
type: :development
|
101
112
|
prerelease: false
|
102
|
-
version_requirements: *
|
113
|
+
version_requirements: *id009
|
103
114
|
- !ruby/object:Gem::Dependency
|
104
115
|
name: bundler
|
105
|
-
requirement: &
|
116
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
106
117
|
none: false
|
107
118
|
requirements:
|
108
119
|
- - ~>
|
@@ -110,10 +121,10 @@ dependencies:
|
|
110
121
|
version: 1.0.12
|
111
122
|
type: :development
|
112
123
|
prerelease: false
|
113
|
-
version_requirements: *
|
124
|
+
version_requirements: *id010
|
114
125
|
- !ruby/object:Gem::Dependency
|
115
126
|
name: yard
|
116
|
-
requirement: &
|
127
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
117
128
|
none: false
|
118
129
|
requirements:
|
119
130
|
- - ~>
|
@@ -121,10 +132,10 @@ dependencies:
|
|
121
132
|
version: 0.6.7
|
122
133
|
type: :development
|
123
134
|
prerelease: false
|
124
|
-
version_requirements: *
|
135
|
+
version_requirements: *id011
|
125
136
|
- !ruby/object:Gem::Dependency
|
126
137
|
name: jeweler
|
127
|
-
requirement: &
|
138
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
128
139
|
none: false
|
129
140
|
requirements:
|
130
141
|
- - ~>
|
@@ -132,10 +143,10 @@ dependencies:
|
|
132
143
|
version: 1.5.2
|
133
144
|
type: :development
|
134
145
|
prerelease: false
|
135
|
-
version_requirements: *
|
146
|
+
version_requirements: *id012
|
136
147
|
- !ruby/object:Gem::Dependency
|
137
148
|
name: rspec
|
138
|
-
requirement: &
|
149
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
139
150
|
none: false
|
140
151
|
requirements:
|
141
152
|
- - ~>
|
@@ -143,10 +154,10 @@ dependencies:
|
|
143
154
|
version: 2.5.0
|
144
155
|
type: :development
|
145
156
|
prerelease: false
|
146
|
-
version_requirements: *
|
157
|
+
version_requirements: *id013
|
147
158
|
- !ruby/object:Gem::Dependency
|
148
159
|
name: rcov
|
149
|
-
requirement: &
|
160
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
150
161
|
none: false
|
151
162
|
requirements:
|
152
163
|
- - ">="
|
@@ -154,10 +165,10 @@ dependencies:
|
|
154
165
|
version: 0.9.9
|
155
166
|
type: :development
|
156
167
|
prerelease: false
|
157
|
-
version_requirements: *
|
168
|
+
version_requirements: *id014
|
158
169
|
- !ruby/object:Gem::Dependency
|
159
170
|
name: spork
|
160
|
-
requirement: &
|
171
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
161
172
|
none: false
|
162
173
|
requirements:
|
163
174
|
- - ~>
|
@@ -165,10 +176,10 @@ dependencies:
|
|
165
176
|
version: 0.9.0.rc5
|
166
177
|
type: :development
|
167
178
|
prerelease: false
|
168
|
-
version_requirements: *
|
179
|
+
version_requirements: *id015
|
169
180
|
- !ruby/object:Gem::Dependency
|
170
181
|
name: watchr
|
171
|
-
requirement: &
|
182
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
172
183
|
none: false
|
173
184
|
requirements:
|
174
185
|
- - ">="
|
@@ -176,7 +187,7 @@ dependencies:
|
|
176
187
|
version: "0"
|
177
188
|
type: :development
|
178
189
|
prerelease: false
|
179
|
-
version_requirements: *
|
190
|
+
version_requirements: *id016
|
180
191
|
description: "Gorillib: infochimps lightweight subset of ruby convenience methods"
|
181
192
|
email: coders@infochimps.org
|
182
193
|
executables: []
|
@@ -200,6 +211,7 @@ files:
|
|
200
211
|
- lib/gorillib/array/compact_blank.rb
|
201
212
|
- lib/gorillib/array/deep_compact.rb
|
202
213
|
- lib/gorillib/array/extract_options.rb
|
214
|
+
- lib/gorillib/array/random.rb
|
203
215
|
- lib/gorillib/base.rb
|
204
216
|
- lib/gorillib/datetime/flat.rb
|
205
217
|
- lib/gorillib/datetime/parse.rb
|
@@ -245,6 +257,7 @@ files:
|
|
245
257
|
- lib/gorillib/receiver/tree_diff.rb
|
246
258
|
- lib/gorillib/receiver/validations.rb
|
247
259
|
- lib/gorillib/receiver_model.rb
|
260
|
+
- lib/gorillib/serialization.rb
|
248
261
|
- lib/gorillib/some.rb
|
249
262
|
- lib/gorillib/string/constantize.rb
|
250
263
|
- lib/gorillib/string/human.rb
|
@@ -315,7 +328,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
315
328
|
requirements:
|
316
329
|
- - ">="
|
317
330
|
- !ruby/object:Gem::Version
|
318
|
-
hash:
|
331
|
+
hash: 2753005765957482332
|
319
332
|
segments:
|
320
333
|
- 0
|
321
334
|
version: "0"
|