mercadolibre 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 00d3044873b92f12b72a397c1f3d2f12eea974fe
4
- data.tar.gz: a7159c6e97c44b71fe1629804d8abd82bfdc79eb
3
+ metadata.gz: 3fa9ac2b080b96683d4470b931fd3f1a80f359ce
4
+ data.tar.gz: 1a657d36e8aa06e678222e289ce359ed557ccdfc
5
5
  SHA512:
6
- metadata.gz: 76733ff9df5db6a4156951ffb8710724b81d37c65f395a7268e1b9a29c09ceddb2bff92d4dd272d7278746a16a78ca80533e525f4195f4e8925640a8470fc914
7
- data.tar.gz: b4a8ee20d3bbe48da14d054bf2ff508ecdd97ac0bb19ae73b233081c2b17d93ad9141645073bfcbd3095c731917c848b0b61bb83acdd819c85d093ecdc7c607d
6
+ metadata.gz: 1c2de29664c58e8f80b9fea47e8610020feb19012d8c7d10218a23f50a2fe1af3434dbf8294db631f3e941cf2f9f7fc26e5abf64934526a5228f0f3b110e30f9
7
+ data.tar.gz: 9b7a2f88b310d80843981ec82f9b04fcf48683f9d744d7631dffd978fb60e3836ae8ff1081950516290495a9a777e921f3daf57c06dd553cbd3a00c5753c9f70
data/CHANGELOG.md CHANGED
@@ -69,3 +69,7 @@
69
69
  ## v0.2.2
70
70
 
71
71
  * Fixed runtime dependencies
72
+
73
+ ## v0.3.0
74
+
75
+ * Refactored orders and shippings
@@ -0,0 +1,30 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class Address
4
+ def self.attr_list
5
+ [:state, :street_name, :city, :country, :address_line, :id,
6
+ :zip_code, :longitude, :street_number, :latitude, :comment]
7
+ end
8
+
9
+ attr_reader *attr_list
10
+
11
+ def initialize(attributes={})
12
+ attributes.each do |k, v|
13
+ if k.to_s == 'state'
14
+ self.state = State.new(v)
15
+ elsif k.to_s == 'city'
16
+ self.city = City.new(v)
17
+ elsif k.to_s == 'country'
18
+ self.country = Country.new(v)
19
+ else
20
+ self.send("#{k}=", v) if self.respond_to?(k)
21
+ end
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ attr_writer *attr_list
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,21 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class AtmTransferReference
4
+ def self.attr_list
5
+ [:company_id, :transaction_id]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ attributes.each do |k, v|
12
+ self.send("#{k}=", v) if self.respond_to?(k)
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ attr_writer *attr_list
19
+ end
20
+ end
21
+ end
@@ -8,8 +8,8 @@ module Mercadolibre
8
8
  attr_reader *attr_list
9
9
 
10
10
  def initialize(attributes={})
11
- attributes.each do |attr, val|
12
- self.send("#{attr}=", val)
11
+ attributes.each do |k, v|
12
+ self.send("#{k}=", v) if self.respond_to?(k)
13
13
  end
14
14
  end
15
15
 
@@ -0,0 +1,21 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class BillingInfo
4
+ def self.attr_list
5
+ [:doc_type, :doc_number]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ attributes.each do |k, v|
12
+ self.send("#{k}=", v) if self.respond_to?(k)
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ attr_writer *attr_list
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class Collector
4
+ def self.attr_list
5
+ [:id]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ attributes.each do |k, v|
12
+ self.send("#{k}=", v) if self.respond_to?(k)
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ attr_writer *attr_list
19
+ end
20
+ end
21
+ end
@@ -6,7 +6,7 @@ module Mercadolibre
6
6
  :base_price, :currency_id, :initial_quantity, :available_quantity, :sold_quantity,
7
7
  :buying_mode, :listing_type_id, :start_time, :stop_time, :condition, :permalink,
8
8
  :thumbnail, :secure_thumbnail, :pictures, :status, :sub_status, :parent_item_id,
9
- :automatic_relist, :date_created, :last_updated]
9
+ :automatic_relist, :date_created, :last_updated, :variation_id, :variation_attributes]
10
10
  end
11
11
 
12
12
  attr_reader *attr_list
@@ -2,9 +2,10 @@ module Mercadolibre
2
2
  module Entity
3
3
  class Order
4
4
  def self.attr_list
5
- [:id, :status, :date_created, :date_closed, :date_last_updated,
6
- :hidden_for_seller, :currency_id, :order_items, :total_amount, :buyer, :seller,
7
- :payments, :seller_feedback, :buyer_feedback, :shipping_status, :tags]
5
+ [:id, :status, :status_detail, :date_created, :date_closed, :last_updated,
6
+ :order_items, :currency_id, :buyer, :seller, :payments, :feedback, :shipping,
7
+ :tags, :mediations, :coupon, :total_amount, :total_amount_with_shipping,
8
+ :paid_amount]
8
9
  end
9
10
 
10
11
  attr_reader *attr_list
@@ -16,22 +17,21 @@ module Mercadolibre
16
17
  elsif k.to_s == 'payments'
17
18
  self.payments = v.map { |x| Payment.new(x) }
18
19
  elsif k.to_s == 'feedback'
19
- unless v.nil?
20
- self.buyer_feedback = Feedback.new(v['purchase']) unless v['purchase'].nil?
21
- self.seller_feedback = Feedback.new(v['sale']) unless v['sale'].nil?
22
- end
20
+ self.feedback = OrderFeedback.new(v)
23
21
  elsif k.to_s == 'shipping'
24
- self.shipping_status = v['status']
22
+ self.shipping = OrderShipping.new(v)
23
+ elsif k.to_s == 'coupon'
24
+ self.coupon = OrderCoupon.new(v)
25
25
  elsif ['buyer', 'seller'].include?(k.to_s)
26
26
  self.send("#{k}=", User.new(v)) unless v.nil?
27
- elsif ['date_created', 'date_closed', 'date_last_updated'].include?(k.to_s)
27
+ elsif ['date_created', 'date_closed', 'last_updated'].include?(k.to_s)
28
28
  self.send("#{k}=", Time.parse(v)) unless v.nil?
29
29
  else
30
30
  self.send("#{k}=", v) if self.respond_to?(k)
31
31
  end
32
32
  end
33
33
 
34
- self.date_last_updated = date_created if date_last_updated.nil?
34
+ self.last_updated = date_created if last_updated.nil?
35
35
  end
36
36
 
37
37
  private
@@ -0,0 +1,21 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class OrderCoupon
4
+ def self.attr_list
5
+ [:id, :amount]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ attributes.each do |k, v|
12
+ self.send("#{k}=", v) if self.respond_to?(k)
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ attr_writer *attr_list
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class OrderFeedback
4
+ def self.attr_list
5
+ [:buyer, :seller]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ self.buyer = Feedback.new(attributes['buyer']) unless attributes['buyer'].nil?
12
+ self.seller = Feedback.new(attributes['seller']) unless attributes['seller'].nil?
13
+ end
14
+
15
+ private
16
+
17
+ attr_writer *attr_list
18
+ end
19
+ end
20
+ end
@@ -2,7 +2,7 @@ module Mercadolibre
2
2
  module Entity
3
3
  class OrderItem
4
4
  def self.attr_list
5
- [:currency_id, :item_id, :item_title, :quantity, :unit_price]
5
+ [:item, :quantity, :unit_price, :currency_id]
6
6
  end
7
7
 
8
8
  attr_reader *attr_list
@@ -10,8 +10,7 @@ module Mercadolibre
10
10
  def initialize(attributes={})
11
11
  attributes.each do |k, v|
12
12
  if k.to_s == 'item'
13
- self.item_id = v['id']
14
- self.item_title = v['title']
13
+ self.item = Item.new(v)
15
14
  else
16
15
  self.send("#{k}=", v) if self.respond_to?(k)
17
16
  end
@@ -0,0 +1,33 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class OrderShipping
4
+ def self.attr_list
5
+ [:shipping_option, :shipping_mode, :shipment_type, :shipping_items, :status,
6
+ :currency_id, :sender_id, :receiver_address, :picking_type, :cost, :substatus,
7
+ :id, :date_first_printed, :service_id, :receiver_id, :date_created]
8
+ end
9
+
10
+ attr_reader *attr_list
11
+
12
+ def initialize(attributes={})
13
+ attributes.each do |k, v|
14
+ if k.to_s == 'shipping_option'
15
+ self.shipping_option = ShippingOption.new(v)
16
+ elsif k.to_s == 'shipping_items'
17
+ self.shipping_items = v.map { |x| ShippingItem.new(x) }
18
+ elsif k.to_s == 'receiver_address'
19
+ self.receiver_address = Address.new(v)
20
+ elsif ['date_first_printed', 'date_created'].include?(k.to_s)
21
+ self.send("#{k}=", Time.parse(v)) unless v.nil?
22
+ else
23
+ self.send("#{k}=", v) if self.respond_to?(k)
24
+ end
25
+ end
26
+ end
27
+
28
+ private
29
+
30
+ attr_writer *attr_list
31
+ end
32
+ end
33
+ end
@@ -2,21 +2,29 @@ module Mercadolibre
2
2
  module Entity
3
3
  class Payment
4
4
  def self.attr_list
5
- [:id, :status, :transaction_amount, :currency_id, :date_created, :date_last_updated]
5
+ [:id, :order_id, :payer_id, :collector, :card_id, :site_id, :reason, :payment_method_id,
6
+ :currency_id, :installments, :issuer_id, :atm_transfer_reference, :coupon_id, :activation_uri,
7
+ :operation_type, :payment_type, :available_actions, :status, :status_code, :status_detail,
8
+ :transaction_amount, :shipping_cost, :coupon_amount, :overpaid_amount, :total_paid_amount,
9
+ :date_created, :date_last_modified]
6
10
  end
7
11
 
8
12
  attr_reader *attr_list
9
13
 
10
14
  def initialize(attributes={})
11
15
  attributes.each do |k, v|
12
- if ['date_last_updated', 'date_created'].include?(k.to_s)
16
+ if ['date_last_modified', 'date_created'].include?(k.to_s)
13
17
  self.send("#{k}=", Time.parse(v)) unless v.nil?
18
+ elsif k.to_s == 'collector'
19
+ self.collector = Collector.new(v) unless v.nil?
20
+ elsif k.to_s == 'atm_transfer_reference'
21
+ self.atm_transfer_reference = AtmTransferReference.new(v) unless v.nil?
14
22
  else
15
23
  self.send("#{k}=", v) if self.respond_to?(k)
16
24
  end
17
25
  end
18
26
 
19
- self.date_last_updated = date_created if date_last_updated.nil?
27
+ self.date_last_modified = date_created if date_last_modified.nil?
20
28
  end
21
29
 
22
30
  private
@@ -0,0 +1,25 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class ShippingDelivery
4
+ def self.attr_list
5
+ [:date, :time_from, :time_to]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ attributes.each do |k, v|
12
+ if ['date', 'time_from', 'time_to'].include?(k.to_s)
13
+ self.send("#{k}=", Time.parse(v)) unless v.nil?
14
+ else
15
+ self.send("#{k}=", v) if self.respond_to?(k)
16
+ end
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ attr_writer *attr_list
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,21 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class ShippingItem
4
+ def self.attr_list
5
+ [:id, :description, :quantity, :dimensions]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ attributes.each do |k, v|
12
+ self.send("#{k}=", v) if self.respond_to?(k)
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ attr_writer *attr_list
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,28 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class ShippingOption
4
+ def self.attr_list
5
+ [:id, :shipping_method_id, :name, :currency_id, :list_cost,
6
+ :cost, :speed, :estimated_delivery]
7
+ end
8
+
9
+ attr_reader *attr_list
10
+
11
+ def initialize(attributes={})
12
+ attributes.each do |k, v|
13
+ if k.to_s == 'speed'
14
+ self.speed = ShippingSpeed.new(v)
15
+ elsif k.to_s == 'estimated_delivery'
16
+ self.estimated_delivery = ShippingDelivery.new(v)
17
+ else
18
+ self.send("#{k}=", v) if self.respond_to?(k)
19
+ end
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ attr_writer *attr_list
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,21 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class ShippingSpeed
4
+ def self.attr_list
5
+ [:shipping, :handling]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ attributes.each do |k, v|
12
+ self.send("#{k}=", v) if self.respond_to?(k)
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ attr_writer *attr_list
19
+ end
20
+ end
21
+ end
@@ -3,7 +3,8 @@ module Mercadolibre
3
3
  class User
4
4
  def self.attr_list
5
5
  [:id, :nickname, :registration_date, :first_name, :last_name, :blocked,
6
- :country_id, :email, :user_type, :points, :site_id, :permalink, :phone]
6
+ :country_id, :email, :user_type, :points, :site_id, :permalink, :phone,
7
+ :alternative_phone, :billing_info]
7
8
  end
8
9
 
9
10
  attr_reader *attr_list
@@ -14,6 +15,10 @@ module Mercadolibre
14
15
  self.registration_date = Time.parse(v)
15
16
  elsif k.to_s == 'phone'
16
17
  self.phone = Phone.new(v)
18
+ elsif k.to_s == 'alternative_phone'
19
+ self.alternative_phone = Phone.new(v)
20
+ elsif k.to_s == 'billing_info'
21
+ self.billing_info = BillingInfo.new(v)
17
22
  else
18
23
  self.send("#{k}=", v) if self.respond_to?(k)
19
24
  end
@@ -1,3 +1,3 @@
1
1
  module Mercadolibre
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/mercadolibre.rb CHANGED
@@ -1,13 +1,17 @@
1
1
  require "mercadolibre/version"
2
2
 
3
3
  # entities
4
+ require "mercadolibre/entity/address"
4
5
  require "mercadolibre/entity/answer"
6
+ require "mercadolibre/entity/atm_transfer_reference"
5
7
  require "mercadolibre/entity/auth"
8
+ require "mercadolibre/entity/billing_info"
6
9
  require "mercadolibre/entity/card_configuration"
7
10
  require "mercadolibre/entity/card_issuer"
8
11
  require "mercadolibre/entity/category"
9
12
  require "mercadolibre/entity/category_settings"
10
13
  require "mercadolibre/entity/city"
14
+ require "mercadolibre/entity/collector"
11
15
  require "mercadolibre/entity/country"
12
16
  require "mercadolibre/entity/currency"
13
17
  require "mercadolibre/entity/currency_conversion_ratio"
@@ -20,13 +24,20 @@ require "mercadolibre/entity/listing_exposure"
20
24
  require "mercadolibre/entity/listing_price"
21
25
  require "mercadolibre/entity/listing_type"
22
26
  require "mercadolibre/entity/order"
27
+ require "mercadolibre/entity/order_coupon"
28
+ require "mercadolibre/entity/order_feedback"
23
29
  require "mercadolibre/entity/order_item"
30
+ require "mercadolibre/entity/order_shipping"
24
31
  require "mercadolibre/entity/payment"
25
32
  require "mercadolibre/entity/payment_method"
26
33
  require "mercadolibre/entity/payment_plan"
27
34
  require "mercadolibre/entity/payment_promotion"
28
35
  require "mercadolibre/entity/phone"
29
36
  require "mercadolibre/entity/question"
37
+ require "mercadolibre/entity/shipping_delivery"
38
+ require "mercadolibre/entity/shipping_item"
39
+ require "mercadolibre/entity/shipping_option"
40
+ require "mercadolibre/entity/shipping_speed"
30
41
  require "mercadolibre/entity/site"
31
42
  require "mercadolibre/entity/site_domain"
32
43
  require "mercadolibre/entity/site_trend"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mercadolibre
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matias Hick
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-03 00:00:00.000000000 Z
11
+ date: 2014-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,13 +71,17 @@ files:
71
71
  - lib/mercadolibre/core/order_management.rb
72
72
  - lib/mercadolibre/core/questions.rb
73
73
  - lib/mercadolibre/core/users.rb
74
+ - lib/mercadolibre/entity/address.rb
74
75
  - lib/mercadolibre/entity/answer.rb
76
+ - lib/mercadolibre/entity/atm_transfer_reference.rb
75
77
  - lib/mercadolibre/entity/auth.rb
78
+ - lib/mercadolibre/entity/billing_info.rb
76
79
  - lib/mercadolibre/entity/card_configuration.rb
77
80
  - lib/mercadolibre/entity/card_issuer.rb
78
81
  - lib/mercadolibre/entity/category.rb
79
82
  - lib/mercadolibre/entity/category_settings.rb
80
83
  - lib/mercadolibre/entity/city.rb
84
+ - lib/mercadolibre/entity/collector.rb
81
85
  - lib/mercadolibre/entity/country.rb
82
86
  - lib/mercadolibre/entity/currency.rb
83
87
  - lib/mercadolibre/entity/currency_conversion_ratio.rb
@@ -90,13 +94,20 @@ files:
90
94
  - lib/mercadolibre/entity/listing_price.rb
91
95
  - lib/mercadolibre/entity/listing_type.rb
92
96
  - lib/mercadolibre/entity/order.rb
97
+ - lib/mercadolibre/entity/order_coupon.rb
98
+ - lib/mercadolibre/entity/order_feedback.rb
93
99
  - lib/mercadolibre/entity/order_item.rb
100
+ - lib/mercadolibre/entity/order_shipping.rb
94
101
  - lib/mercadolibre/entity/payment.rb
95
102
  - lib/mercadolibre/entity/payment_method.rb
96
103
  - lib/mercadolibre/entity/payment_plan.rb
97
104
  - lib/mercadolibre/entity/payment_promotion.rb
98
105
  - lib/mercadolibre/entity/phone.rb
99
106
  - lib/mercadolibre/entity/question.rb
107
+ - lib/mercadolibre/entity/shipping_delivery.rb
108
+ - lib/mercadolibre/entity/shipping_item.rb
109
+ - lib/mercadolibre/entity/shipping_option.rb
110
+ - lib/mercadolibre/entity/shipping_speed.rb
100
111
  - lib/mercadolibre/entity/site.rb
101
112
  - lib/mercadolibre/entity/site_domain.rb
102
113
  - lib/mercadolibre/entity/site_trend.rb