to_api 1.1.4 → 1.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.
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.3-p448
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source :rubygems
1
+ source "https://rubygems.org"
2
2
 
3
- gemspec
3
+ gemspec
data/README.md CHANGED
@@ -10,39 +10,45 @@ Models shouldn't know about formats. Controllers shouldn't know what attributes
10
10
 
11
11
  ### How do I use it?
12
12
 
13
- Implement to_api on your data objects to return a hash with all needed attributes.
13
+ Implement `to_api` on your data objects to return a hash with all needed attributes.
14
14
 
15
- class Person
16
- attr_accessor :first_name, :last_name, :secret
15
+ ```ruby
16
+ class Person
17
+ attr_accessor :first_name, :last_name, :secret
17
18
 
18
- def to_api
19
- {:first_name => @first_name, :last_name => @last_name}.to_api
20
- end
21
- end
19
+ def to_api
20
+ {:first_name => @first_name, :last_name => @last_name}.to_api
21
+ end
22
+ end
22
23
 
23
- class Group
24
- attr_accessor :name, :description, :people
24
+ class Group
25
+ attr_accessor :name, :description, :people
25
26
 
26
- def to_api
27
- {:name => @name, :description => @description, :people => @people}.to_api
28
- end
29
- end
27
+ def to_api
28
+ {:name => @name, :description => @description, :people => @people}.to_api
29
+ end
30
+ end
31
+ ```
30
32
 
31
33
  Now just call your to\_api method. You'll get back a hash of arrays, hashes, strings, numbers, and nil. All of these are very easily converted to a format of your choice.
32
34
 
33
- JSON.generate(group.to_api)
35
+ ```ruby
36
+ JSON.generate(group.to_api)
37
+ ```
34
38
 
35
- ### If I have to implement to\_api, what does the gem do for me?
39
+ ### If I have to implement `to_api`, what does the gem do for me?
36
40
 
37
- The gem provides to\_api for common Ruby classes, allowing simple conversion to json, xml, yaml, etc. Hash and Enumerable transform all their contents, allowing your data objects to simply call to\_api on a hash of relevant attributes.
41
+ The gem provides `to_api` for common Ruby classes, allowing simple conversion to JSON, XML, YAML, etc. Hash and Enumerable transform all their contents, allowing your data objects to simply call `to_api` on a hash of relevant attributes.
38
42
 
39
43
  Fixnum, String, DateTime, Symbol, and NilClass are also provided.
40
44
 
41
45
  ### What about Ruby on Rails?
42
46
 
43
- If ActiveRecord is present, ActiveRecord::Base#to\_api transforms and returns the attributes hash. It also supports an :includes option that mirrors the ActiveRecord finder usage.
47
+ If ActiveRecord is present, `ActiveRecord::Base#to_api` transforms and returns the attributes hash. It also supports an `:includes` option that mirrors the ActiveRecord finder usage.
44
48
 
45
- person.to_api([{:groups => :members}, :interests])
49
+ ```ruby
50
+ person.to_api([{:groups => :members}, :interests])
51
+ ```
46
52
 
47
53
  ### What if I need support for other common classes?
48
54
 
@@ -1,3 +1,3 @@
1
1
  module ToApi
2
- VERSION = "1.1.4"
2
+ VERSION = "1.2.0"
3
3
  end
data/lib/to_api.rb CHANGED
@@ -10,7 +10,7 @@ end
10
10
  module ToApiInstanceMethods
11
11
  def build_to_api_include_hash(*includes)
12
12
  include_hash = {}
13
- includes.each do |i|
13
+ includes.each do |i|
14
14
  if i.kind_of?(Hash)
15
15
  i.each do |k,v|
16
16
  include_hash[k] = v
@@ -34,10 +34,13 @@ module ToApiFilter
34
34
  end
35
35
 
36
36
  def to_api_filters
37
- @_to_api_filters ||={}
38
- @_to_api_filters
37
+ if frozen?
38
+ @_to_api_filters || {}
39
+ else
40
+ @_to_api_filters ||= {}
41
+ end
39
42
  end
40
- end
43
+ end
41
44
 
42
45
  if Object.const_defined? :ActiveRecord
43
46
 
@@ -47,8 +50,8 @@ if Object.const_defined? :ActiveRecord
47
50
  def to_api(*includes) #assumes all attribute types are fine
48
51
  hash = {}
49
52
  valid_includes = (self.class.reflect_on_all_associations.map(&:name).map(&:to_s) | self.valid_api_includes | self.attributes.keys)
50
-
51
- include_hash = build_to_api_ar_include_hash(*includes)
53
+
54
+ include_hash = build_to_api_ar_include_hash(*includes)
52
55
  include_hash.keys.each do |inc|
53
56
  if to_api_filters.has_key?(inc)
54
57
  child_includes = include_hash.delete(inc) || []
@@ -62,7 +65,7 @@ if Object.const_defined? :ActiveRecord
62
65
  v.to_api_filters = to_api_filters if v.respond_to? :to_api_filters
63
66
 
64
67
  attribute_includes = include_hash[k] || []
65
- to_api_v = v.to_api(*[attribute_includes].flatten.compact)
68
+ to_api_v = v.to_api(*[attribute_includes].flatten.compact)
66
69
  hash[k] = to_api_v
67
70
  end
68
71
  end
@@ -76,7 +79,7 @@ if Object.const_defined? :ActiveRecord
76
79
  hash[relation.to_s] = api_obj.respond_to?(:to_api) ? api_obj.to_api(*[relation_includes].flatten.compact) : api_obj
77
80
  end
78
81
  end
79
-
82
+
80
83
  hash
81
84
  end
82
85
 
@@ -92,7 +95,7 @@ if Object.const_defined? :ActiveRecord
92
95
  private
93
96
  def build_to_api_ar_include_hash(*includes)
94
97
  include_hash = {}
95
- includes.each do |i|
98
+ includes.each do |i|
96
99
  if i.kind_of?(Hash)
97
100
  i.each do |k,v|
98
101
  include_hash[k.to_s] = v
@@ -106,14 +109,16 @@ if Object.const_defined? :ActiveRecord
106
109
 
107
110
  end
108
111
 
109
- #Sadly, Scope isn't enumerable
110
- class ActiveRecord::NamedScope::Scope
111
- include ToApiFilter
112
- def to_api(*includes)
113
- map{|e|
114
- e.to_api_filters = to_api_filters if e.respond_to? :to_api_filters
115
- e.to_api(*includes)
116
- }
112
+ if defined?(ActiveRecord::NamedScope)
113
+ #Sadly, Scope isn't enumerable
114
+ class ActiveRecord::NamedScope::Scope
115
+ include ToApiFilter
116
+ def to_api(*includes)
117
+ map{|e|
118
+ e.to_api_filters = to_api_filters if e.respond_to? :to_api_filters
119
+ e.to_api(*includes)
120
+ }
121
+ end
117
122
  end
118
123
  end
119
124
  end
@@ -135,8 +140,8 @@ class Hash
135
140
  def to_api(*includes)
136
141
  values = {}
137
142
 
138
- include_hash = build_to_api_include_hash(*includes)
139
-
143
+ include_hash = build_to_api_include_hash(*includes)
144
+
140
145
  include_hash.keys.each do |inc|
141
146
  if to_api_filters.has_key?(inc)
142
147
  child_includes = include_hash[inc]
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,48 @@
1
1
  require "rubygems"
2
2
  require "bundler/setup"
3
- require 'spec'
3
+ require 'rspec'
4
4
  require 'active_record'
5
+ require 'pry'
5
6
  require 'to_api'
7
+
8
+ ActiveRecord::Base.establish_connection(
9
+ :adapter => 'sqlite3',
10
+ :database => ':memory:'
11
+ )
12
+
13
+ ActiveRecord::Schema.define do
14
+ self.verbose = false
15
+
16
+ create_table :fake_records, :force => true do |t|
17
+ t.integer :age
18
+ t.string :my_field
19
+ t.integer :associated_record_id
20
+ t.integer :other_record_id
21
+ t.integer :group_id
22
+ end
23
+
24
+ create_table :associated_records, :force => true do |t|
25
+ t.string :name
26
+ end
27
+
28
+ create_table :other_records, :force => true do |t|
29
+ t.string :description
30
+ end
31
+
32
+ create_table :groups, :force => true do |t|
33
+ t.string :group_name
34
+ end
35
+
36
+ create_table :child_records, :force => true do |t|
37
+ t.integer :fake_record_id
38
+ t.string :name
39
+ t.integer :category_id
40
+ end
41
+
42
+ create_table :categories, :force => true do |t|
43
+ t.string :name
44
+ end
45
+ end
46
+
47
+ RSpec.configure do |config|
48
+ end
data/spec/to_api_spec.rb CHANGED
@@ -1,18 +1,36 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  class FakeRecord < ActiveRecord::Base
4
- def attributes;{};end
5
- def attributes_from_column_definition;[];end
6
- def self.columns_hash;{};end
7
- named_scope :scopez, :conditions => '1=1'
4
+ belongs_to :associated_record
5
+ belongs_to :other_record
6
+ belongs_to :group
7
+ has_many :child_records
8
+
9
+ if respond_to?(:named_scope)
10
+ named_scope :scopez, :conditions => '1=1'
11
+ else
12
+ scope :scopez, :conditions => '1=1'
13
+ end
14
+
15
+ attr_accessor :yarg
16
+
17
+ def valid_api_includes
18
+ [:associated_record, :other_record]
19
+ end
8
20
  end
9
21
 
10
- class OtherFakeRecord < FakeRecord
11
- def attributes;{"my_field"=>''};end
12
- def my_field;'yar';end
22
+ class ChildRecord < ActiveRecord::Base
23
+ belongs_to :category
13
24
  end
14
25
 
15
- class FakeChildRecord < FakeRecord
26
+ class AssociatedRecord < ActiveRecord::Base
27
+ end
28
+
29
+ class OtherRecord < ActiveRecord::Base
30
+ end
31
+
32
+ class Category < ActiveRecord::Base
33
+
16
34
  end
17
35
 
18
36
  describe '#to_api' do
@@ -25,8 +43,8 @@ describe '#to_api' do
25
43
  describe Hash do
26
44
 
27
45
  it "returns a new hash with all values to_api'ed" do
28
- obj1 = stub('1', :to_api => "1 to api")
29
- obj2 = mock('2', :to_api => "2 to the api")
46
+ obj1 = double('1', :to_api => "1 to api")
47
+ obj2 = double('2', :to_api => "2 to the api")
30
48
 
31
49
  hash = {:one => obj1, :two => obj2}
32
50
  hash.to_api.should == {
@@ -99,7 +117,7 @@ describe '#to_api' do
99
117
  end
100
118
  end
101
119
 
102
- describe Date do
120
+ describe Date do
103
121
  it "returns self" do
104
122
  now = Date.today
105
123
  now.to_api.should == now
@@ -141,14 +159,10 @@ describe '#to_api' do
141
159
  end
142
160
  end
143
161
 
144
- describe ActiveRecord::NamedScope::Scope do
145
- it "returns to_api of its kids" do
146
- FakeRecord.should_receive(:reflect_on_all_associations).and_return([mock(:name => "fake_child_records")])
147
- @base = FakeRecord.new
148
- @base.should_receive(:fake_child_records).and_return([{"foo" => "bar"}])
149
-
150
- FakeRecord.stub!(:find_every => [@base])
151
- FakeRecord.scopez.to_api("fake_child_records").should == [{"fake_child_records" => [{"foo" => "bar"}]}]
162
+ describe 'named scopes' do
163
+ it "returns to_api of the matching records" do
164
+ @base = FakeRecord.create(my_field: "Some Value")
165
+ FakeRecord.scopez.to_api.should == [@base.to_api]
152
166
  end
153
167
  end
154
168
 
@@ -169,7 +183,7 @@ describe '#to_api' do
169
183
  [a].to_api(['bar']).should == [:apiz]
170
184
  end
171
185
  end
172
-
186
+
173
187
  describe nil do
174
188
  it "returns nil" do
175
189
  nil.to_api.should be_nil
@@ -182,22 +196,26 @@ describe '#to_api' do
182
196
  describe "with attributes" do
183
197
  before do
184
198
  @base = FakeRecord.new
185
- @base.stub!(:attributes => {"age" => mock(:to_api => :apid_age)})
199
+ @base.age = 95
200
+ @base.my_field = "why yes"
186
201
  end
187
202
 
188
203
  it "includes the to_api'd attributes" do
189
- @base.to_api["age"].should == :apid_age
204
+ result = @base.to_api
205
+ result["age"].should == 95
206
+ result["my_field"].should == "why yes"
190
207
  end
191
208
  end
192
209
 
193
210
  describe "with to_api_attributes" do
194
211
  before do
195
- @base = OtherFakeRecord.new
196
- @base.stub!(:to_api_attributes => {"age" => mock(:to_api => :apid_age)})
212
+ @base = FakeRecord.new
213
+ @base.age = 65
214
+ @base.my_field = "yar"
197
215
  end
198
216
 
199
217
  it "includes the to_api'd attributes" do
200
- @base.to_api["age"].should == :apid_age
218
+ @base.to_api["age"].should == 65
201
219
  end
202
220
 
203
221
  it "allows the inclusion of attributes" do
@@ -207,83 +225,79 @@ describe '#to_api' do
207
225
 
208
226
  describe "with includes" do
209
227
  before do
210
- @base = FakeRecord.new
211
- @base.stub!(:attributes => {})
212
- FakeRecord.stub!(:reflect_on_all_associations => [mock(:name => "foopy_pantz")])
213
- @base.stub!(:foopy_pantz => "pantz of foop")
228
+ @base = FakeRecord.new(:my_field => "some value")
229
+ @base.save!
230
+ @associated_record = @base.create_associated_record("name" => "Joe")
214
231
  end
215
232
 
216
233
  it "includes the to_api'd attributes" do
217
- @base.to_api("foopy_pantz")["foopy_pantz"].should == "pantz of foop"
234
+ # Without specifying an include the associated_record is not automatically included
235
+ @base.to_api["associated_record"].should be_nil
236
+
237
+ # But specify the association and it gets pulled in
238
+ @base.to_api("associated_record")["associated_record"]["name"].should == "Joe"
218
239
  end
219
-
240
+
220
241
  it "allows symbols" do
221
- @base.to_api(:foopy_pantz)["foopy_pantz"].should == "pantz of foop"
242
+ @base.to_api(:associated_record)["associated_record"]["name"].should == "Joe"
222
243
  end
223
-
244
+
224
245
  it "ignores non association includes" do
225
- @base.stub!(:yarg => "YYYYARRGG")
246
+ @base.yarg = "YYYYARRGG"
226
247
  @base.to_api("yarg")["yarg"].should be_nil
227
248
  end
228
-
249
+
229
250
  it "allows for explicitly declaring allowable includes" do
230
- @base.stub!(:foo => "FOO")
231
- @base.stub!(:valid_api_includes => ["foo"])
232
- @base.to_api("foo")["foo"].should == "FOO"
251
+ @base.to_api("associated_record")["associated_record"]["name"].should == "Joe"
252
+
253
+ # 'group' is not listed in valid_api_includes, so it won't be included even when requested
254
+ @base.to_api("group")["group"].should be_nil
233
255
  end
234
-
256
+
235
257
  describe "versions of params" do
236
-
258
+
237
259
  before do
238
- FakeChildRecord.stub!(:reflect_on_all_associations => [mock(:name => "foopy_pantz")])
239
- @child = FakeChildRecord.new
240
- @child.stub!(:foopy_pantz => "pantz of foop")
241
-
242
- FakeRecord.should_receive(:reflect_on_all_associations).and_return([mock(:name => "fake_child_records"), mock(:name => "other_relation")])
243
- @base = FakeRecord.new
244
-
245
- @base.should_receive(:fake_child_records).and_return([@child])
246
- @other_child = mock(:to_api => {"foo"=>"bar"})
260
+ @base = FakeRecord.create
261
+ @child = @base.child_records.create(:name => "Jane")
262
+ @child_category = @child.create_category(:name => "Child Category")
263
+ @other_record = @base.create_other_record(:description => "Some Other Record")
247
264
  end
248
-
265
+
249
266
  it "only passes includes to the correct objects" do
250
- @child.should_receive(:to_api).with().and_return({})
251
- @base.to_api("fake_child_records","foopy_pantz").should == {"fake_child_records" => [{}]}
267
+ @base.to_api("child_records", "foo_records")["child_records"].should == [@child.to_api]
252
268
  end
253
-
254
-
269
+
255
270
  it "takes a single arg" do
256
- @child.should_receive(:to_api).with().and_return({})
257
- @base.to_api("fake_child_records").should == {"fake_child_records" => [{}]}
271
+ result = @base.to_api("child_records")
272
+ result["child_records"].should == [@child.to_api]
273
+ result["child_records"].first["category"].should be_nil
274
+ result["other_record"].should be_nil
258
275
  end
259
-
276
+
260
277
  it "takes array with singles" do
261
- @child.should_receive(:to_api).with().and_return({})
262
- @base.to_api("fake_child_records","foopy_pantz").should == {"fake_child_records" => [{}]}
278
+ result = @base.to_api("child_records", "other_record")
279
+ result["child_records"].should == [@child.to_api]
280
+ result["other_record"].should == @other_record.to_api
263
281
  end
264
-
265
- it "takes array with subhash" do
266
- @child.should_receive(:to_api).with("foopy_pantz").and_return({})
267
- @base.should_receive(:other_relation).and_return(@other_child)
268
- @base.to_api({"fake_child_records" => "foopy_pantz"}, "other_relation").should == {"fake_child_records" => [{}], "other_relation" => {"foo"=>"bar"}}
282
+
283
+ it "takes array with subhash and singles" do
284
+ result = @base.to_api({"child_records" => "category"}, "other_record")
285
+ result["child_records"].should == [@child.to_api("category")]
286
+ result["child_records"].first["category"]["name"].should == @child_category.name
287
+ result["other_record"].should == @other_record.to_api
269
288
  end
270
289
 
271
290
  it "takes array with subhash as symbols" do
272
- @child.should_receive(:to_api).with(:foopy_pantz).and_return({})
273
- @base.should_receive(:other_relation).and_return(@other_child)
274
- @base.to_api({:fake_child_records => :foopy_pantz}, :other_relation).should == {"fake_child_records" => [{}], "other_relation" => {"foo"=>"bar"}}
275
- end
276
-
277
- it "takes array with singles and subhashes" do
278
- @child.should_receive(:to_api).with("foopy_pantz").and_return({})
279
- @base.to_api("fake_child_records" => "foopy_pantz").should == {"fake_child_records" => [{}]}
291
+ result = @base.to_api({:child_records => :category}, :other_record)
292
+ result["child_records"].should == [@child.to_api("category")]
293
+ result["child_records"].first["category"]["name"].should == @child_category.name
294
+ result["other_record"].should == @other_record.to_api
280
295
  end
281
296
  end
282
297
 
283
298
  describe "#add_to_api_filter" do
284
299
  it "adds a filter" do
285
- @base = OtherFakeRecord.new
286
- @base.should_not_receive(:my_field)
300
+ @base = FakeRecord.new(:my_field => "foo")
287
301
  @base.add_to_api_filter("my_field") do |parent, child_includes|
288
302
  "YO-HO-HO"
289
303
  end
@@ -292,23 +306,28 @@ describe '#to_api' do
292
306
  end
293
307
 
294
308
  it "sends filter to child" do
295
- FakeRecord.stub!(:reflect_on_all_associations => [mock(:name => "kids")])
296
- FakeChildRecord.stub!(:reflect_on_all_associations => [mock(:name => "foopy_pantz")])
297
-
298
- @base = FakeRecord.new
299
- @base.stub!(:attributes => {})
309
+ @base = FakeRecord.create
310
+ @child = @base.child_records.create(:name => "Jane")
300
311
 
301
- @child = FakeChildRecord.new
312
+ @base.add_to_api_filter("category") do |parent, child_includes|
313
+ "Not the real category"
314
+ end
302
315
 
303
- @child.stub!(:foopy_pantz => "pantz of foop")
304
-
305
- @base.should_receive(:kids).and_return([@child])
316
+ result = @base.to_api("child_records" => "category")
317
+ child = result["child_records"].first
318
+ child["name"].should == @child.name
319
+ child["category"].should == "Not the real category"
320
+ end
306
321
 
307
- @base.add_to_api_filter("foopy_pantz") do |parent, child_includes|
308
- "kachaa"
309
- end
322
+ it "doesn't blow up when a frozen object gets to_api'd" do
323
+ models = [FakeRecord.new, FakeRecord.new]
324
+ models.freeze
310
325
 
311
- @base.to_api("kids" => "foopy_pantz").should == {"kids" => [{"foopy_pantz" => "kachaa"}]}
326
+ result = models.to_api
327
+ result.should == [
328
+ models[0].to_api,
329
+ models[1].to_api,
330
+ ]
312
331
  end
313
332
  end
314
333
  end
data/to_api.gemspec CHANGED
@@ -11,15 +11,18 @@ Gem::Specification.new do |s|
11
11
  s.homepage = "http://github.com/atomicobject/to_api"
12
12
  s.summary = %q{Helper for simplifying JSON api creation}
13
13
  s.description = %q{Helper for simplifying JSON api creation.}
14
-
14
+
15
15
  s.rubyforge_project = "to_api"
16
16
 
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
-
22
- s.add_development_dependency "activerecord", [">= 2.3", "< 3"]
23
- s.add_development_dependency "rspec", "= 1.3.1"
21
+
22
+ s.add_development_dependency "activerecord", ["3.2.15"]
23
+ # s.add_development_dependency "activerecord", [">= 2.3", "< 3"]
24
+ s.add_development_dependency "rspec", "= 2.14.1"
24
25
  s.add_development_dependency "rake", ">= 0.8.7"
26
+ s.add_development_dependency "pry"
27
+ s.add_development_dependency "sqlite3"
25
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: to_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,30 +10,24 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-05-22 00:00:00.000000000 Z
13
+ date: 2013-11-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '2.3'
23
- - - <
20
+ - - '='
24
21
  - !ruby/object:Gem::Version
25
- version: '3'
22
+ version: 3.2.15
26
23
  type: :development
27
24
  prerelease: false
28
25
  version_requirements: !ruby/object:Gem::Requirement
29
26
  none: false
30
27
  requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: '2.3'
34
- - - <
28
+ - - '='
35
29
  - !ruby/object:Gem::Version
36
- version: '3'
30
+ version: 3.2.15
37
31
  - !ruby/object:Gem::Dependency
38
32
  name: rspec
39
33
  requirement: !ruby/object:Gem::Requirement
@@ -41,7 +35,7 @@ dependencies:
41
35
  requirements:
42
36
  - - '='
43
37
  - !ruby/object:Gem::Version
44
- version: 1.3.1
38
+ version: 2.14.1
45
39
  type: :development
46
40
  prerelease: false
47
41
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +43,7 @@ dependencies:
49
43
  requirements:
50
44
  - - '='
51
45
  - !ruby/object:Gem::Version
52
- version: 1.3.1
46
+ version: 2.14.1
53
47
  - !ruby/object:Gem::Dependency
54
48
  name: rake
55
49
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +60,38 @@ dependencies:
66
60
  - - ! '>='
67
61
  - !ruby/object:Gem::Version
68
62
  version: 0.8.7
63
+ - !ruby/object:Gem::Dependency
64
+ name: pry
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: sqlite3
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
69
95
  description: Helper for simplifying JSON api creation.
70
96
  email:
71
97
  - shawn42@gmail.com
@@ -75,6 +101,7 @@ extensions: []
75
101
  extra_rdoc_files: []
76
102
  files:
77
103
  - .gitignore
104
+ - .ruby-version
78
105
  - Gemfile
79
106
  - README.md
80
107
  - Rakefile
@@ -103,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
130
  version: '0'
104
131
  requirements: []
105
132
  rubyforge_project: to_api
106
- rubygems_version: 1.8.21
133
+ rubygems_version: 1.8.23
107
134
  signing_key:
108
135
  specification_version: 3
109
136
  summary: Helper for simplifying JSON api creation