tesco_rb 0.1.0 → 0.2.0

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: b25b0f2276329359cb2fcb0ea97b1a50467d7daa
4
- data.tar.gz: 56f845caee7bf60a4f4b56ffe6405359b8960d1c
3
+ metadata.gz: fcff709eff851b88df22d6cc9624d5eae18a604e
4
+ data.tar.gz: 4e04e3a4673b7a745e349d12a346e8e6f5225a92
5
5
  SHA512:
6
- metadata.gz: ff8709a6d91996bbd0fb0b75f98c3f9c842e03f1daadfef25c4007aa70639fb51f0a81ecfbfa773dd2bd4d1b415b9fa96f1fea96d7ae867aa4833297cc70d798
7
- data.tar.gz: bdc43d6321a9ed18ce35238da811e8dd7c9f88bc0a924dcdd45ef1b98f7a73acc6c5531d0abfb3b573dc8aa8531db7c33553745bc17ae454f77ba0aa40639b5b
6
+ metadata.gz: 43fd8bd7d29e112fcb4b86db4e1617ce60faa35c24c9f824a6bcd240c3713d312b55eb8cdcad08b90f0c1087a9e765ee14ed0585581f2414edf2f0336ce08c45
7
+ data.tar.gz: 52d4822369f269367f5cc0461c5f15a6b16de1f59602fb79296be4b669299b52267e1e95db29ef2c816fc7eac6613865c09fe2cfa5db67abd36048380f2aa589
data/README.org CHANGED
@@ -1,4 +1,8 @@
1
1
  * TescoRb
2
+ A ruby gem for interacting with the [[https://devportal.tescolabs.com/docs/services/][Tesco Api]].
3
+ Currently it supports [[https://devportal.tescolabs.com/docs/services/56c73b1bf205fd0ed81dbe7a][Grocery]] & [[https://devportal.tescolabs.com/docs/services/5731ed21611a4b2968547c5f][Store Location]] end points.
4
+
5
+
2
6
  ** Usage Examples:
3
7
 
4
8
  #+BEGIN_SRC ruby
@@ -35,8 +39,13 @@ $ bundle
35
39
  $ gem install tesco_rb
36
40
  #+END_SRC
37
41
 
38
-
39
- *** Todos
40
- - `client.item.search('bananas')` syntax; add `.search` method
42
+ *** Todo
43
+ - ~client.item.search('bananas')~ syntax; add ~.search~ method
41
44
  - This would involve creating new 'items' holding class (currently just an Array)
42
45
  - DRY / subclass requesters
46
+ - Sort out travis CI
47
+ - More examples about returned objects??
48
+ - OpeningHours Object
49
+ - GeoLocation Object
50
+ - Get rid of linting errors
51
+ - Think about exceptions / error handling
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
3
 
4
4
  Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
5
+ t.libs << 'test'
6
+ t.libs << 'lib'
7
7
  t.test_files = FileList['test/**/*_test.rb']
8
8
  end
9
9
 
10
- task :default => :test
10
+ task default: :test
@@ -1,5 +1,5 @@
1
- require 'tesco_rb/store_requester'
2
- require 'tesco_rb/item_requester'
1
+ require_relative 'store_requester'
2
+ require_relative 'item_requester'
3
3
  require 'httparty'
4
4
 
5
5
  module TescoRb
@@ -11,6 +11,7 @@ module TescoRb
11
11
  base_uri 'https://dev.tescolabs.com/'
12
12
 
13
13
  def initialize(api_key)
14
+ fail 'invalid API Key' unless api_key.is_a?(String) && api_key.length > 10
14
15
  @api_key = api_key
15
16
  end
16
17
 
@@ -28,7 +29,7 @@ module TescoRb
28
29
 
29
30
  def default_options
30
31
  { headers:
31
- { 'Ocp-Apim-Subscription-Key' => ENV['TESCO_API_KEY'] } }
32
+ { 'Ocp-Apim-Subscription-Key' => api_key } }
32
33
  end
33
34
  end
34
35
  end
@@ -9,8 +9,6 @@ module TescoRb
9
9
  products.map do |json|
10
10
  Item.new(json)
11
11
  end
12
- rescue => e
13
- p e
14
12
  end
15
13
 
16
14
  private
@@ -23,15 +21,6 @@ module TescoRb
23
21
 
24
22
  def request(client, hash_args)
25
23
  client.get '/grocery/products', query: hash_args
26
- rescue => e
27
- p e
28
- end
29
-
30
- def parse_json(request)
31
- JSON.parse(request.body)
32
- rescue JSON::ParserError => e
33
- p e
34
- { 'results' => [] }
35
24
  end
36
25
 
37
26
  end
@@ -31,8 +31,5 @@ module TescoRb
31
31
  end
32
32
  end
33
33
 
34
- # def set_fields
35
- # fields.each { |field| attr_reader field }
36
- # end
37
34
  end
38
35
  end
@@ -4,10 +4,9 @@ module TescoRb
4
4
  class StoreRequester
5
5
  def create_representations(client, hash_args)
6
6
  response = request(client, update_args(hash_args))
7
- json_response = parse_json(response)
8
- return [] unless json_response.is_a?(Hash) &&
9
- json_response['results']
10
- json_response['results'].map do |json|
7
+ # Raise Errors here?
8
+ return [] unless response['results']
9
+ response['results'].map do |json|
11
10
  Store.new(json.fetch('location'))
12
11
  end
13
12
  end
@@ -24,15 +23,6 @@ module TescoRb
24
23
 
25
24
  def request(client, hash_args)
26
25
  client.get '/locations/search', query: hash_args
27
- rescue => e
28
- p e
29
- end
30
-
31
- def parse_json(request)
32
- JSON.parse(request.body)
33
- rescue JSON::ParserError => e
34
- p e
35
- { 'results' => [] }
36
26
  end
37
27
 
38
28
  end
@@ -1,3 +1,3 @@
1
1
  module TescoRb
2
- VERSION = "0.1.0"
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/tesco_rb.rb CHANGED
@@ -1,12 +1,12 @@
1
- require "tesco_rb/version"
2
- require "tesco_rb/client"
3
- require "tesco_rb/store"
4
- require "tesco_rb/store_requester"
5
- require "tesco_rb/representation_helper"
1
+ require_relative 'tesco_rb/version'
2
+ require_relative 'tesco_rb/client'
3
+ # require_relative 'tesco_rb/store'
4
+ # require_relative 'tesco_rb/store_requester'
5
+ # require_relative 'tesco_rb/representation_helper'
6
6
 
7
- # Wrapper for the tescolabs api:
8
- # https://devportal.tescolabs.com/docs/services
9
-
10
- # module TescoRb
11
- # # Your code goes here...
12
- # end
7
+ # The entry point to this gem: TescoRb.new(API_KEY)
8
+ module TescoRb
9
+ def self.new(api_key)
10
+ Client.new(api_key)
11
+ end
12
+ end
data/tesco_rb.gemspec CHANGED
@@ -10,13 +10,15 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ['wmmclarke@gmail.com']
11
11
 
12
12
  spec.summary = 'A wrapper to the Tesco API'
13
+ spec.description = 'Navigate the Tesco API: https://devportal.tescolabs.com/docs/services/'
14
+
13
15
  spec.homepage = 'https://github.com/wmmc/tesco_rb'
14
16
  spec.license = 'MIT'
15
17
 
16
18
  if spec.respond_to?(:metadata)
17
- spec.metadata["allowed_push_host"] = 'https://rubygems.org'
19
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
18
20
  else
19
- raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
21
+ raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
20
22
  end
21
23
 
22
24
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -29,11 +31,10 @@ Gem::Specification.new do |spec|
29
31
  spec.add_runtime_dependency 'httparty', '~> 0.14.0'
30
32
 
31
33
  spec.add_development_dependency 'bundler', '~> 1.12'
32
- spec.add_development_dependency 'pry-byebug', '~> 3.4.0'
34
+ spec.add_development_dependency 'pry-byebug', '~> 3.4', '>= 3.4.0'
33
35
  spec.add_development_dependency 'rake', '~> 10.0'
34
36
  spec.add_development_dependency 'minitest', '~> 5.0'
35
- # spec.add_development_dependency 'minitest-vcr', '~> 1.4.0'
36
- spec.add_development_dependency 'vcr', '~> 3.0.3'
37
- spec.add_development_dependency 'webmock', '~> 2.1.0'
38
- spec.add_development_dependency 'dotenv', '~> 2.1.1'
37
+ spec.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.3'
38
+ spec.add_development_dependency 'webmock', '~> 2.1', '>= 2.1.0'
39
+ spec.add_development_dependency 'dotenv', '~> 2.1', '>= 2.1.1'
39
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tesco_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Clarke
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-20 00:00:00.000000000 Z
11
+ date: 2016-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -43,6 +43,9 @@ dependencies:
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.4'
48
+ - - ">="
46
49
  - !ruby/object:Gem::Version
47
50
  version: 3.4.0
48
51
  type: :development
@@ -50,6 +53,9 @@ dependencies:
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
55
  - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '3.4'
58
+ - - ">="
53
59
  - !ruby/object:Gem::Version
54
60
  version: 3.4.0
55
61
  - !ruby/object:Gem::Dependency
@@ -85,6 +91,9 @@ dependencies:
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.0'
96
+ - - ">="
88
97
  - !ruby/object:Gem::Version
89
98
  version: 3.0.3
90
99
  type: :development
@@ -92,6 +101,9 @@ dependencies:
92
101
  version_requirements: !ruby/object:Gem::Requirement
93
102
  requirements:
94
103
  - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '3.0'
106
+ - - ">="
95
107
  - !ruby/object:Gem::Version
96
108
  version: 3.0.3
97
109
  - !ruby/object:Gem::Dependency
@@ -99,6 +111,9 @@ dependencies:
99
111
  requirement: !ruby/object:Gem::Requirement
100
112
  requirements:
101
113
  - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '2.1'
116
+ - - ">="
102
117
  - !ruby/object:Gem::Version
103
118
  version: 2.1.0
104
119
  type: :development
@@ -106,6 +121,9 @@ dependencies:
106
121
  version_requirements: !ruby/object:Gem::Requirement
107
122
  requirements:
108
123
  - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '2.1'
126
+ - - ">="
109
127
  - !ruby/object:Gem::Version
110
128
  version: 2.1.0
111
129
  - !ruby/object:Gem::Dependency
@@ -113,6 +131,9 @@ dependencies:
113
131
  requirement: !ruby/object:Gem::Requirement
114
132
  requirements:
115
133
  - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: '2.1'
136
+ - - ">="
116
137
  - !ruby/object:Gem::Version
117
138
  version: 2.1.1
118
139
  type: :development
@@ -120,9 +141,12 @@ dependencies:
120
141
  version_requirements: !ruby/object:Gem::Requirement
121
142
  requirements:
122
143
  - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '2.1'
146
+ - - ">="
123
147
  - !ruby/object:Gem::Version
124
148
  version: 2.1.1
125
- description:
149
+ description: 'Navigate the Tesco API: https://devportal.tescolabs.com/docs/services/'
126
150
  email:
127
151
  - wmmclarke@gmail.com
128
152
  executables: []