Skip to content

Commit d5e1d80

Browse files
committed
Merge branch 'master' into model-extractions
2 parents bc5dd2e + ea0afcb commit d5e1d80

File tree

7 files changed

+46
-4
lines changed

7 files changed

+46
-4
lines changed

CHANGELOG

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
v1.4.8
2+
- added ListingCart#add_listings
3+
14
v1.4.7
25
- store 'D' attribute in responses
36

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.4.7
1+
1.4.8

lib/spark_api/models/listing_cart.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,16 @@ def listings(args = {})
3737
Listing.collect(connection.get("#{self.path}/#{self.Id}/listings", args))
3838
end
3939

40-
def add_listing(listing)
41-
ids = listing.respond_to?(:Id) ? listing.Id : listing
42-
results = connection.post("#{self.resource_uri}", {"ListingIds" => Array(ids)})
40+
def add_listings(listings)
41+
ids = Array(listings).map do |listing|
42+
listing.respond_to?(:Id) ? listing.Id : listing
43+
end
44+
results = connection.post("#{self.resource_uri}", {"ListingIds" => ids})
4345
self.ListingCount = results.first["ListingCount"]
4446
end
4547

48+
alias_method :add_listing, :add_listings
49+
4650
def remove_listing(listing)
4751
id = listing.respond_to?(:Id) ? listing.Id : listing.to_s
4852
results = connection.delete("#{self.class.path}/#{self.Id}/listings/#{id}")

spark_api.gemspec

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ Gem::Specification.new do |s|
3838
s.add_dependency 'will_paginate', '>= 3.0.pre2', '< 4.0.0'
3939
s.add_dependency 'highline', '>= 1.0'
4040

41+
# spark_api doesn't use public_suffix directly. spark_api uses Webmock, which
42+
# uses addressable, which uses public_suffix. Bundler has suddenly started
43+
# trying to install public_suffix 2.0.4, which requires Ruby 2. When spark_api
44+
# starts to require Ruby 2, this dependency can be removed.
45+
s.add_dependency 'public_suffix', '~> 1.4.6'
46+
4147
# TEST GEMS
4248
s.add_development_dependency 'rake', '~> 0.9.2'
4349
s.add_development_dependency 'rspec', '~> 2.14.0'
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"D": {
3+
"Success": true,
4+
"Results": [
5+
{
6+
"ResourceUri": "/v1/listingcarts/20100912153422758914000000",
7+
"Id": "20100912153422758914000000",
8+
"Name": "My Listing Cart",
9+
"ListingCount": 12
10+
}
11+
]
12+
}
13+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"D": {
3+
"ListingIds": [ "20110621133454434543000000", "20110621133454434543000001" ]
4+
}
5+
}

spec/unit/spark_api/models/listing_cart_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,17 @@
7676
resource.ListingCount.should eq(11)
7777
end
7878

79+
on_post_it "should add multiple listings to a cart" do
80+
listing_ids = ["20110621133454434543000000", "20110621133454434543000001"]
81+
stub_api_get("/#{subject.class.element_name}", 'listing_carts/listing_cart.json')
82+
resource = subject.class.get.first
83+
resource.Id.should eq("20100912153422758914000000")
84+
stub_api_post("/#{subject.class.element_name}/#{resource.Id}",'listing_carts/add_listings_post.json', 'listing_carts/add_listings.json')
85+
resource.ListingCount.should eq(10)
86+
resource.add_listings(listing_ids)
87+
resource.ListingCount.should eq(12)
88+
end
89+
7990
on_delete_it "should delete a listing cart" do
8091
stub_api_get("/#{subject.class.element_name}", 'listing_carts/listing_cart.json')
8192
resource = subject.class.get.first

0 commit comments

Comments
 (0)