ebay_ruby 0.0.1
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/Gemfile +8 -0
- data/README.md +45 -0
- data/Rakefile +2 -0
- data/lib/ebay_ruby.rb +6 -0
- data/lib/ebay_ruby/connect.rb +47 -0
- data/lib/ebay_ruby/ebay_find_item.rb +26 -0
- data/lib/ebay_ruby/ebay_item.rb +17 -0
- data/lib/ebay_ruby/version.rb +3 -0
- metadata +103 -0
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# EbayRuby
|
2
|
+
|
3
|
+
Ebay access finding API with getting all items.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'ebay_ruby'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install ebay_ruby
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
Find your App Id on ebay Account
|
22
|
+
|
23
|
+
$ require 'ebay_ruby'
|
24
|
+
$ c=EbayConnect.new("YOURAPPID")
|
25
|
+
|
26
|
+
Send two arguments keyword, number of entry per page
|
27
|
+
|
28
|
+
$ items = c.find_items_by_keywords("Harry Potter", 3)
|
29
|
+
$ items = c.find_items_by_category("CATEGORY_ID", 3)
|
30
|
+
$ item = c.find_items_by_product("ISBN/UPC/EAN", 3)
|
31
|
+
|
32
|
+
$ items.first.title
|
33
|
+
$ items.first.galleyImage
|
34
|
+
...
|
35
|
+
So on
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
## Contributing
|
40
|
+
|
41
|
+
1. Fork it ( https://github.com/[my-github-username]/ebay_ruby/fork )
|
42
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
43
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
44
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
45
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
data/lib/ebay_ruby.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
autoload :EbayFindItem, "ebay_ruby/ebay_find_item"
|
3
|
+
|
4
|
+
class EbayConnect
|
5
|
+
|
6
|
+
def initialize(app_id)
|
7
|
+
@app_id = app_id
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_reader :app_id, :build_uri
|
11
|
+
|
12
|
+
def get_connect(url)
|
13
|
+
response = Net::HTTP.get_response url
|
14
|
+
response.body
|
15
|
+
end
|
16
|
+
|
17
|
+
def find_items_by_keywords(search_keyword, per_page)
|
18
|
+
str = __method__.to_s.camelize
|
19
|
+
operation_name = str.gsub(str.first, str.first.downcase)
|
20
|
+
search_param = "keywords=#{URI::encode(search_keyword)}"
|
21
|
+
ebay_items = EbayFindItem.new(get_connect(build_uri(operation_name, search_param, per_page)))
|
22
|
+
ebay_items.all_items
|
23
|
+
end
|
24
|
+
|
25
|
+
def find_items_by_category(category_id, per_page)
|
26
|
+
str = __method__.to_s.camelize
|
27
|
+
operation_name = str.gsub(str.first, str.first.downcase)
|
28
|
+
search_param = "categoryId=#{category_id}"
|
29
|
+
ebay_items = EbayFindItem.new(get_connect(build_uri(operation_name, search_param, per_page)))
|
30
|
+
ebay_items.all_items
|
31
|
+
end
|
32
|
+
#productId can be ISBN,UPC,EAN
|
33
|
+
def find_items_by_product(product_id, per_page)
|
34
|
+
str = __method__.to_s.camelize
|
35
|
+
operation_name = str.gsub(str.first, str.first.downcase)
|
36
|
+
search_param = "productId=#{product_id}"
|
37
|
+
ebay_items = EbayFindItem.new(get_connect(build_uri(operation_name, search_param, per_page)))
|
38
|
+
ebay_items.all_items
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
private
|
43
|
+
def build_uri(operation_name, search_keyword, per_page)
|
44
|
+
uri_string = "http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=#{operation_name}&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=#{app_id}&GLOBAL-ID=EBAY-US&RESPONSE-DATA-FORMAT=JSON&#{search_keyword}&paginationInput.entriesPerPage=#{per_page.to_i}"
|
45
|
+
URI(uri_string)
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'json'
|
2
|
+
autoload :EbayItem, "ebay_ruby/ebay_item"
|
3
|
+
|
4
|
+
class EbayFindItem
|
5
|
+
|
6
|
+
def initialize(json)
|
7
|
+
@json = json
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_reader :json
|
11
|
+
|
12
|
+
def parse
|
13
|
+
JSON.parse(json).values.first
|
14
|
+
end
|
15
|
+
|
16
|
+
def all_items
|
17
|
+
total_items = []
|
18
|
+
parse.first["searchResult"].first["item"].each do |item|
|
19
|
+
ebay_item = EbayItem.new(item)
|
20
|
+
ebay_item.build_items_data
|
21
|
+
total_items << ebay_item
|
22
|
+
end
|
23
|
+
return total_items.flatten
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class EbayItem
|
2
|
+
|
3
|
+
def initialize(item)
|
4
|
+
@item = item
|
5
|
+
end
|
6
|
+
|
7
|
+
attr_reader :item
|
8
|
+
|
9
|
+
def build_items_data
|
10
|
+
item.keys.each do |attribute|
|
11
|
+
metaclass = class << self; self; end
|
12
|
+
metaclass.send(:define_method, "#{attribute}") do
|
13
|
+
return item[attribute]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ebay_ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Rajarshi Das
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2014-06-09 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.6'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.6'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: active_support
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
description: Get access to all ebay api fundamentals with fetch data, find item..many
|
63
|
+
more
|
64
|
+
email:
|
65
|
+
- rdasrubyonrails@gmail.com
|
66
|
+
executables: []
|
67
|
+
extensions: []
|
68
|
+
extra_rdoc_files: []
|
69
|
+
files:
|
70
|
+
- README.md
|
71
|
+
- Gemfile
|
72
|
+
- Rakefile
|
73
|
+
- lib/ebay_ruby.rb
|
74
|
+
- lib/ebay_ruby/ebay_find_item.rb
|
75
|
+
- lib/ebay_ruby/connect.rb
|
76
|
+
- lib/ebay_ruby/version.rb
|
77
|
+
- lib/ebay_ruby/ebay_item.rb
|
78
|
+
homepage: ''
|
79
|
+
licenses:
|
80
|
+
- MIT
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options: []
|
83
|
+
require_paths:
|
84
|
+
- lib
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ! '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
requirements: []
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 1.8.23
|
100
|
+
signing_key:
|
101
|
+
specification_version: 3
|
102
|
+
summary: Get access to all ebay api fundamentals
|
103
|
+
test_files: []
|