etsy 0.3.2 → 0.3.3

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.
@@ -30,5 +30,5 @@ Gem::Specification.new do |gem|
30
30
  # on shoulda/context.rb:7
31
31
  # But then when you load active_support, shoulda-context decides
32
32
  # to load MiniTest
33
- gem.add_development_dependency 'minitest', "=4.7.4"
33
+ gem.add_development_dependency 'test-unit', "~>3.2.5"
34
34
  end
@@ -15,8 +15,12 @@ require 'etsy/verification_request'
15
15
  require 'etsy/model'
16
16
  require 'etsy/user'
17
17
  require 'etsy/profile'
18
+ require 'etsy/bill_charge'
19
+ require 'etsy/bill_payment'
20
+ require 'etsy/billing_overview'
18
21
  require 'etsy/shop'
19
22
  require 'etsy/listing'
23
+ require 'etsy/attribute_value'
20
24
  require 'etsy/image'
21
25
  require 'etsy/transaction'
22
26
  require 'etsy/address'
@@ -24,6 +28,7 @@ require 'etsy/category'
24
28
  require 'etsy/payment_template'
25
29
  require 'etsy/country'
26
30
  require 'etsy/shipping_template'
31
+ require 'etsy/shipping_info'
27
32
  require 'etsy/section'
28
33
  require 'etsy/favorite_listing'
29
34
  require 'etsy/receipt'
@@ -0,0 +1,46 @@
1
+ module Etsy
2
+
3
+ # = AttributeValue
4
+ #
5
+ # An attribute of a listing according to its taxonomy.
6
+ #
7
+ # An attribute has the following attributes:
8
+ #
9
+ # [property_id] (INT) The numeric ID of this property.
10
+ # [property_name] (STRING) The name of the property, in the requested locale language.
11
+ # [scale_id] (INT) The numeric ID of the scale (if any).
12
+ # [scale_name] (STRING) The label used to describe the chosen scale (if any).
13
+ # [value_ids] (Array(INT)) The numeric IDs of the values.
14
+ # [values] (Array(STRING)) The literal values of the value
15
+ class AttributeValue
16
+
17
+ include Etsy::Model
18
+
19
+ attribute :id, :from => :property_id
20
+ attributes :property_name, :scale_id, :scale_name, :value_ids,
21
+ :values
22
+
23
+ # Fetch all property_values for a given listing.
24
+ #
25
+ def self.find_all_by_listing_id(listing_id, options = {})
26
+ get_all("/listings/#{listing_id}/attributes", options)
27
+ end
28
+
29
+ # Adds a new attribute_value to the listing given
30
+ #
31
+ def self.create(listing, property_hash, options = {})
32
+ property_id = property_hash[:property_id]
33
+ options.merge!(:require_secure => true)
34
+ options.merge!(property_hash)
35
+ put("/listings/#{listing.id}/attributes/#{property_id}", options)
36
+ end
37
+
38
+ # Delete attribute_value from listing
39
+ #
40
+ def self.destroy(listing, property_value, options = {})
41
+ options.merge!(:require_secure => true)
42
+ delete("/listings/#{listing.id}/attributes/#{property_value.id}", options)
43
+ end
44
+ end
45
+ end
46
+
@@ -0,0 +1,31 @@
1
+ module Etsy
2
+
3
+ # = BillCharge
4
+ #
5
+ # Represents a charge to an Etsy member's account.
6
+ #
7
+ #
8
+ class BillCharge
9
+
10
+ include Etsy::Model
11
+
12
+ attribute :id, :from => :bill_charge_id
13
+ attribute :created, :from => :creation_tsz
14
+ attribute :last_modified, :from => :last_modified_tsz
15
+
16
+ attributes :type, :type_id, :user_id, :amount, :currency_code, :creation_month,
17
+ :creation_year
18
+
19
+ def self.find_all_by_user_id(user_id, options = {})
20
+ get_all("/users/#{user_id}/charges", options)
21
+ end
22
+
23
+ def created_at
24
+ Time.at(created)
25
+ end
26
+
27
+ def last_modified_at
28
+ Time.at(last_modified)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,28 @@
1
+ module Etsy
2
+
3
+ # = BillPayment
4
+ #
5
+ # Represents a user's Billing Payment.
6
+ #
7
+ #
8
+ class BillPayment
9
+
10
+ include Etsy::Model
11
+
12
+ attribute :id, :from => :bill_payment_id
13
+ attribute :created, :from => :creation_tsz
14
+
15
+ attributes :type, :type_id, :user_id, :amount, :currency_code, :creation_month,
16
+ :creation_year
17
+
18
+ def self.find_all_by_user_id(user_id, options = {})
19
+ get_all("/users/#{user_id}/payments", options)
20
+ end
21
+
22
+ # Time that this listing was created
23
+ #
24
+ def created_at
25
+ Time.at(created)
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,18 @@
1
+ module Etsy
2
+
3
+ # = BillingOverview
4
+ #
5
+ # A user's account balance on Etsy.
6
+ #
7
+ class BillingOverview
8
+
9
+ include Etsy::Model
10
+
11
+ attributes :is_overdue, :overdue_balance, :balance_due, :total_balance, :currency_code, :date_due,
12
+ :creation_year
13
+
14
+ def self.find_all_by_user_id(user_id, options = {})
15
+ get_all("/users/#{user_id}/billing/overview", options)
16
+ end
17
+ end
18
+ end
@@ -17,6 +17,8 @@ module Etsy
17
17
  attribute :square, :from => :url_75x75
18
18
  attribute :small, :from => :url_170x135
19
19
  attribute :thumbnail, :from => :url_570xN
20
+ attribute :height, :from => :full_height
21
+ attribute :width, :from => :full_width
20
22
  attribute :full, :from => :url_fullxfull
21
23
 
22
24
  # Fetch all images for a given listing.
@@ -38,18 +38,28 @@ module Etsy
38
38
  attribute :id, :from => :listing_id
39
39
  attribute :view_count, :from => :views
40
40
  attribute :created, :from => :creation_tsz
41
+ attribute :original_created, :from => :original_creation_tsz
41
42
  attribute :modified, :from => :last_modified_tsz
42
43
  attribute :currency, :from => :currency_code
43
44
  attribute :ending, :from => :ending_tsz
45
+ attribute :shop_section, :from => :shop_section_id
44
46
 
45
47
  attributes :title, :description, :state, :url, :price, :quantity,
46
48
  :tags, :materials, :hue, :saturation, :brightness, :is_black_and_white,
47
49
  :featured_rank, :occasion, :num_favorers, :user_id,
48
50
  :shipping_template_id, :who_made, :when_made,
49
- :original_creation_tsz, :style, :category_path
51
+ :style, :category_path, :taxonomy_id, :taxonomy_attributes
50
52
 
51
53
  association :image, :from => 'Images'
52
54
 
55
+ def transactions
56
+ @transactions ||= Transaction.find_all_by_listing_id(id, oauth)
57
+ end
58
+
59
+ def receipts
60
+ transactions.map{|t|t.receipt}
61
+ end
62
+
53
63
  def self.create(options = {})
54
64
  options.merge!(:require_secure => true)
55
65
  post("/listings", options)
@@ -141,6 +151,13 @@ module Etsy
141
151
  @category ||= Category.find(path)
142
152
  end
143
153
 
154
+ # Returns the taxonomy defined attributes for the listing
155
+ #
156
+ def taxonomy_attributes(options={})
157
+ options.merge!(:require_secure => true)
158
+ self.class.get_all("/listings/#{id}/attributes", oauth.merge(options))
159
+ end
160
+
144
161
  def variations(options={})
145
162
  options.merge!(:require_secure => true)
146
163
  self.class.get_all("/listings/#{id}/variations", oauth.merge(options))
@@ -205,6 +222,11 @@ module Etsy
205
222
  Time.at(created)
206
223
  end
207
224
 
225
+ # Time that this listing was originally created
226
+ def original_created_at
227
+ Time.at(original_created)
228
+ end
229
+
208
230
  # Time that this listing was last modified
209
231
  #
210
232
  def modified_at
@@ -43,7 +43,7 @@ module Etsy
43
43
  if limit == :all
44
44
  response = Request.get(endpoint, options.merge(:limit => batch_size, :offset => initial_offset))
45
45
  result << response.result
46
- limit = [response.count - batch_size - initial_offset, 0].max
46
+ limit = [response.total - batch_size - initial_offset, 0].max
47
47
  initial_offset += batch_size
48
48
  end
49
49
 
@@ -5,8 +5,15 @@ module Etsy
5
5
  attribute :id, :from => :receipt_id
6
6
  attribute :buyer_id, :from => :buyer_user_id
7
7
 
8
+ attribute :created, :from => :creation_tsz
9
+ attribute :last_modified, :from => :last_modified_tsz
10
+
8
11
  attributes :quantity, :listing_id, :name, :first_line, :second_line, :city, :state, :zip, :country_id,
9
- :payment_email, :buyer_email, :creation_tsz
12
+ :payment_email, :buyer_email
13
+
14
+ def self.find(*identifiers_and_options)
15
+ find_one_or_more('receipts', identifiers_and_options)
16
+ end
10
17
 
11
18
  def self.find_all_by_shop_id(shop_id, options = {})
12
19
  get_all("/shops/#{shop_id}/receipts", options)
@@ -17,7 +24,7 @@ module Etsy
17
24
  end
18
25
 
19
26
  def created_at
20
- Time.at(creation_tsz)
27
+ Time.at(created)
21
28
  end
22
29
 
23
30
  def buyer
@@ -0,0 +1,27 @@
1
+ module Etsy
2
+ class ShippingInfo
3
+ include Etsy::Model
4
+
5
+ attribute :id, :from => :shipping_info_id
6
+
7
+ attributes :origin_country_id, :destination_country_id, :currency_code, :primary_cost, :secondary_cost, :listing_id, :region_id, :origin_country_name, :destination_country_name
8
+
9
+ def self.find(id, credentials = {})
10
+ options = {
11
+ :access_token => credentials[:access_token],
12
+ :access_secret => credentials[:access_secret],
13
+ :require_secure => true
14
+ }
15
+ get("/shipping/info/#{id}", options)
16
+ end
17
+
18
+ def self.find_all_by_listing_id(listing_id, credentials = {})
19
+ options = {
20
+ :access_token => credentials[:access_token],
21
+ :access_secret => credentials[:access_secret],
22
+ :require_secure => true
23
+ }
24
+ get_all("/listings/#{listing_id}/shipping/info", options)
25
+ end
26
+ end
27
+ end
@@ -19,7 +19,16 @@ module Etsy
19
19
  }
20
20
  get("/shipping/templates/#{id}", options)
21
21
  end
22
-
22
+
23
+ def self.find_entries(id, credentials = {})
24
+ options = {
25
+ :access_token => credentials[:access_token],
26
+ :access_secret => credentials[:access_secret],
27
+ :require_secure => true
28
+ }
29
+ get("/shipping/templates/#{id}/entries", options)
30
+ end
31
+
23
32
  def self.find_by_user(user, credentials = {})
24
33
  options = {
25
34
  :access_token => credentials[:access_token],
@@ -4,25 +4,70 @@ module Etsy
4
4
 
5
5
  attribute :id, :from => :transaction_id
6
6
  attribute :buyer_id, :from => :buyer_user_id
7
+ attribute :seller_id, :from => :seller_user_id
7
8
  attributes :quantity, :listing_id
8
9
 
10
+ attribute :created, :from => :creation_tsz
11
+ attribute :shipped, :from => :shipped_tsz
12
+ attribute :paid, :from => :paid_tsz
13
+
14
+ attributes :title, :description, :price, :currency_code, :quantity,
15
+ :tags, :materials, :image_listing_id, :receipt_id,
16
+ :is_digital, :file_data, :listing_id, :url, :product_data,
17
+ :variations, :transaction_type, :buyer_feedback_id,
18
+ :seller_feedback_id
19
+
20
+
9
21
  def self.find_all_by_shop_id(shop_id, options = {})
10
22
  get_all("/shops/#{shop_id}/transactions", options)
11
23
  end
12
24
 
25
+ def created_at
26
+ Time.at(created)
27
+ end
28
+
29
+ def shipped_at
30
+ Time.at(shipped)
31
+ end
32
+
33
+ def paid_at
34
+ Time.at(paid)
35
+ end
36
+
37
+ def self.find(*identifiers_and_options)
38
+ find_one_or_more('transactions', identifiers_and_options)
39
+ end
40
+
13
41
  #Find all Transactions by the buyer_id
14
42
  #
15
43
  def self.find_all_by_buyer_id(user_id, options = {})
16
44
  get_all("/users/#{user_id}/transactions", options)
17
45
  end
18
46
 
47
+ def self.find_all_by_listing_id(listing_id, options = {})
48
+ get_all("/listings/#{listing_id}/transactions", options)
49
+ end
50
+
19
51
  def self.find_all_by_receipt_id(receipt_id, options = {})
20
52
  get_all("/receipts/#{receipt_id}/transactions", options)
21
53
  end
22
54
 
55
+ def receipt
56
+ @receipt ||= Receipt.find(receipt_id, oauth)
57
+ end
23
58
 
24
59
  def buyer
25
- @buyer ||= User.find(buyer_id)
60
+ @buyer ||= User.find(buyer_id, oauth)
61
+ end
62
+
63
+ def listing
64
+ @listing ||= Listing.find(listing_id, oauth)
65
+ end
66
+
67
+ private
68
+
69
+ def oauth
70
+ oauth = (token && secret) ? {:access_token => token, :access_secret => secret} : {}
26
71
  end
27
72
 
28
73
  end
@@ -19,6 +19,8 @@ module Etsy
19
19
 
20
20
  association :profile, :from => 'Profile'
21
21
  association :shops, :from => 'Shops'
22
+ association :bill_charges, :from => 'BillCharges'
23
+ association :bill_payments, :from => 'BillPayments'
22
24
 
23
25
  # Retrieve one or more users by name or ID:
24
26
  #
@@ -81,6 +83,34 @@ module Etsy
81
83
  @shops
82
84
  end
83
85
 
86
+ def bill_charges
87
+ unless @bill_charges
88
+ if associated_bill_charges
89
+ @bill_charges = associated_bill_charges.map { |bill_charge| BillCharge.new(bill_charge) }
90
+ else
91
+ options = {:fields => 'user_id', :includes => 'BillCharges'}
92
+ options = options.merge(:access_token => token, :access_secret => secret) if (token && secret)
93
+ tmp = User.find(username, options)
94
+ @bill_charges = tmp.associated_bill_charges.map { |bill_charge| BillCharge.new(bill_charge) }
95
+ end
96
+ end
97
+ @bill_charges
98
+ end
99
+
100
+ def bill_payments
101
+ unless @bill_payments
102
+ if associated_bill_payments
103
+ @bill_payments = associated_bill_payments.map { |bill_payment| BillPayment.new(bill_payment) }
104
+ else
105
+ options = {:fields => 'user_id', :includes => 'BillPayments'}
106
+ options = options.merge(:access_token => token, :access_secret => secret) if (token && secret)
107
+ tmp = User.find(username, options)
108
+ @bill_payments = tmp.associated_bill_payments.map { |bill_payment| BillPayment.new(bill_payment) }
109
+ end
110
+ end
111
+ @bill_payments
112
+ end
113
+
84
114
  # Time that this user was created
85
115
  #
86
116
  def created_at
@@ -1,3 +1,3 @@
1
1
  module Etsy
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -0,0 +1,44 @@
1
+
2
+ {
3
+ "count":4,
4
+ "results":
5
+ [
6
+ {
7
+ "property_id": 200,
8
+ "property_name": "Primary color",
9
+ "scale_id": null,
10
+ "scale_name": null,
11
+ "value_ids": [1213],
12
+ "values": ["Beige"]
13
+ },
14
+ {
15
+ "property_id": 52047899002,
16
+ "property_name": "Secondary color",
17
+ "scale_id": null,
18
+ "scale_name": null,
19
+ "value_ids": [1],
20
+ "values": ["Black"]
21
+ },
22
+ {
23
+ "property_id": 47626759834,
24
+ "property_name": "Height",
25
+ "scale_id": 5,
26
+ "scale_name": "Inches",
27
+ "value_ids": [0],
28
+ "values": ["15"]
29
+ },
30
+ {
31
+ "property_id": 47626759898,
32
+ "property_name": "Width",
33
+ "scale_id": 5,
34
+ "scale_name": "Inches",
35
+ "value_ids": [0],
36
+ "values": ["25"]
37
+ }
38
+ ],
39
+ "params":
40
+ {
41
+ "listing_id":"59495892"
42
+ },
43
+ "type":"ListingPropertyValue"
44
+ }
@@ -0,0 +1 @@
1
+ {"count":1,"results":[{"bill_charge_id":212,"type":"listing_id","type_id":14888443,"amount":"3.00"}],"params":{"user_id":"212"},"type":"BillCharge","pagination":{}}
@@ -0,0 +1 @@
1
+ {"count":1,"results":[{"bill_payment_id":212,"type":"listing_id","type_id":14888443,"amount":"3.00"}],"params":{"user_id":"212"},"type":"BillPayment","pagination":{}}
@@ -0,0 +1 @@
1
+ {"count":1,"results":[{"total_balance":1399,"balance_due":999}],"params":{"user_id":"212"},"type":"BillingOverview","pagination":{}}
@@ -0,0 +1 @@
1
+ {"count":1,"results":[{"shipping_info_id":212,"primary_cost":"$9.99","listing_id":14888443}],"params":{"shipping_template_id":"212"},"type":"ShippingTemplate","pagination":{}}
@@ -3,7 +3,6 @@ $:.reject! { |e| e.include? 'TextMate' }
3
3
 
4
4
  require 'rubygems'
5
5
  require 'active_support' # workaround load issue with shoulda in rubinius
6
- require 'minitest/autorun' # workaround load issue with shoulda in rubinius
7
6
  require 'test/unit'
8
7
  require 'shoulda'
9
8
  require 'matchy'
@@ -0,0 +1,67 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+
3
+ module Etsy
4
+ class AttributeValueTest < Test::Unit::TestCase
5
+ context 'The AttributeValue class' do
6
+ context 'without oauth' do
7
+ should 'be able to find all images for a listing' do
8
+ property_values = mock_request(
9
+ '/listings/1/attributes',
10
+ {},
11
+ 'AttributeValue',
12
+ 'findAllListingPropertyValues.json'
13
+ )
14
+ AttributeValue.find_all_by_listing_id(1, {}).should == property_values
15
+ end
16
+ end
17
+
18
+ context 'with options' do
19
+ should 'be able to find all property_values for a listing with options in request' do
20
+ property_values = mock_request(
21
+ '/listings/1/attributes',
22
+ { foo: 'bar' },
23
+ 'AttributeValue',
24
+ 'findAllListingPropertyValues.json'
25
+ )
26
+ AttributeValue.find_all_by_listing_id(1, foo: 'bar').should == property_values
27
+ end
28
+ end
29
+ end
30
+
31
+ context 'An instance of the AttributeValue class' do
32
+ context 'with response data' do
33
+ setup do
34
+ data = read_fixture('attribute_value/findAllListingPropertyValues.json')
35
+ @primary_color = AttributeValue.new(data[0])
36
+ @secondary_color = AttributeValue.new(data[1])
37
+ @height = AttributeValue.new(data[2])
38
+ @width = AttributeValue.new(data[3])
39
+ end
40
+
41
+ should 'have a value for :scale_name for width' do
42
+ @width.scale_name.should == 'Inches'
43
+ end
44
+
45
+ should 'have a value for :scale_id for width' do
46
+ @width.scale_id.should == 5
47
+ end
48
+
49
+ should 'have a value for :scale_name for height' do
50
+ @height.scale_name.should == 'Inches'
51
+ end
52
+
53
+ should 'have a value for :scale_id for height' do
54
+ @height.scale_id.should == 5
55
+ end
56
+
57
+ should 'have an array of :values with color name for primary_color' do
58
+ @primary_color.values.should == ['Beige']
59
+ end
60
+
61
+ should 'have an array of :values with color name for secondary_color' do
62
+ @secondary_color.values.should == ['Black']
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,24 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+
3
+ module Etsy
4
+ class BillChargeTest < Test::Unit::TestCase
5
+ context "An instance of the BillCharge class" do
6
+ setup do
7
+ data = read_fixture('bill_charge/getBillCharge.json')
8
+ @bill_charge = BillCharge.new(data.first)
9
+ end
10
+
11
+ should "have an id" do
12
+ @bill_charge.id.should == 212
13
+ end
14
+
15
+ should "have a type" do
16
+ @bill_charge.type.should == "listing_id"
17
+ end
18
+
19
+ should "have an type_id" do
20
+ @bill_charge.type_id.should == 14888443
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+
3
+ module Etsy
4
+ class BillPaymentTest < Test::Unit::TestCase
5
+ context "An instance of the BillPayment class" do
6
+ setup do
7
+ data = read_fixture('bill_payment/getBillPayment.json')
8
+ @bill_payment = BillPayment.new(data.first)
9
+ end
10
+
11
+ should "have an id" do
12
+ @bill_payment.id.should == 212
13
+ end
14
+
15
+ should "have a type" do
16
+ @bill_payment.type.should == "listing_id"
17
+ end
18
+
19
+ should "have an type_id" do
20
+ @bill_payment.type_id.should == 14888443
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+
3
+ module Etsy
4
+ class BillingOverviewTest < Test::Unit::TestCase
5
+ context "An instance of the BillingOverview class" do
6
+ setup do
7
+ data = read_fixture('billing_overview/getBillingOverview.json')
8
+ @billing_overview = BillingOverview.new(data.first)
9
+ end
10
+
11
+ should "have a total_balance" do
12
+ @billing_overview.total_balance.should == 1399
13
+ end
14
+
15
+ should "have a balance_due" do
16
+ @billing_overview.balance_due.should == 999
17
+ end
18
+ end
19
+ end
20
+ end
@@ -30,9 +30,9 @@ module Etsy
30
30
  end
31
31
 
32
32
  should 'perform multiple requests if :limit is greater than 100' do
33
- mock_empty_request(:limit => 100, :offset => 0).once
34
- mock_empty_request(:limit => 50, :offset => 100).once
35
-
33
+ body = '{"count": 150, "pagination":{}}'
34
+ mock_empty_request(:limit => 100, :offset => 0, :body => body).once
35
+ mock_empty_request(:limit => 50, :offset => 100, :body => body).once
36
36
  TestModel.get_all('', :limit => 150)
37
37
  end
38
38
 
@@ -52,7 +52,7 @@ module Etsy
52
52
  end
53
53
 
54
54
  should 'perform multiple requests if :limit is :all and count is greater than 100' do
55
- body = '{"count": 210}'
55
+ body = '{"count": 210, "pagination": {}}'
56
56
  mock_empty_request(:limit => 100, :offset => 0, :body => body).once
57
57
  mock_empty_request(:limit => 100, :offset => 100, :body => body).once
58
58
  mock_empty_request(:limit => 10, :offset => 200, :body => body).once
@@ -0,0 +1,24 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+
3
+ module Etsy
4
+ class ShippingInfoTest < Test::Unit::TestCase
5
+ context "An instance of the ShippingInfo class" do
6
+ setup do
7
+ data = read_fixture('shipping_info/getShippingInfo.json')
8
+ @shipping_info = ShippingInfo.new(data.first)
9
+ end
10
+
11
+ should "have an id" do
12
+ @shipping_info.id.should == 212
13
+ end
14
+
15
+ should "have an title" do
16
+ @shipping_info.primary_cost.should == "$9.99"
17
+ end
18
+
19
+ should "have an listing_id" do
20
+ @shipping_info.listing_id.should == 14888443
21
+ end
22
+ end
23
+ end
24
+ end
@@ -47,7 +47,7 @@ module Etsy
47
47
  end
48
48
 
49
49
  should "know the buyer" do
50
- User.stubs(:find).with(1).returns('user')
50
+ User.stubs(:find).with(1, {}).returns('user')
51
51
 
52
52
  transaction = Transaction.new
53
53
  transaction.stubs(:buyer_id).with().returns(1)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: etsy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-06-07 00:00:00.000000000 Z
13
+ date: 2018-07-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -109,21 +109,21 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.13.3
111
111
  - !ruby/object:Gem::Dependency
112
- name: minitest
112
+ name: test-unit
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  none: false
115
115
  requirements:
116
- - - '='
116
+ - - ~>
117
117
  - !ruby/object:Gem::Version
118
- version: 4.7.4
118
+ version: 3.2.5
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  none: false
123
123
  requirements:
124
- - - '='
124
+ - - ~>
125
125
  - !ruby/object:Gem::Version
126
- version: 4.7.4
126
+ version: 3.2.5
127
127
  description: A friendly Ruby interface to the Etsy API
128
128
  email:
129
129
  - reaganpr@gmail.com
@@ -142,7 +142,11 @@ files:
142
142
  - lib/etsy.rb
143
143
  - lib/etsy/about.rb
144
144
  - lib/etsy/address.rb
145
+ - lib/etsy/attribute_value.rb
145
146
  - lib/etsy/basic_client.rb
147
+ - lib/etsy/bill_charge.rb
148
+ - lib/etsy/bill_payment.rb
149
+ - lib/etsy/billing_overview.rb
146
150
  - lib/etsy/category.rb
147
151
  - lib/etsy/country.rb
148
152
  - lib/etsy/favorite_listing.rb
@@ -156,6 +160,7 @@ files:
156
160
  - lib/etsy/response.rb
157
161
  - lib/etsy/section.rb
158
162
  - lib/etsy/secure_client.rb
163
+ - lib/etsy/shipping_info.rb
159
164
  - lib/etsy/shipping_template.rb
160
165
  - lib/etsy/shop.rb
161
166
  - lib/etsy/transaction.rb
@@ -165,6 +170,10 @@ files:
165
170
  - lib/etsy/version.rb
166
171
  - test/fixtures/about/getAbout.json
167
172
  - test/fixtures/address/getUserAddresses.json
173
+ - test/fixtures/attribute_value/findAllListingPropertyValues.json
174
+ - test/fixtures/bill_charge/getBillCharge.json
175
+ - test/fixtures/bill_payment/getBillPayment.json
176
+ - test/fixtures/billing_overview/getBillingOverview.json
168
177
  - test/fixtures/category/findAllSubCategoryChildren.json
169
178
  - test/fixtures/category/findAllTopCategory.json
170
179
  - test/fixtures/category/findAllTopCategory.single.json
@@ -183,6 +192,7 @@ files:
183
192
  - test/fixtures/profile/new.json
184
193
  - test/fixtures/receipt/findAllShopReceipts.json
185
194
  - test/fixtures/section/getShopSection.json
195
+ - test/fixtures/shipping_info/getShippingInfo.json
186
196
  - test/fixtures/shipping_template/getShippingTemplate.json
187
197
  - test/fixtures/shop/findAllShop.json
188
198
  - test/fixtures/shop/findAllShop.single.json
@@ -196,7 +206,11 @@ files:
196
206
  - test/fixtures/user/getUser.single.withShops.json
197
207
  - test/test_helper.rb
198
208
  - test/unit/etsy/address_test.rb
209
+ - test/unit/etsy/attribute_value_test.rb
199
210
  - test/unit/etsy/basic_client_test.rb
211
+ - test/unit/etsy/bill_charge_test.rb
212
+ - test/unit/etsy/bill_payment_test.rb
213
+ - test/unit/etsy/billing_overview_test.rb
200
214
  - test/unit/etsy/category_test.rb
201
215
  - test/unit/etsy/country_test.rb
202
216
  - test/unit/etsy/favorite_listing_test.rb
@@ -210,6 +224,7 @@ files:
210
224
  - test/unit/etsy/response_test.rb
211
225
  - test/unit/etsy/section_test.rb
212
226
  - test/unit/etsy/secure_client_test.rb
227
+ - test/unit/etsy/shipping_info_test.rb
213
228
  - test/unit/etsy/shipping_template_test.rb
214
229
  - test/unit/etsy/shop_about_test.rb
215
230
  - test/unit/etsy/shop_test.rb
@@ -245,6 +260,10 @@ summary: Provides a friendly ruby-like wrapper for the Etsy API
245
260
  test_files:
246
261
  - test/fixtures/about/getAbout.json
247
262
  - test/fixtures/address/getUserAddresses.json
263
+ - test/fixtures/attribute_value/findAllListingPropertyValues.json
264
+ - test/fixtures/bill_charge/getBillCharge.json
265
+ - test/fixtures/bill_payment/getBillPayment.json
266
+ - test/fixtures/billing_overview/getBillingOverview.json
248
267
  - test/fixtures/category/findAllSubCategoryChildren.json
249
268
  - test/fixtures/category/findAllTopCategory.json
250
269
  - test/fixtures/category/findAllTopCategory.single.json
@@ -263,6 +282,7 @@ test_files:
263
282
  - test/fixtures/profile/new.json
264
283
  - test/fixtures/receipt/findAllShopReceipts.json
265
284
  - test/fixtures/section/getShopSection.json
285
+ - test/fixtures/shipping_info/getShippingInfo.json
266
286
  - test/fixtures/shipping_template/getShippingTemplate.json
267
287
  - test/fixtures/shop/findAllShop.json
268
288
  - test/fixtures/shop/findAllShop.single.json
@@ -276,7 +296,11 @@ test_files:
276
296
  - test/fixtures/user/getUser.single.withShops.json
277
297
  - test/test_helper.rb
278
298
  - test/unit/etsy/address_test.rb
299
+ - test/unit/etsy/attribute_value_test.rb
279
300
  - test/unit/etsy/basic_client_test.rb
301
+ - test/unit/etsy/bill_charge_test.rb
302
+ - test/unit/etsy/bill_payment_test.rb
303
+ - test/unit/etsy/billing_overview_test.rb
280
304
  - test/unit/etsy/category_test.rb
281
305
  - test/unit/etsy/country_test.rb
282
306
  - test/unit/etsy/favorite_listing_test.rb
@@ -290,6 +314,7 @@ test_files:
290
314
  - test/unit/etsy/response_test.rb
291
315
  - test/unit/etsy/section_test.rb
292
316
  - test/unit/etsy/secure_client_test.rb
317
+ - test/unit/etsy/shipping_info_test.rb
293
318
  - test/unit/etsy/shipping_template_test.rb
294
319
  - test/unit/etsy/shop_about_test.rb
295
320
  - test/unit/etsy/shop_test.rb