milo 0.0.6.alpha → 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.
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +1 -1
- data/README.md +23 -1
- data/lib/milo/main.rb +5 -13
- data/lib/milo/version.rb +1 -1
- data/spec/milo/product_spec.rb +2 -0
- metadata +8 -5
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
## Description
|
7
7
|
|
8
8
|
Track in real time the price and availability of every product carried by every location of every merchant through eBay Milo API.
|
9
|
+
More info about eBay Milo API https://www.x.com/developers/documentation-tools/milo/endpoints.html
|
9
10
|
|
10
11
|
## Installation
|
11
12
|
|
@@ -23,7 +24,28 @@ Or install it yourself as:
|
|
23
24
|
|
24
25
|
## Usage
|
25
26
|
|
26
|
-
|
27
|
+
First:
|
28
|
+
|
29
|
+
milo = Milo::Main.new("ec17621f92c4b199a7a041bfe27a0c00")
|
30
|
+
|
31
|
+
Get all products:
|
32
|
+
|
33
|
+
milo.get_products
|
34
|
+
|
35
|
+
Get product by id:
|
36
|
+
|
37
|
+
milo.get_product_by_id("20482374")
|
38
|
+
|
39
|
+
Get product by upc code:
|
40
|
+
|
41
|
+
milo.get_product_by_upc("037000185062")
|
42
|
+
|
43
|
+
More complex, find by id and pass show options for products:
|
44
|
+
|
45
|
+
milo.get_product_by_id("20482374", show: "PnamePminUpcImg45")
|
46
|
+
|
47
|
+
Note: Read about show flag here -> https://www.x.com/developers/documentation-tools/milo/endpoints.html#products-endpoint
|
48
|
+
|
27
49
|
|
28
50
|
## Contributing to Milo
|
29
51
|
|
data/lib/milo/main.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
module Milo
|
2
2
|
class Main
|
3
|
-
attr_accessor :main_url
|
3
|
+
attr_accessor :main_url
|
4
4
|
attr_reader :response_raw, :response
|
5
5
|
|
6
6
|
def initialize(key, options = {})
|
7
7
|
@key = key
|
8
8
|
@options = options
|
9
|
-
@format = 'json'
|
10
9
|
end
|
11
10
|
|
12
11
|
def main_url
|
@@ -15,20 +14,14 @@ module Milo
|
|
15
14
|
|
16
15
|
def make_request(end_url)
|
17
16
|
result_key = end_url.include?("?") ? "&key=#{@key}" : "?key=#{@key}"
|
18
|
-
curl = Curl::Easy.
|
19
|
-
|
20
|
-
if curl.body_str == "<error>A friendly explanation of what went wrong</error>"
|
21
|
-
return "string" #raise CouldNotAuthenticateYou
|
22
|
-
end
|
23
|
-
Response.new(curl, format)
|
17
|
+
curl = Curl::Easy.perform(main_url + end_url + result_key)
|
18
|
+
Response.new(curl)
|
24
19
|
end
|
25
20
|
|
26
21
|
class Response
|
22
|
+
attr_reader :status, :body, :headers_raw, :headers, :curl, :url
|
27
23
|
|
28
|
-
|
29
|
-
|
30
|
-
def initialize(curl, format)
|
31
|
-
@format=format
|
24
|
+
def initialize(curl)
|
32
25
|
@curl = curl
|
33
26
|
@url = curl.url
|
34
27
|
@status = curl.response_code
|
@@ -49,7 +42,6 @@ module Milo
|
|
49
42
|
end
|
50
43
|
@headers=hs
|
51
44
|
end
|
52
|
-
|
53
45
|
end
|
54
46
|
|
55
47
|
include Milo::Product
|
data/lib/milo/version.rb
CHANGED
data/spec/milo/product_spec.rb
CHANGED
@@ -11,6 +11,7 @@ describe Milo::Main, 'product api' do
|
|
11
11
|
curl.stub!(:perform)
|
12
12
|
curl.stub!(:header_str) { "\r\ntest: blah"}
|
13
13
|
curl.stub!(:response_code).and_return(200)
|
14
|
+
curl.stub!(:body_str).and_return("{\"pagination\": {\"total_results\": 1, \"per_page\": 30, \"total_pages\": 1, \"page\": 0}, \"products\": [{\"merchants\": [4483], \"min_price\": null, \"name\": \"REDI2SET 43\\\" x 14\\\" Wavy Glass Pattern Frameless Replacement Glass Block Window\", \"max_price\": null, \"product_id\": 20482374}]}")
|
14
15
|
curl
|
15
16
|
end
|
16
17
|
end
|
@@ -26,6 +27,7 @@ describe Milo::Main, 'product api' do
|
|
26
27
|
milo = Milo::Main.new(@key)
|
27
28
|
response = milo.get_product_by_id("20482374")
|
28
29
|
response.url.should == "https://api.x.com/milo/v3/products?product_ids=20482374&key=#{@key}"
|
30
|
+
response.body.should =~ /Wavy Glass Pattern Frameless Replacement Glass Block Window/
|
29
31
|
response.status.should == 200
|
30
32
|
end
|
31
33
|
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: milo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.6
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.6
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- victorhazbun87
|
@@ -133,13 +133,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
133
|
version: '0'
|
134
134
|
segments:
|
135
135
|
- 0
|
136
|
-
hash:
|
136
|
+
hash: -878125091368183299
|
137
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
|
-
- - ! '
|
140
|
+
- - ! '>='
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version:
|
142
|
+
version: '0'
|
143
|
+
segments:
|
144
|
+
- 0
|
145
|
+
hash: -878125091368183299
|
143
146
|
requirements: []
|
144
147
|
rubyforge_project:
|
145
148
|
rubygems_version: 1.8.24
|