api_resource 0.3.4 → 0.3.5
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/.rspec +1 -0
- data/Gemfile +2 -1
- data/Gemfile.lock +9 -1
- data/Guardfile +7 -2
- data/VERSION +1 -1
- data/api_resource.gemspec +9 -6
- data/lib/api_resource/base.rb +19 -9
- data/spec/lib/base_spec.rb +45 -5
- data/spec/spec_helper.rb +71 -25
- data/spec/support/requests/test_resource_requests.rb +1 -1
- metadata +64 -53
data/.rspec
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -47,8 +47,14 @@ GEM
|
|
47
47
|
guard (1.0.1)
|
48
48
|
ffi (>= 0.5.0)
|
49
49
|
thor (~> 0.14.6)
|
50
|
+
guard-bundler (0.1.3)
|
51
|
+
bundler (>= 1.0.0)
|
52
|
+
guard (>= 0.2.2)
|
50
53
|
guard-rspec (0.6.0)
|
51
54
|
guard (>= 0.10.0)
|
55
|
+
guard-spork (1.0.1)
|
56
|
+
guard (>= 1.0.0)
|
57
|
+
spork (>= 0.8.4)
|
52
58
|
hash_dealer (1.4.7)
|
53
59
|
activesupport
|
54
60
|
colorize
|
@@ -139,6 +145,7 @@ GEM
|
|
139
145
|
simplecov-html (~> 0.5.3)
|
140
146
|
simplecov-html (0.5.3)
|
141
147
|
slop (2.4.4)
|
148
|
+
spork (0.9.2)
|
142
149
|
sprockets (2.1.3)
|
143
150
|
hike (~> 1.2)
|
144
151
|
rack (~> 1.0)
|
@@ -163,8 +170,9 @@ DEPENDENCIES
|
|
163
170
|
factory_girl
|
164
171
|
faker
|
165
172
|
growl
|
166
|
-
guard
|
173
|
+
guard-bundler
|
167
174
|
guard-rspec
|
175
|
+
guard-spork
|
168
176
|
hash_dealer
|
169
177
|
jeweler (~> 1.6.4)
|
170
178
|
json
|
data/Guardfile
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
# A sample Guardfile
|
2
2
|
# More info at https://github.com/guard/guard#readme
|
3
3
|
|
4
|
+
guard 'bundler' do
|
5
|
+
watch('Gemfile')
|
6
|
+
# Uncomment next line if Gemfile contain `gemspec' command
|
7
|
+
# watch(/^.+\.gemspec/)
|
8
|
+
end
|
9
|
+
|
4
10
|
guard 'rspec', :version => 2, :cli => "--color --format nested" do
|
5
11
|
watch(%r{^spec/.+_spec\.rb$})
|
6
12
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
@@ -18,5 +24,4 @@ guard 'rspec', :version => 2, :cli => "--color --format nested" do
|
|
18
24
|
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
19
25
|
# Capybara request specs
|
20
26
|
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
21
|
-
end
|
22
|
-
|
27
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.5
|
data/api_resource.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "api_resource"
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ethan Langevin"]
|
12
|
-
s.date = "2012-07-
|
12
|
+
s.date = "2012-07-07"
|
13
13
|
s.description = "A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources"
|
14
14
|
s.email = "ejl6266@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -83,7 +83,7 @@ Gem::Specification.new do |s|
|
|
83
83
|
s.homepage = "http://github.com/ejlangev/resource"
|
84
84
|
s.licenses = ["MIT"]
|
85
85
|
s.require_paths = ["lib"]
|
86
|
-
s.rubygems_version = "1.8.
|
86
|
+
s.rubygems_version = "1.8.11"
|
87
87
|
s.summary = "A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources"
|
88
88
|
|
89
89
|
if s.respond_to? :specification_version then
|
@@ -107,8 +107,9 @@ Gem::Specification.new do |s|
|
|
107
107
|
s.add_development_dependency(%q<factory_girl>, [">= 0"])
|
108
108
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
109
109
|
s.add_development_dependency(%q<faker>, [">= 0"])
|
110
|
-
s.add_development_dependency(%q<guard>, [">= 0"])
|
110
|
+
s.add_development_dependency(%q<guard-bundler>, [">= 0"])
|
111
111
|
s.add_development_dependency(%q<guard-rspec>, [">= 0"])
|
112
|
+
s.add_development_dependency(%q<guard-spork>, [">= 0"])
|
112
113
|
s.add_development_dependency(%q<mocha>, [">= 0"])
|
113
114
|
s.add_development_dependency(%q<bundler>, [">= 0"])
|
114
115
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
@@ -132,8 +133,9 @@ Gem::Specification.new do |s|
|
|
132
133
|
s.add_dependency(%q<factory_girl>, [">= 0"])
|
133
134
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
134
135
|
s.add_dependency(%q<faker>, [">= 0"])
|
135
|
-
s.add_dependency(%q<guard>, [">= 0"])
|
136
|
+
s.add_dependency(%q<guard-bundler>, [">= 0"])
|
136
137
|
s.add_dependency(%q<guard-rspec>, [">= 0"])
|
138
|
+
s.add_dependency(%q<guard-spork>, [">= 0"])
|
137
139
|
s.add_dependency(%q<mocha>, [">= 0"])
|
138
140
|
s.add_dependency(%q<bundler>, [">= 0"])
|
139
141
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
@@ -158,8 +160,9 @@ Gem::Specification.new do |s|
|
|
158
160
|
s.add_dependency(%q<factory_girl>, [">= 0"])
|
159
161
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
160
162
|
s.add_dependency(%q<faker>, [">= 0"])
|
161
|
-
s.add_dependency(%q<guard>, [">= 0"])
|
163
|
+
s.add_dependency(%q<guard-bundler>, [">= 0"])
|
162
164
|
s.add_dependency(%q<guard-rspec>, [">= 0"])
|
165
|
+
s.add_dependency(%q<guard-spork>, [">= 0"])
|
163
166
|
s.add_dependency(%q<mocha>, [">= 0"])
|
164
167
|
s.add_dependency(%q<bundler>, [">= 0"])
|
165
168
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
data/lib/api_resource/base.rb
CHANGED
@@ -14,11 +14,11 @@ module ApiResource
|
|
14
14
|
class_attribute :include_root_in_json
|
15
15
|
self.include_root_in_json = true
|
16
16
|
|
17
|
-
class_attribute :
|
18
|
-
self.
|
17
|
+
class_attribute :include_nil_attributes_on_create
|
18
|
+
self.include_nil_attributes_on_create = false
|
19
19
|
|
20
20
|
class_attribute :include_all_attributes_on_update
|
21
|
-
self.
|
21
|
+
self.include_nil_attributes_on_create = false
|
22
22
|
|
23
23
|
class_attribute :format
|
24
24
|
self.format = ApiResource::Formats::JsonFormat
|
@@ -544,7 +544,7 @@ module ApiResource
|
|
544
544
|
|
545
545
|
def serializable_hash(options = {})
|
546
546
|
action = options[:action]
|
547
|
-
|
547
|
+
include_nil_attributes = options[:include_nil_attributes]
|
548
548
|
options[:include_associations] = options[:include_associations] ? options[:include_associations].symbolize_array : self.changes.keys.symbolize_array.select{|k| self.association?(k)}
|
549
549
|
options[:include_extras] = options[:include_extras] ? options[:include_extras].symbolize_array : []
|
550
550
|
options[:except] ||= []
|
@@ -552,14 +552,14 @@ module ApiResource
|
|
552
552
|
# If this is an association and it's in include_associations then include it
|
553
553
|
if options[:include_extras].include?(key.to_sym)
|
554
554
|
accum.merge(key => val)
|
555
|
-
elsif options[:except].include?(key.to_sym) || (!
|
555
|
+
elsif options[:except].include?(key.to_sym) || (!include_nil_attributes && val.nil? && self.changes[key].blank?)
|
556
556
|
accum
|
557
557
|
else
|
558
558
|
!self.attribute?(key) || self.protected_attribute?(key) ? accum : accum.merge(key => val)
|
559
559
|
end
|
560
560
|
end
|
561
561
|
options[:include_associations].each do |assoc|
|
562
|
-
ret[assoc] = self.send(assoc).serializable_hash({:include_id => true, :
|
562
|
+
ret[assoc] = self.send(assoc).serializable_hash({:include_id => true, :include_nil_attributes => include_nil_attributes, :action => action}) if self.association?(assoc)
|
563
563
|
end
|
564
564
|
# include id - this is for nested updates
|
565
565
|
ret[:id] = self.id if options[:include_id] && !self.new?
|
@@ -579,6 +579,15 @@ module ApiResource
|
|
579
579
|
self.class.element_path(id, prefix_options, query_options)
|
580
580
|
end
|
581
581
|
|
582
|
+
# list of all attributes that are not nil
|
583
|
+
def nil_attributes
|
584
|
+
self.attributes.select{|k,v|
|
585
|
+
# if our value is actually nil or if we are an association
|
586
|
+
# or array and we are blank
|
587
|
+
v.nil? || ((self.association?(k) || v.is_a?(Array)) && v.blank?)
|
588
|
+
}
|
589
|
+
end
|
590
|
+
|
582
591
|
def new_element_path(prefix_options = {})
|
583
592
|
self.class.new_element_path(prefix_options)
|
584
593
|
end
|
@@ -597,9 +606,10 @@ module ApiResource
|
|
597
606
|
def setup_create_call(*args)
|
598
607
|
opts = args.extract_options!
|
599
608
|
# When we create we should not include any blank attributes unless they are associations
|
600
|
-
except = self.class.
|
609
|
+
except = self.class.include_nil_attributes_on_create ?
|
610
|
+
{} : self.nil_attributes
|
601
611
|
opts[:except] = opts[:except] ? opts[:except].concat(except.keys).uniq.symbolize_array : except.keys.symbolize_array
|
602
|
-
opts[:
|
612
|
+
opts[:include_nil_attributes] = self.class.include_nil_attributes_on_create
|
603
613
|
opts[:include_associations] = opts[:include_associations] ? opts[:include_associations].concat(args) : []
|
604
614
|
opts[:include_extras] ||= []
|
605
615
|
opts[:action] = "create"
|
@@ -621,7 +631,7 @@ module ApiResource
|
|
621
631
|
except = self.class.attribute_names - self.changed.symbolize_array
|
622
632
|
changed_associations = self.changed.symbolize_array.select{|item| self.association?(item)}
|
623
633
|
opts[:except] = opts[:except] ? opts[:except].concat(except).uniq.symbolize_array : except.symbolize_array
|
624
|
-
opts[:
|
634
|
+
opts[:include_nil_attributes] = self.include_all_attributes_on_update
|
625
635
|
opts[:include_associations] = opts[:include_associations] ? opts[:include_associations].concat(args).concat(changed_associations).uniq : changed_associations.concat(args)
|
626
636
|
opts[:include_extras] ||= []
|
627
637
|
opts[:action] = "update"
|
data/spec/lib/base_spec.rb
CHANGED
@@ -311,6 +311,17 @@ describe "Base" do
|
|
311
311
|
tr.save
|
312
312
|
end
|
313
313
|
|
314
|
+
it "should include false attributes when creating by default" do
|
315
|
+
ApiResource::Connection.any_instance.expects(:post).with(
|
316
|
+
"/test_resources.json",
|
317
|
+
"{\"test_resource\":{\"name\":\"Ethan\",\"is_active\":false}}",
|
318
|
+
TestResource.headers
|
319
|
+
)
|
320
|
+
|
321
|
+
tr = TestResource.build(:name => "Ethan", :is_active => false)
|
322
|
+
tr.save
|
323
|
+
end
|
324
|
+
|
314
325
|
|
315
326
|
it "should not include nil attributes for associated objects when creating by default" do
|
316
327
|
ApiResource::Connection.any_instance.expects(:post).with(
|
@@ -340,16 +351,16 @@ describe "Base" do
|
|
340
351
|
it "should include nil attributes when creating if include_nil_attributes_on_create is true" do
|
341
352
|
ApiResource::Connection.any_instance.expects(:post).with(
|
342
353
|
"/test_resources.json",
|
343
|
-
"{\"test_resource\":{\"name\":\"Ethan\",\"age\":null,\"bday\":null,\"roles\":[]}}",
|
354
|
+
"{\"test_resource\":{\"name\":\"Ethan\",\"age\":null,\"is_active\":null,\"bday\":null,\"roles\":[]}}",
|
344
355
|
TestResource.headers
|
345
356
|
)
|
346
357
|
|
347
|
-
TestResource.
|
358
|
+
TestResource.include_nil_attributes_on_create = true
|
348
359
|
tr = TestResource.build(:name => "Ethan")
|
349
360
|
tr.save
|
350
361
|
|
351
362
|
#hash['test_resource'].key?('age').should be_true
|
352
|
-
TestResource.
|
363
|
+
TestResource.include_nil_attributes_on_create = false
|
353
364
|
end
|
354
365
|
end
|
355
366
|
end
|
@@ -425,7 +436,7 @@ describe "Base" do
|
|
425
436
|
|
426
437
|
ApiResource::Connection.any_instance.expects(:put).with(
|
427
438
|
"/test_resources/1.json",
|
428
|
-
"{\"test_resource\":{\"has_one_object\":{}}}",
|
439
|
+
"{\"test_resource\":{\"has_one_object\":{\"size\":null}}}",
|
429
440
|
TestResource.headers
|
430
441
|
).in_sequence(correct_order)
|
431
442
|
|
@@ -464,7 +475,7 @@ describe "Base" do
|
|
464
475
|
it "should include all attributes if include_all_attributes_on_update is true" do
|
465
476
|
ApiResource::Connection.any_instance.expects(:put).with(
|
466
477
|
"/test_resources/1.json",
|
467
|
-
"{\"test_resource\":{\"name\":\"Ethan\",\"age\":null,\"bday\":null,\"roles\":[]}}",
|
478
|
+
"{\"test_resource\":{\"name\":\"Ethan\",\"age\":null,\"is_active\":null,\"bday\":null,\"roles\":[]}}",
|
468
479
|
TestResource.headers
|
469
480
|
)
|
470
481
|
|
@@ -485,6 +496,35 @@ describe "Base" do
|
|
485
496
|
tr.update_attributes(:name => "Dan")
|
486
497
|
end
|
487
498
|
|
499
|
+
|
500
|
+
it "should include nil attributes when updating if they have
|
501
|
+
changed by default" do
|
502
|
+
|
503
|
+
ApiResource::Connection.any_instance.expects(:put).with(
|
504
|
+
"/test_resources/1.json",
|
505
|
+
"{\"test_resource\":{\"is_active\":null}}",
|
506
|
+
TestResource.headers
|
507
|
+
)
|
508
|
+
|
509
|
+
tr = TestResource.new(
|
510
|
+
:id => "1", :name => "Ethan", :is_active => false
|
511
|
+
)
|
512
|
+
tr.update_attributes(:is_active => nil)
|
513
|
+
end
|
514
|
+
|
515
|
+
it "should include attributes that have changed to false by default" do
|
516
|
+
ApiResource::Connection.any_instance.expects(:put).with(
|
517
|
+
"/test_resources/1.json",
|
518
|
+
"{\"test_resource\":{\"is_active\":false}}",
|
519
|
+
TestResource.headers
|
520
|
+
)
|
521
|
+
|
522
|
+
tr = TestResource.new(
|
523
|
+
:id => "1", :name => "Ethan", :is_active => true
|
524
|
+
)
|
525
|
+
tr.update_attributes(:is_active => false)
|
526
|
+
|
527
|
+
end
|
488
528
|
|
489
529
|
end
|
490
530
|
|
data/spec/spec_helper.rb
CHANGED
@@ -1,36 +1,82 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
require '
|
5
|
-
require 'simplecov'
|
1
|
+
require 'rubygems'
|
2
|
+
require 'spork'
|
3
|
+
#uncomment the following line to use spork with the debugger
|
4
|
+
#require 'spork/ext/ruby-debug'
|
6
5
|
|
6
|
+
Spork.prefork do
|
7
|
+
# Loading more in this block will cause your tests to run faster. However,
|
8
|
+
# if you change any configuration or code from libraries loaded here, you'll
|
9
|
+
# need to restart spork for it take effect.
|
7
10
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
12
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
13
|
+
require 'bundler'
|
14
|
+
require 'api_resource'
|
15
|
+
require 'simplecov'
|
11
16
|
|
12
|
-
SimpleCov.at_exit do
|
13
|
-
SimpleCov.result.format!
|
14
|
-
end
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
18
|
+
SimpleCov.start do
|
19
|
+
add_filter "/spec/"
|
20
|
+
end
|
21
|
+
|
22
|
+
SimpleCov.at_exit do
|
23
|
+
SimpleCov.result.format!
|
24
|
+
end
|
25
|
+
|
26
|
+
# Requires supporting files with custom matchers and macros, etc,
|
27
|
+
# in ./support/ and its subdirectories.
|
28
|
+
Bundler.require(:default, :development)
|
29
|
+
Debugger.start
|
30
|
+
|
31
|
+
# Requires supporting files with custom matchers and macros, etc,
|
32
|
+
# in ./support/ and its subdirectories.
|
33
|
+
#ApiResource.load_mocks_and_factories
|
34
|
+
ApiResource.site = 'http://localhost:3000'
|
35
|
+
ApiResource.format = :json
|
36
|
+
ApiResource.load_mocks_and_factories
|
20
37
|
|
21
|
-
|
22
|
-
# in ./support/ and its subdirectories.
|
23
|
-
#ApiResource.load_mocks_and_factories
|
24
|
-
ApiResource.site = 'http://localhost:3000'
|
25
|
-
ApiResource.format = :json
|
26
|
-
ApiResource.load_mocks_and_factories
|
38
|
+
ApiResource.logger.level = Log4r::INFO
|
27
39
|
|
28
|
-
|
40
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
29
41
|
|
30
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
31
42
|
|
32
43
|
|
44
|
+
RSpec.configure do |config|
|
45
|
+
config.mock_with :mocha
|
46
|
+
end
|
33
47
|
|
34
|
-
RSpec.configure do |config|
|
35
|
-
config.mock_with :mocha
|
36
48
|
end
|
49
|
+
|
50
|
+
Spork.each_run do
|
51
|
+
# This code will be run each time you run your specs.
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
# --- Instructions ---
|
56
|
+
# Sort the contents of this file into a Spork.prefork and a Spork.each_run
|
57
|
+
# block.
|
58
|
+
#
|
59
|
+
# The Spork.prefork block is run only once when the spork server is started.
|
60
|
+
# You typically want to place most of your (slow) initializer code in here, in
|
61
|
+
# particular, require'ing any 3rd-party gems that you don't normally modify
|
62
|
+
# during development.
|
63
|
+
#
|
64
|
+
# The Spork.each_run block is run each time you run your specs. In case you
|
65
|
+
# need to load files that tend to change during development, require them here.
|
66
|
+
# With Rails, your application modules are loaded automatically, so sometimes
|
67
|
+
# this block can remain empty.
|
68
|
+
#
|
69
|
+
# Note: You can modify files loaded *from* the Spork.each_run block without
|
70
|
+
# restarting the spork server. However, this file itself will not be reloaded,
|
71
|
+
# so if you change any of the code inside the each_run block, you still need to
|
72
|
+
# restart the server. In general, if you have non-trivial code in this file,
|
73
|
+
# it's advisable to move it into a separate file so you can easily edit it
|
74
|
+
# without restarting spork. (For example, with RSpec, you could move
|
75
|
+
# non-trivial code into a file spec/support/my_helper.rb, making sure that the
|
76
|
+
# spec/support/* files are require'd from inside the each_run block.)
|
77
|
+
#
|
78
|
+
# Any code that is left outside the two blocks will be run during preforking
|
79
|
+
# *and* during each_run -- that's probably not what you want.
|
80
|
+
#
|
81
|
+
# These instructions should self-destruct in 10 seconds. If they don't, feel
|
82
|
+
# free to delete them.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &2160638840 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2160638840
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: hash_dealer
|
27
|
-
requirement: &
|
27
|
+
requirement: &2160649640 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2160649640
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rest-client
|
38
|
-
requirement: &
|
38
|
+
requirement: &2160661900 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2160661900
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: log4r
|
49
|
-
requirement: &
|
49
|
+
requirement: &2160671720 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2160671720
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: differ
|
60
|
-
requirement: &
|
60
|
+
requirement: &2160679940 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2160679940
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: colorize
|
71
|
-
requirement: &
|
71
|
+
requirement: &2160773040 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2160773040
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: json
|
82
|
-
requirement: &
|
82
|
+
requirement: &2161308060 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2161308060
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: pry
|
93
|
-
requirement: &
|
93
|
+
requirement: &2168857960 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2168857960
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: pry-doc
|
104
|
-
requirement: &
|
104
|
+
requirement: &2169018780 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2169018780
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: pry-nav
|
115
|
-
requirement: &
|
115
|
+
requirement: &2169045040 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *2169045040
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: rspec
|
126
|
-
requirement: &
|
126
|
+
requirement: &2169382600 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ! '>='
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *2169382600
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: ruby-debug19
|
137
|
-
requirement: &
|
137
|
+
requirement: &2169382120 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ! '>='
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: '0'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *2169382120
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: growl
|
148
|
-
requirement: &
|
148
|
+
requirement: &2169381640 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ! '>='
|
@@ -153,10 +153,10 @@ dependencies:
|
|
153
153
|
version: '0'
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *2169381640
|
157
157
|
- !ruby/object:Gem::Dependency
|
158
158
|
name: rspec-rails
|
159
|
-
requirement: &
|
159
|
+
requirement: &2169381160 !ruby/object:Gem::Requirement
|
160
160
|
none: false
|
161
161
|
requirements:
|
162
162
|
- - ! '>='
|
@@ -164,10 +164,10 @@ dependencies:
|
|
164
164
|
version: '0'
|
165
165
|
type: :development
|
166
166
|
prerelease: false
|
167
|
-
version_requirements: *
|
167
|
+
version_requirements: *2169381160
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: factory_girl
|
170
|
-
requirement: &
|
170
|
+
requirement: &2169380680 !ruby/object:Gem::Requirement
|
171
171
|
none: false
|
172
172
|
requirements:
|
173
173
|
- - ! '>='
|
@@ -175,10 +175,10 @@ dependencies:
|
|
175
175
|
version: '0'
|
176
176
|
type: :development
|
177
177
|
prerelease: false
|
178
|
-
version_requirements: *
|
178
|
+
version_requirements: *2169380680
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
180
|
name: simplecov
|
181
|
-
requirement: &
|
181
|
+
requirement: &2169380200 !ruby/object:Gem::Requirement
|
182
182
|
none: false
|
183
183
|
requirements:
|
184
184
|
- - ! '>='
|
@@ -186,10 +186,10 @@ dependencies:
|
|
186
186
|
version: '0'
|
187
187
|
type: :development
|
188
188
|
prerelease: false
|
189
|
-
version_requirements: *
|
189
|
+
version_requirements: *2169380200
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
191
|
name: faker
|
192
|
-
requirement: &
|
192
|
+
requirement: &2169379720 !ruby/object:Gem::Requirement
|
193
193
|
none: false
|
194
194
|
requirements:
|
195
195
|
- - ! '>='
|
@@ -197,10 +197,10 @@ dependencies:
|
|
197
197
|
version: '0'
|
198
198
|
type: :development
|
199
199
|
prerelease: false
|
200
|
-
version_requirements: *
|
200
|
+
version_requirements: *2169379720
|
201
201
|
- !ruby/object:Gem::Dependency
|
202
|
-
name: guard
|
203
|
-
requirement: &
|
202
|
+
name: guard-bundler
|
203
|
+
requirement: &2169379240 !ruby/object:Gem::Requirement
|
204
204
|
none: false
|
205
205
|
requirements:
|
206
206
|
- - ! '>='
|
@@ -208,10 +208,10 @@ dependencies:
|
|
208
208
|
version: '0'
|
209
209
|
type: :development
|
210
210
|
prerelease: false
|
211
|
-
version_requirements: *
|
211
|
+
version_requirements: *2169379240
|
212
212
|
- !ruby/object:Gem::Dependency
|
213
213
|
name: guard-rspec
|
214
|
-
requirement: &
|
214
|
+
requirement: &2169378760 !ruby/object:Gem::Requirement
|
215
215
|
none: false
|
216
216
|
requirements:
|
217
217
|
- - ! '>='
|
@@ -219,10 +219,21 @@ dependencies:
|
|
219
219
|
version: '0'
|
220
220
|
type: :development
|
221
221
|
prerelease: false
|
222
|
-
version_requirements: *
|
222
|
+
version_requirements: *2169378760
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: guard-spork
|
225
|
+
requirement: &2169378280 !ruby/object:Gem::Requirement
|
226
|
+
none: false
|
227
|
+
requirements:
|
228
|
+
- - ! '>='
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0'
|
231
|
+
type: :development
|
232
|
+
prerelease: false
|
233
|
+
version_requirements: *2169378280
|
223
234
|
- !ruby/object:Gem::Dependency
|
224
235
|
name: mocha
|
225
|
-
requirement: &
|
236
|
+
requirement: &2169377800 !ruby/object:Gem::Requirement
|
226
237
|
none: false
|
227
238
|
requirements:
|
228
239
|
- - ! '>='
|
@@ -230,10 +241,10 @@ dependencies:
|
|
230
241
|
version: '0'
|
231
242
|
type: :development
|
232
243
|
prerelease: false
|
233
|
-
version_requirements: *
|
244
|
+
version_requirements: *2169377800
|
234
245
|
- !ruby/object:Gem::Dependency
|
235
246
|
name: bundler
|
236
|
-
requirement: &
|
247
|
+
requirement: &2169377320 !ruby/object:Gem::Requirement
|
237
248
|
none: false
|
238
249
|
requirements:
|
239
250
|
- - ! '>='
|
@@ -241,10 +252,10 @@ dependencies:
|
|
241
252
|
version: '0'
|
242
253
|
type: :development
|
243
254
|
prerelease: false
|
244
|
-
version_requirements: *
|
255
|
+
version_requirements: *2169377320
|
245
256
|
- !ruby/object:Gem::Dependency
|
246
257
|
name: jeweler
|
247
|
-
requirement: &
|
258
|
+
requirement: &2169376840 !ruby/object:Gem::Requirement
|
248
259
|
none: false
|
249
260
|
requirements:
|
250
261
|
- - ~>
|
@@ -252,10 +263,10 @@ dependencies:
|
|
252
263
|
version: 1.6.4
|
253
264
|
type: :development
|
254
265
|
prerelease: false
|
255
|
-
version_requirements: *
|
266
|
+
version_requirements: *2169376840
|
256
267
|
- !ruby/object:Gem::Dependency
|
257
268
|
name: activerecord
|
258
|
-
requirement: &
|
269
|
+
requirement: &2169372220 !ruby/object:Gem::Requirement
|
259
270
|
none: false
|
260
271
|
requirements:
|
261
272
|
- - ~>
|
@@ -263,10 +274,10 @@ dependencies:
|
|
263
274
|
version: '3'
|
264
275
|
type: :development
|
265
276
|
prerelease: false
|
266
|
-
version_requirements: *
|
277
|
+
version_requirements: *2169372220
|
267
278
|
- !ruby/object:Gem::Dependency
|
268
279
|
name: sqlite3
|
269
|
-
requirement: &
|
280
|
+
requirement: &2169368180 !ruby/object:Gem::Requirement
|
270
281
|
none: false
|
271
282
|
requirements:
|
272
283
|
- - ! '>='
|
@@ -274,7 +285,7 @@ dependencies:
|
|
274
285
|
version: '0'
|
275
286
|
type: :development
|
276
287
|
prerelease: false
|
277
|
-
version_requirements: *
|
288
|
+
version_requirements: *2169368180
|
278
289
|
description: A replacement for ActiveResource for RESTful APIs that handles associated
|
279
290
|
object and multiple data sources
|
280
291
|
email: ejl6266@gmail.com
|
@@ -361,7 +372,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
361
372
|
version: '0'
|
362
373
|
segments:
|
363
374
|
- 0
|
364
|
-
hash: -
|
375
|
+
hash: -736365968347087456
|
365
376
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
366
377
|
none: false
|
367
378
|
requirements:
|
@@ -370,7 +381,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
370
381
|
version: '0'
|
371
382
|
requirements: []
|
372
383
|
rubyforge_project:
|
373
|
-
rubygems_version: 1.8.
|
384
|
+
rubygems_version: 1.8.11
|
374
385
|
signing_key:
|
375
386
|
specification_version: 3
|
376
387
|
summary: A replacement for ActiveResource for RESTful APIs that handles associated
|