retailigence_ruby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/test/helper.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'test/unit'
2
+ require 'pry'
3
+ require 'vcr_setup'
4
+
5
+ require 'retailigence_ruby'
6
+
7
+ Retailigence.configure do |config|
8
+ config.api_key = ENV['RETAILIGENCE_API_KEY'] || 'retailigence_api_key'
9
+ config.production = false
10
+ end
@@ -0,0 +1,22 @@
1
+ require 'helper'
2
+
3
+ class TestInventory < Test::Unit::TestCase
4
+
5
+ def setup
6
+ VCR.use_cassette('inventory') do
7
+ @inventory = Retailigence::Inventory.fetch(
8
+ '6cd9f7a2-49de-4c2c-b5a6-7f4d13f9e89a', # Product ID
9
+ '869b02ce-4908-4339-8891-6404602ea7e4' # Location ID
10
+ )
11
+ end
12
+ end
13
+
14
+ def test_inventory
15
+ assert_equal 'USD', @inventory.currency
16
+ assert_equal '869b02ce-4908-4339-8891-6404602ea7e4', @inventory.location_id
17
+ assert_equal '6cd9f7a2-49de-4c2c-b5a6-7f4d13f9e89a', @inventory.product_id
18
+ assert_equal 'Xbox One', @inventory.product_name
19
+ assert_equal 'Out of stock', @inventory.quantity_text
20
+ assert_equal '499.99', @inventory.price
21
+ end
22
+ end
@@ -0,0 +1,48 @@
1
+ require 'helper'
2
+
3
+ class TestLocation < Test::Unit::TestCase
4
+ def setup
5
+ VCR.use_cassette('location_search') do
6
+ @results = Retailigence::Location.search(
7
+ userlocation: '37.3323,-122.0312',
8
+ requestorid: 'test',
9
+ keywords: 'Volkswagen'
10
+ )
11
+ end
12
+
13
+ @first_result = @results.first
14
+ @first_location = @first_result.locations.first
15
+ end
16
+
17
+ def test_search
18
+ assert_equal Retailigence::SearchResult, @results.class
19
+ end
20
+
21
+ def test_locations
22
+ assert_equal Retailigence::Location, @first_location.class
23
+ end
24
+
25
+ def test_distance
26
+ assert_equal 3.683537289443949, @first_location.distance.distance
27
+ assert_equal 'miles', @first_location.distance.units
28
+ end
29
+
30
+ def test_retailer
31
+ assert_equal 'Frys', @first_location.retailer.name
32
+ end
33
+
34
+ def test_location_coordinates
35
+ assert_equal 37.380241, @first_location.latitude
36
+ assert_equal -122.00187, @first_location.longitude
37
+ end
38
+
39
+ def test_address
40
+ address = @first_location.address
41
+
42
+ assert_equal '1077 E Arques Ave', address.address1
43
+ assert_equal 'Sunnyvale', address.city
44
+ assert_equal 'CA', address.state
45
+ assert_equal '94085', address.postal
46
+ assert_equal 'US', address.country
47
+ end
48
+ end
@@ -0,0 +1,30 @@
1
+ require 'helper'
2
+
3
+ class TestProduct < Test::Unit::TestCase
4
+
5
+ def setup
6
+ VCR.use_cassette('product_search') do
7
+ @results = Retailigence::Product.search(
8
+ userlocation: '37.3323,-122.0312',
9
+ requestorid: 'test',
10
+ name: 'Xbox One'
11
+ )
12
+ end
13
+
14
+ @product = @results.first
15
+ end
16
+
17
+ def test_search
18
+ assert_equal Retailigence::SearchResult, @results.class
19
+ end
20
+
21
+ def test_distance
22
+ assert_equal 'miles', @product.distance.units
23
+ end
24
+
25
+ def test_inventory
26
+ VCR.use_cassette('product_inventory') do
27
+ assert_equal Retailigence::Inventory, @product.inventory.class
28
+ end
29
+ end
30
+ end
data/test/vcr_setup.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'vcr'
2
+
3
+ VCR.configure do |c|
4
+ c.cassette_library_dir = 'test/cassettes'
5
+ c.hook_into :typhoeus
6
+ c.filter_sensitive_data('<API_KEY>') { ENV['RETAILIGENCE_API_KEY'] || 'retailigence_api_key' }
7
+ end
metadata ADDED
@@ -0,0 +1,166 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: retailigence_ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Drew Tempelmeyer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: vcr
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 2.6.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 2.6.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: typhoeus
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "<="
88
+ - !ruby/object:Gem::Version
89
+ version: 0.7.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "<="
95
+ - !ruby/object:Gem::Version
96
+ version: 0.7.0
97
+ description:
98
+ email:
99
+ - drewtemp@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - Gemfile
106
+ - LICENSE.txt
107
+ - README.md
108
+ - Rakefile
109
+ - lib/retailigence.rb
110
+ - lib/retailigence/address.rb
111
+ - lib/retailigence/configuration.rb
112
+ - lib/retailigence/distance.rb
113
+ - lib/retailigence/exceptions.rb
114
+ - lib/retailigence/image.rb
115
+ - lib/retailigence/inventory.rb
116
+ - lib/retailigence/location.rb
117
+ - lib/retailigence/model.rb
118
+ - lib/retailigence/product.rb
119
+ - lib/retailigence/retailer.rb
120
+ - lib/retailigence/search_result.rb
121
+ - lib/retailigence/version.rb
122
+ - lib/retailigence_ruby.rb
123
+ - retailigence_ruby.gemspec
124
+ - test/cassettes/inventory.yml
125
+ - test/cassettes/location_search.yml
126
+ - test/cassettes/product_inventory.yml
127
+ - test/cassettes/product_search.yml
128
+ - test/helper.rb
129
+ - test/test_inventory.rb
130
+ - test/test_location.rb
131
+ - test/test_product.rb
132
+ - test/vcr_setup.rb
133
+ homepage: https://github.com/drewtempelmeyer/retailigence-ruby
134
+ licenses:
135
+ - MIT
136
+ metadata: {}
137
+ post_install_message:
138
+ rdoc_options: []
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ requirements: []
152
+ rubyforge_project:
153
+ rubygems_version: 2.2.0
154
+ signing_key:
155
+ specification_version: 4
156
+ summary: Ruby library for interactiing with Retailigence.
157
+ test_files:
158
+ - test/cassettes/inventory.yml
159
+ - test/cassettes/location_search.yml
160
+ - test/cassettes/product_inventory.yml
161
+ - test/cassettes/product_search.yml
162
+ - test/helper.rb
163
+ - test/test_inventory.rb
164
+ - test/test_location.rb
165
+ - test/test_product.rb
166
+ - test/vcr_setup.rb