mercadolibre 0.0.1 → 0.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4bda882833f219b09860591510737da06e9efc35
4
- data.tar.gz: 88f475983b507c41f431e2d8d347a89d245e632a
3
+ metadata.gz: 981ac206ea9f2d17f765be14e6c652b3b84ce142
4
+ data.tar.gz: ced98f838d44e8a5c123222fcc6348688bcdf25e
5
5
  SHA512:
6
- metadata.gz: cb07e39e79ff3269dbe9f076d7576f68a68d119055e277dc540c82295ebffc9f30a1eb3fad7b29c49c2380866502b276cf8046e54c80b4aa11d6a76960a44aff
7
- data.tar.gz: 8d9f250629040276e30574ff5667bb04f3b8d7ba6fce8e86abbed3f7430d7a11b97b99cef6f1ca8de2ca5918a520aed4f71c217cca707239b88c233f65218d14
6
+ metadata.gz: 67249600ddcd23a8d2d6ca4ee312292ce2a96d128008f25d00a645cf21b53c02046a18e2acb373ca71219b8ad468c7870e71ca265a9563fc3505cd69b16866f6
7
+ data.tar.gz: 7a3f5378a140d277fe6c931e57d0fc2cec4e7c3c5b626ab374ec0d4384f5dfffa3379188444e40c099ce36ef596571acd3f1f84864324ba7394d266802941cdf
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
1
  ## v0.0.1
2
2
 
3
3
  * Initial release
4
+
5
+ ## v0.0.2
6
+
7
+ * Added locations methods
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Mercadolibre
2
2
 
3
- TODO: Write a gem description
3
+ Implementation of meli API to access MercadoLibre
4
4
 
5
5
  ## Installation
6
6
 
@@ -19,11 +19,3 @@ Or install it yourself as:
19
19
  ## Usage
20
20
 
21
21
  TODO: Write usage instructions here
22
-
23
- ## Contributing
24
-
25
- 1. Fork it ( http://github.com/<my-github-username>/mercadolibre/fork )
26
- 2. Create your feature branch (`git checkout -b my-new-feature`)
27
- 3. Commit your changes (`git commit -am 'Add some feature'`)
28
- 4. Push to the branch (`git push origin my-new-feature`)
29
- 5. Create new Pull Request
data/lib/mercadolibre.rb CHANGED
@@ -3,6 +3,10 @@ require "mercadolibre/version"
3
3
  # entities
4
4
  require "mercadolibre/entity/answer"
5
5
  require "mercadolibre/entity/auth"
6
+ require "mercadolibre/entity/city"
7
+ require "mercadolibre/entity/country"
8
+ require "mercadolibre/entity/currency"
9
+ require "mercadolibre/entity/currency_conversion_ratio"
6
10
  require "mercadolibre/entity/feedback"
7
11
  require "mercadolibre/entity/item"
8
12
  require "mercadolibre/entity/item_picture"
@@ -11,10 +15,12 @@ require "mercadolibre/entity/order_item"
11
15
  require "mercadolibre/entity/payment"
12
16
  require "mercadolibre/entity/phone"
13
17
  require "mercadolibre/entity/question"
18
+ require "mercadolibre/entity/state"
14
19
  require "mercadolibre/entity/user"
15
20
  # core
16
21
  require "mercadolibre/core/auth"
17
22
  require "mercadolibre/core/items"
23
+ require "mercadolibre/core/locations"
18
24
  require "mercadolibre/core/orders"
19
25
  require "mercadolibre/core/questions"
20
26
  require "mercadolibre/core/users"
@@ -14,6 +14,7 @@ module Mercadolibre
14
14
 
15
15
  include Mercadolibre::Core::Auth
16
16
  include Mercadolibre::Core::Users
17
+ include Mercadolibre::Core::Locations
17
18
  include Mercadolibre::Core::Items
18
19
  include Mercadolibre::Core::Questions
19
20
  include Mercadolibre::Core::Orders
@@ -0,0 +1,53 @@
1
+ module Mercadolibre
2
+ module Core
3
+ module Locations
4
+ def get_countries
5
+ results = get_request('/countries')
6
+
7
+ results[:body].map { |r| Mercadolibre::Entity::Country.new(r) }
8
+ end
9
+
10
+ def get_country(country_id)
11
+ result = get_request("/countries/#{country_id}")
12
+
13
+ Mercadolibre::Entity::Country.new(result[:body])
14
+ end
15
+
16
+ def get_state(state_id)
17
+ result = get_request("/states/#{state_id}")
18
+
19
+ Mercadolibre::Entity::State.new(result[:body])
20
+ end
21
+
22
+ def get_city(city_id)
23
+ result = get_request("/cities/#{city_id}")
24
+
25
+ Mercadolibre::Entity::City.new(result[:body])
26
+ end
27
+
28
+ def get_currencies
29
+ results = get_request('/currencies')
30
+
31
+ results[:body].map { |r| Mercadolibre::Entity::Currency.new(r) }
32
+ end
33
+
34
+ def get_currency(currency_id)
35
+ result = get_request("/currencies/#{currency_id}")
36
+
37
+ Mercadolibre::Entity::Currency.new(result[:body])
38
+ end
39
+
40
+ def currency_convertion_rate(currency_from, currency_to)
41
+ filters = { from: currency_from, to: currency_to }
42
+ result = get_request('/currency_conversions/search', filters)
43
+
44
+ Mercadolibre::Entity::Currency.new({
45
+ currency_from: currency_from,
46
+ currency_to: currency_to,
47
+ ratio: result[:body]['ratio'],
48
+ mercado_pago_ratio: result[:body]['mercado_pago_ratio']
49
+ })
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,27 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class City
4
+ def self.attr_list
5
+ [:id, :name, :state, :country]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ attributes.each do |k, v|
12
+ if k.to_s == 'state'
13
+ self.state = State.new(v)
14
+ elsif k.to_s == 'country'
15
+ self.country = Country.new(v)
16
+ else
17
+ self.send("#{k}=", v) if self.respond_to?(k)
18
+ end
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ attr_writer *attr_list
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,26 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class Country
4
+ def self.attr_list
5
+ [:id, :name, :locale, :currency_id, :decimal_separator,
6
+ :thousands_separator, :time_zone, :states]
7
+ end
8
+
9
+ attr_reader *attr_list
10
+
11
+ def initialize(attributes={})
12
+ attributes.each do |k, v|
13
+ if k.to_s == 'states'
14
+ self.states = v.map { |x| State.new(x) }
15
+ else
16
+ self.send("#{k}=", v) if self.respond_to?(k)
17
+ end
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ attr_writer *attr_list
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class Currency
4
+ def self.attr_list
5
+ [:id, :description, :symbol, :decimal_places]
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 CurrencyConversionRatio
4
+ def self.attr_list
5
+ [:currency_from, :currency_to, :currency_id, :ratio, :mercado_pago_ratio]
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,27 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class State
4
+ def self.attr_list
5
+ [:id, :name, :country, :cities]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ attributes.each do |k, v|
12
+ if k.to_s == 'cities'
13
+ self.cities = v.map { |x| City.new(x) }
14
+ elsif k.to_s == 'country'
15
+ self.country = Country.new(v)
16
+ else
17
+ self.send("#{k}=", v) if self.respond_to?(k)
18
+ end
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ attr_writer *attr_list
25
+ end
26
+ end
27
+ end
@@ -1,3 +1,3 @@
1
1
  module Mercadolibre
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
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.0.1
4
+ version: 0.0.2
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-03-12 00:00:00.000000000 Z
11
+ date: 2014-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,11 +66,16 @@ files:
66
66
  - lib/mercadolibre/api.rb
67
67
  - lib/mercadolibre/core/auth.rb
68
68
  - lib/mercadolibre/core/items.rb
69
+ - lib/mercadolibre/core/locations.rb
69
70
  - lib/mercadolibre/core/orders.rb
70
71
  - lib/mercadolibre/core/questions.rb
71
72
  - lib/mercadolibre/core/users.rb
72
73
  - lib/mercadolibre/entity/answer.rb
73
74
  - lib/mercadolibre/entity/auth.rb
75
+ - lib/mercadolibre/entity/city.rb
76
+ - lib/mercadolibre/entity/country.rb
77
+ - lib/mercadolibre/entity/currency.rb
78
+ - lib/mercadolibre/entity/currency_conversion_ratio.rb
74
79
  - lib/mercadolibre/entity/feedback.rb
75
80
  - lib/mercadolibre/entity/item.rb
76
81
  - lib/mercadolibre/entity/item_picture.rb
@@ -79,6 +84,7 @@ files:
79
84
  - lib/mercadolibre/entity/payment.rb
80
85
  - lib/mercadolibre/entity/phone.rb
81
86
  - lib/mercadolibre/entity/question.rb
87
+ - lib/mercadolibre/entity/state.rb
82
88
  - lib/mercadolibre/entity/user.rb
83
89
  - lib/mercadolibre/version.rb
84
90
  homepage: https://github.com/unformattmh/mercadolibre