mercadolibre 0.0.5 → 0.0.6
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/mercadolibre.rb +3 -0
- data/lib/mercadolibre/core/categories_and_listings.rb +24 -3
- data/lib/mercadolibre/entity/category.rb +4 -1
- data/lib/mercadolibre/entity/category_settings.rb +26 -0
- data/lib/mercadolibre/entity/listing_exposure.rb +21 -0
- data/lib/mercadolibre/entity/listing_price.rb +26 -0
- data/lib/mercadolibre/version.rb +1 -1
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b60ec4c7008916fec74f5ad3075b5b498d7ac5a8
|
4
|
+
data.tar.gz: e353fdc23d5390b9b075b1a5fc9a0ed27182e359
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64223dc129fa6fd0e56099a8a2320c8e28182b49827a9a96eab9d55b33c8aea12c87606fc479434566db351b2e2e6a96ce306e735ef2c5a3a4bd578301c14ba7
|
7
|
+
data.tar.gz: e52819ae03da6b4460a72220136d62168e73f076da5ccddd67d22cd43b598b871d07fc0d7e00a2518a3990395c8e0fb60cf0530ab76b2499369a20fbfdf58917
|
data/CHANGELOG.md
CHANGED
data/lib/mercadolibre.rb
CHANGED
@@ -4,6 +4,7 @@ require "mercadolibre/version"
|
|
4
4
|
require "mercadolibre/entity/answer"
|
5
5
|
require "mercadolibre/entity/auth"
|
6
6
|
require "mercadolibre/entity/category"
|
7
|
+
require "mercadolibre/entity/category_settings"
|
7
8
|
require "mercadolibre/entity/city"
|
8
9
|
require "mercadolibre/entity/country"
|
9
10
|
require "mercadolibre/entity/currency"
|
@@ -12,6 +13,8 @@ require "mercadolibre/entity/feedback"
|
|
12
13
|
require "mercadolibre/entity/item"
|
13
14
|
require "mercadolibre/entity/item_description"
|
14
15
|
require "mercadolibre/entity/item_picture"
|
16
|
+
require "mercadolibre/entity/listing_exposure"
|
17
|
+
require "mercadolibre/entity/listing_price"
|
15
18
|
require "mercadolibre/entity/listing_type"
|
16
19
|
require "mercadolibre/entity/order"
|
17
20
|
require "mercadolibre/entity/order_item"
|
@@ -19,10 +19,25 @@ module Mercadolibre
|
|
19
19
|
Mercadolibre::Entity::SiteDomain.new(result[:body])
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
23
|
-
results = get_request("/sites/#{site_id}/
|
22
|
+
def get_listing_types(site_id)
|
23
|
+
results = get_request("/sites/#{site_id}/listing_types")
|
24
24
|
|
25
|
-
results[:body].map { |r| Mercadolibre::Entity::
|
25
|
+
results[:body].map { |r| Mercadolibre::Entity::ListingType.new(r) }
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_listing_exposures(site_id)
|
29
|
+
results = get_request("/sites/#{site_id}/listing_exposures")
|
30
|
+
|
31
|
+
results[:body].map { |r| Mercadolibre::Entity::ListingExposure.new(r) }
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_listing_prices(filters)
|
35
|
+
valid_filters = ['price', 'listing_type_id', 'quantity', 'category_id', 'currency_id']
|
36
|
+
filters.keep_if { |k,v| valid_filters.include?(k.to_s) }
|
37
|
+
|
38
|
+
results = get_request("/sites/#{site_id}/listing_prices", filters)
|
39
|
+
|
40
|
+
results[:body].map { |r| Mercadolibre::Entity::ListingPrice.new(r) }
|
26
41
|
end
|
27
42
|
|
28
43
|
def get_site_categories(site_id)
|
@@ -30,6 +45,12 @@ module Mercadolibre
|
|
30
45
|
|
31
46
|
results[:body].map { |r| Mercadolibre::Entity::Category.new(r) }
|
32
47
|
end
|
48
|
+
|
49
|
+
def get_category(category_id)
|
50
|
+
result = get_request("/categories/#{category_id}")
|
51
|
+
|
52
|
+
Mercadolibre::Entity::Category.new(result[:body])
|
53
|
+
end
|
33
54
|
end
|
34
55
|
end
|
35
56
|
end
|
@@ -2,7 +2,8 @@ module Mercadolibre
|
|
2
2
|
module Entity
|
3
3
|
class Category
|
4
4
|
def self.attr_list
|
5
|
-
[:id, :name, :
|
5
|
+
[:id, :name, :picture, :permalink, :total_items_in_this_category,
|
6
|
+
:path_from_root, :children_categories, :attribute_types, :settings]
|
6
7
|
end
|
7
8
|
|
8
9
|
attr_reader *attr_list
|
@@ -11,6 +12,8 @@ module Mercadolibre
|
|
11
12
|
attributes.each do |k, v|
|
12
13
|
if ['path_from_root', 'children_categories'].include?(k.to_s)
|
13
14
|
self.state = v.map { |x| Category.new(x) }
|
15
|
+
elsif k.to_s == 'settings'
|
16
|
+
self.settings = CategorySettings.new(v)
|
14
17
|
else
|
15
18
|
self.send("#{k}=", v) if self.respond_to?(k)
|
16
19
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Entity
|
3
|
+
class CategorySettings
|
4
|
+
def self.attr_list
|
5
|
+
[:adult_content, :buying_allowed, :buying_modes, :coverage_areas, :currencies,
|
6
|
+
:fragile, :immediate_payment, :item_conditions, :items_reviews_allowed, :listing_allowed,
|
7
|
+
:max_description_length, :max_pictures_per_item, :max_sub_title_length, :max_title_length,
|
8
|
+
:maximum_price, :minimum_price, :mirror_category, :price, :restrictions, :rounded_address,
|
9
|
+
:seller_contact, :shipping_modes, :shipping_options, :shipping_profile,
|
10
|
+
:show_contact_information, :simple_shipping, :stock, :tags, :vip_subdomain]
|
11
|
+
end
|
12
|
+
|
13
|
+
attr_reader *attr_list
|
14
|
+
|
15
|
+
def initialize(attributes={})
|
16
|
+
attributes.each do |k, v|
|
17
|
+
self.send("#{k}=", v) if self.respond_to?(k)
|
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 ListingExposure
|
4
|
+
def self.attr_list
|
5
|
+
[:id, :name, :home_page, :category_home_page, :advertising_on_listing_page, :priority_in_search]
|
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,26 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Entity
|
3
|
+
class ListingPrice
|
4
|
+
def self.attr_list
|
5
|
+
[:listing_type_id, :listing_type_name, :listing_exposure, :requires_picture,
|
6
|
+
:currency_id, :listing_fee_amount, :sale_fee_amount, :free_relist, :stop_time]
|
7
|
+
end
|
8
|
+
|
9
|
+
attr_reader *attr_list
|
10
|
+
|
11
|
+
def initialize(attributes={})
|
12
|
+
attributes.each do |k, v|
|
13
|
+
if k.to_s == 'stop_time'
|
14
|
+
self.stop_time = Time.parse(v)
|
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
|
data/lib/mercadolibre/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mercadolibre
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matias Hick
|
@@ -74,6 +74,7 @@ files:
|
|
74
74
|
- lib/mercadolibre/entity/answer.rb
|
75
75
|
- lib/mercadolibre/entity/auth.rb
|
76
76
|
- lib/mercadolibre/entity/category.rb
|
77
|
+
- lib/mercadolibre/entity/category_settings.rb
|
77
78
|
- lib/mercadolibre/entity/city.rb
|
78
79
|
- lib/mercadolibre/entity/country.rb
|
79
80
|
- lib/mercadolibre/entity/currency.rb
|
@@ -82,6 +83,8 @@ files:
|
|
82
83
|
- lib/mercadolibre/entity/item.rb
|
83
84
|
- lib/mercadolibre/entity/item_description.rb
|
84
85
|
- lib/mercadolibre/entity/item_picture.rb
|
86
|
+
- lib/mercadolibre/entity/listing_exposure.rb
|
87
|
+
- lib/mercadolibre/entity/listing_price.rb
|
85
88
|
- lib/mercadolibre/entity/listing_type.rb
|
86
89
|
- lib/mercadolibre/entity/order.rb
|
87
90
|
- lib/mercadolibre/entity/order_item.rb
|