gman_client 0.0.6 → 0.0.7

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: 6d3ad75028afbb8ab92e87f6badbe28f0e94aac0
4
- data.tar.gz: 1ab474491bd13cc66214e54a537c1743d3514f7e
3
+ metadata.gz: 09ab49afdc0b9bd1a69d929bd9da2ed484faff8f
4
+ data.tar.gz: 87c0f0b09a018eff03718390227c990774261fec
5
5
  SHA512:
6
- metadata.gz: de86b393ec5bef99c32f9e49802ca9c3e65d332b175f74a4dc2b22d8dc424c6e89c715e7f1905317ae05f49ea86679e1eb423e7df1ba347aac5cf1ec02c837ce
7
- data.tar.gz: fcbb0caa9331f5af1f50125f752ebaed02e6cd83ee7ab97aca5e1cb92fd20dc14cc87092ea3f33a96e85f77d08590a68a6e2b63bb056c80c7978d0e2dfed4607
6
+ metadata.gz: d1d861ede79bcc0de351a0dd185f69461b347a7325a0fcfc5df10b64041eac862f33e8daa8280ebf2d02c82f5c7366ebc0d47acd93c57289df04a8179d2e4e20
7
+ data.tar.gz: cfd1cdddb8afa17d49d2e3f024f7d1d392dd1bf2cb829c1500251fb94eb5e0c97cf533099623ed5a64f0372728d0b91d56aa262b2ad83f4e290cf3ad0e894c18
data/.gitignore CHANGED
@@ -6,7 +6,7 @@
6
6
  /doc/
7
7
  /spec/reports/
8
8
  /tmp/
9
- .idea
9
+ .rspec
10
10
 
11
11
  *.bundle
12
12
  *.so
data/.hound.yml ADDED
@@ -0,0 +1,6 @@
1
+ ruby:
2
+ enabled: true
3
+ config_file: .rubocop.yml
4
+
5
+ coffee_script:
6
+ enabled: true
data/.rspec CHANGED
@@ -1,2 +1 @@
1
1
  --color
2
- --require spec_helper
data/.rubocop.yml CHANGED
@@ -1,9 +1,249 @@
1
- Style/HashSyntax:
2
- EnforcedStyle: hash_rockets
3
- SupportedStyles:
4
- - ruby19
5
- - hash_rockets
6
-
7
1
  AllCops:
8
- Exclude:
9
- - gman_client.gemspec
2
+ Exclude:
3
+ - "vendor/**/*"
4
+ - "db/schema.rb"
5
+ UseCache: false
6
+ Style/CollectionMethods:
7
+ Description: Preferred collection methods.
8
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#map-find-select-reduce-size
9
+ Enabled: true
10
+ PreferredMethods:
11
+ collect: map
12
+ collect!: map!
13
+ find: detect
14
+ find_all: select
15
+ reduce: inject
16
+ Style/DotPosition:
17
+ Description: Checks the position of the dot in multi-line method calls.
18
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains
19
+ Enabled: true
20
+ EnforcedStyle: leading
21
+ SupportedStyles:
22
+ - leading
23
+ - trailing
24
+ Style/FileName:
25
+ Description: Use snake_case for source file names.
26
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-files
27
+ Enabled: false
28
+ Exclude: []
29
+ Style/GuardClause:
30
+ Description: Check for conditionals that can be replaced with guard clauses
31
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals
32
+ Enabled: false
33
+ MinBodyLength: 1
34
+ Style/IfUnlessModifier:
35
+ Description: Favor modifier if/unless usage when you have a single-line body.
36
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier
37
+ Enabled: false
38
+ MaxLineLength: 80
39
+ Style/OptionHash:
40
+ Description: Don't use option hashes when you can use keyword arguments.
41
+ Enabled: false
42
+ Style/PercentLiteralDelimiters:
43
+ Description: Use `%`-literal delimiters consistently
44
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-literal-braces
45
+ Enabled: false
46
+ PreferredDelimiters:
47
+ "%": "()"
48
+ "%i": "()"
49
+ "%q": "()"
50
+ "%Q": "()"
51
+ "%r": "{}"
52
+ "%s": "()"
53
+ "%w": "()"
54
+ "%W": "()"
55
+ "%x": "()"
56
+ Style/PredicateName:
57
+ Description: Check the names of predicate methods.
58
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark
59
+ Enabled: true
60
+ NamePrefix:
61
+ - is_
62
+ - has_
63
+ - have_
64
+ NamePrefixBlacklist:
65
+ - is_
66
+ Exclude:
67
+ - spec/**/*
68
+ Style/RaiseArgs:
69
+ Description: Checks the arguments passed to raise/fail.
70
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#exception-class-messages
71
+ Enabled: false
72
+ EnforcedStyle: exploded
73
+ SupportedStyles:
74
+ - compact
75
+ - exploded
76
+ Style/SignalException:
77
+ Description: Checks for proper usage of fail and raise.
78
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#fail-method
79
+ Enabled: false
80
+ EnforcedStyle: semantic
81
+ SupportedStyles:
82
+ - only_raise
83
+ - only_fail
84
+ - semantic
85
+ Style/SingleLineBlockParams:
86
+ Description: Enforces the names of some block params.
87
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#reduce-blocks
88
+ Enabled: false
89
+ Methods:
90
+ - reduce:
91
+ - a
92
+ - e
93
+ - inject:
94
+ - a
95
+ - e
96
+ Style/SingleLineMethods:
97
+ Description: Avoid single-line methods.
98
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-single-line-methods
99
+ Enabled: false
100
+ AllowIfMethodIsEmpty: true
101
+ Style/StringLiterals:
102
+ Description: Checks if uses of quotes match the configured preference.
103
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-string-literals
104
+ Enabled: true
105
+ EnforcedStyle: single_quotes
106
+ SupportedStyles:
107
+ - single_quotes
108
+ - double_quotes
109
+ Style/StringLiteralsInInterpolation:
110
+ Description: Checks if uses of quotes inside expressions in interpolated strings
111
+ match the configured preference.
112
+ Enabled: true
113
+ EnforcedStyle: single_quotes
114
+ SupportedStyles:
115
+ - single_quotes
116
+ - double_quotes
117
+ Style/TrailingCommaInArguments:
118
+ Description: 'Checks for trailing comma in argument lists.'
119
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
120
+ Enabled: false
121
+ EnforcedStyleForMultiline: no_comma
122
+ SupportedStyles:
123
+ - comma
124
+ - consistent_comma
125
+ - no_comma
126
+ Style/TrailingCommaInLiteral:
127
+ Description: 'Checks for trailing comma in array and hash literals.'
128
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
129
+ Enabled: false
130
+ EnforcedStyleForMultiline: no_comma
131
+ SupportedStyles:
132
+ - comma
133
+ - consistent_comma
134
+ - no_comma
135
+ Metrics/AbcSize:
136
+ Description: A calculated magnitude based on number of assignments, branches, and
137
+ conditions.
138
+ Enabled: false
139
+ Max: 15
140
+ Metrics/ClassLength:
141
+ Description: Avoid classes longer than 100 lines of code.
142
+ Enabled: false
143
+ CountComments: false
144
+ Max: 100
145
+ Metrics/ModuleLength:
146
+ CountComments: false
147
+ Max: 100
148
+ Description: Avoid modules longer than 100 lines of code.
149
+ Enabled: false
150
+ Metrics/CyclomaticComplexity:
151
+ Description: A complexity metric that is strongly correlated to the number of test
152
+ cases needed to validate a method.
153
+ Enabled: false
154
+ Max: 6
155
+ Metrics/MethodLength:
156
+ Description: Avoid methods longer than 10 lines of code.
157
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#short-methods
158
+ Enabled: false
159
+ CountComments: false
160
+ Max: 10
161
+ Metrics/ParameterLists:
162
+ Description: Avoid parameter lists longer than three or four parameters.
163
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#too-many-params
164
+ Enabled: false
165
+ Max: 5
166
+ CountKeywordArgs: true
167
+ Metrics/PerceivedComplexity:
168
+ Description: A complexity metric geared towards measuring complexity for a human
169
+ reader.
170
+ Enabled: false
171
+ Max: 7
172
+ Lint/AssignmentInCondition:
173
+ Description: Don't use assignment in conditions.
174
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition
175
+ Enabled: false
176
+ AllowSafeAssignment: true
177
+ Style/MultilineOperationIndentation:
178
+ Enabled: false
179
+ EnforcedStyle: indented
180
+ SupportedStyles:
181
+ - aligned
182
+ - indented
183
+ Style/InlineComment:
184
+ Description: Avoid inline comments.
185
+ Enabled: false
186
+ Style/AccessorMethodName:
187
+ Description: Check the naming of accessor methods for get_/set_.
188
+ Enabled: false
189
+ Style/Alias:
190
+ Description: Use alias_method instead of alias.
191
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#alias-method
192
+ Enabled: false
193
+ Style/Documentation:
194
+ Description: Document classes and non-namespace modules.
195
+ Enabled: false
196
+ Style/DoubleNegation:
197
+ Description: Checks for uses of double negation (!!).
198
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-bang-bang
199
+ Enabled: false
200
+ Style/EachWithObject:
201
+ Description: Prefer `each_with_object` over `inject` or `reduce`.
202
+ Enabled: false
203
+ Style/EmptyLiteral:
204
+ Description: Prefer literals to Array.new/Hash.new/String.new.
205
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#literal-array-hash
206
+ Enabled: false
207
+ Style/ModuleFunction:
208
+ Description: Checks for usage of `extend self` in modules.
209
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#module-function
210
+ Enabled: false
211
+ Style/OneLineConditional:
212
+ Description: Favor the ternary operator(?:) over if/then/else/end constructs.
213
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#ternary-operator
214
+ Enabled: false
215
+ Style/PerlBackrefs:
216
+ Description: Avoid Perl-style regex back references.
217
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers
218
+ Enabled: false
219
+ Style/Send:
220
+ Description: Prefer `Object#__send__` or `Object#public_send` to `send`, as `send`
221
+ may overlap with existing methods.
222
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#prefer-public-send
223
+ Enabled: false
224
+ Style/SpecialGlobalVars:
225
+ Description: Avoid Perl-style global variables.
226
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms
227
+ Enabled: false
228
+ Style/VariableInterpolation:
229
+ Description: Don't interpolate global, instance and class variables directly in
230
+ strings.
231
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#curlies-interpolate
232
+ Enabled: false
233
+ Style/WhenThen:
234
+ Description: Use when x then ... for one-line cases.
235
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#one-line-cases
236
+ Enabled: false
237
+ Lint/EachWithObjectArgument:
238
+ Description: Check for immutable argument given to each_with_object.
239
+ Enabled: true
240
+ Lint/HandleExceptions:
241
+ Description: Don't suppress exception.
242
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions
243
+ Enabled: false
244
+ Lint/LiteralInCondition:
245
+ Description: Checks of literals used in conditions.
246
+ Enabled: false
247
+ Lint/LiteralInInterpolation:
248
+ Description: Checks for literals used in interpolation.
249
+ Enabled: false
data/Gemfile CHANGED
@@ -1,5 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'coveralls', :require => false, :group => 'test'
4
- # Specify your gem's dependencies in gman_client.gemspec
3
+ gem 'codeclimate-test-reporter', group: :test, require: nil
4
+ gem 'rubocop'
5
+
5
6
  gemspec
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
1
  [![Build Status](https://travis-ci.org/westernmilling/gman_client.svg?branch=master)](https://travis-ci.org/westernmilling/gman_client) [![Coverage Status](https://coveralls.io/repos/westernmilling/gman_client/badge.svg)](https://coveralls.io/r/westernmilling/gman_client)
2
+
2
3
  # GmanClient
3
4
 
4
5
  Gem hooks into the Grossman API.
@@ -8,38 +9,42 @@ Gem hooks into the Grossman API.
8
9
  Add this line to your application's Gemfile:
9
10
 
10
11
  ```ruby
11
- gem 'gman_client', :git => 'git@github.com:michaelachrisco/gman_client.git'
12
+ gem 'gman_client', git: 'git@github.com:westernmilling/gman_client.git'
12
13
  ```
13
14
 
14
15
  And then execute:
15
16
 
16
17
  $ bundle
17
18
 
18
- Make sure to include:
19
- * WRAP_URL: This URL is the url for the api. Example ```export WRAP_URL="http://example.com"```
20
- * CLIENT_ID: Doorkeeper App ID. Example: ```export CLIENT_ID="1234567"```
21
- * CLIENT_SECRET: Doorkeeper App Secret. Example: ```export CLIENT_SECRET="1234567"```
22
- * TOKEN_URL: URL for token. Example: ```export TOKEN_URL="http://example.com/oauth/token"```
23
-
24
- Or initialize:
25
- ```Ruby
26
- gman = Gman::Client.new(:url => "http://example.com",
27
- :token_url => "1234567",
28
- :client_id => "1234567",
29
- :client_secret => "http://example.com/oauth/token"
30
- )
31
- ```
19
+ ## Usage
32
20
 
33
21
  How to use:
34
- ```Ruby
35
- gman.drivers
36
- gman.driver_commission_histories
37
- gman.driver_commission_histories_by_paid_date(DATE.new())
22
+
23
+ ```ruby
24
+ client = Gman::Client.new(
25
+ url: "gman services url",
26
+ client_id: "client id",
27
+ client_secret: "client secret"
28
+ )
29
+ ```
30
+
31
+ ```ruby
32
+ client.drivers
33
+ client.driver_commission_histories
34
+ client.driver_commission_histories_by_paid_date(DATE.new())
35
+ ```
36
+
37
+ ## Running the tests
38
+
39
+ ```bash
40
+ export GMAN_SERVICES_URL=<Gman Services URL>
41
+ export GMAN_SERVICES_CLIENT_ID=<Client ID>
42
+ export GMAN_SERVICES_CLIENT_SECRET=<Client Secret>
38
43
  ```
39
44
 
40
45
  ## Contributing
41
46
 
42
- 1. Fork it ( https://github.com/michaelachrisco/gman_client/fork )
47
+ 1. Fork it ( https://github.com/westernmilling/gman_client/fork )
43
48
  2. Create your feature branch (`git checkout -b my-new-feature`)
44
49
  3. Commit your changes (`git commit -am 'Add some feature'`)
45
50
  4. Push to the branch (`git push origin my-new-feature`)
data/gman_client.gemspec CHANGED
@@ -4,28 +4,28 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'gman_client/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = 'gman_client'
8
- spec.version = GmanClient::VERSION
9
- spec.authors = ['MichaelAChrisco', 'josephbridgwaterrowe']
10
- spec.email = ['michaelachrisco@gmail.com']
11
- spec.summary = 'GMAN gem client'
12
- spec.description = 'GMAN gem client for Grossman API'
13
- spec.homepage = 'https://github.com/michaelachrisco/gman_client'
14
- spec.license = 'MIT'
7
+ spec.name = 'gman_client'
8
+ spec.version = GmanClient::VERSION
9
+ spec.authors = %w(MichaelAChrisco josephbridgwaterrowe)
10
+ spec.email = ['joe@westernmilling.com']
11
+ spec.summary = 'Grossman API Client for Ruby'
12
+ spec.description =
13
+ 'Grossman API Client for accessing gman-services written in Ruby.'
14
+ spec.homepage = 'https://github.com/westernmilling/gman_client'
15
+ spec.license = 'MIT'
15
16
 
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
+ spec.files = `git ls-files -z`.split("\x0")
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
20
  spec.require_paths = ['lib']
20
- spec.add_runtime_dependency 'vcr'
21
- spec.add_runtime_dependency 'webmock'
22
- spec.add_dependency 'blanket_wrapper'
23
- spec.add_dependency 'hashie'
24
- spec.add_dependency 'retries'
25
- spec.add_dependency 'rest-client'
21
+ spec.add_runtime_dependency 'vcr', '3.0.1'
22
+ spec.add_runtime_dependency 'webmock', '1.22.6'
23
+ spec.add_dependency 'blanket_wrapper', '3.0.2'
24
+ spec.add_dependency 'hashie', '3.4.3'
25
+ spec.add_dependency 'retries', '0.0.5'
26
+ spec.add_dependency 'rest-client', '1.8.0'
26
27
  spec.add_development_dependency 'bundler', '~> 1.7'
27
28
  spec.add_development_dependency 'rake', '~> 10.0'
28
- spec.add_development_dependency 'rspec'
29
- spec.add_development_dependency 'rspec-its'
30
-
29
+ spec.add_development_dependency 'rspec', '3.4.0'
30
+ spec.add_development_dependency 'rspec-its', '1.2.0'
31
31
  end
@@ -0,0 +1,72 @@
1
+ module Gman
2
+ class Client
3
+ include GmanClient::CommodityMerchandising::Contracts
4
+ include GmanClient::Utility
5
+
6
+ attr_accessor :url, :client_id, :client_secret
7
+ def initialize(options)
8
+ @url = options[:url]
9
+ @token_url = "#{url}/oauth/token"
10
+ @client_id = options[:client_id]
11
+ @client_secret = options[:client_secret]
12
+ @retry_attempts = options[:retries] || 3
13
+ end
14
+
15
+ def drivers
16
+ response = attempt(3) { request.api.v1.drivers.get }
17
+ convert_payload(response)
18
+ end
19
+
20
+ def driver_commission_histories
21
+ response = attempt(3) do
22
+ request.api.v1.driver_commissions_history.get
23
+ end
24
+ convert_payload(response)
25
+ end
26
+
27
+ def driver_commission_histories_by_paid_date(paid_date)
28
+ response = attempt(3) do
29
+ request
30
+ .api
31
+ .v1
32
+ .driver_commissions_history_by_paid_date
33
+ .get(params: { paid_date: paid_date })
34
+ end
35
+ convert_payload(response)
36
+ end
37
+
38
+ def inventory_items
39
+ response = attempt(3) { request.api.v1.inventory.items.get }
40
+ convert_payload(response)
41
+ end
42
+
43
+ def inventory_items_like_id_description(item_id, in_item_description)
44
+ response = attempt(3) do
45
+ request
46
+ .api
47
+ .v1
48
+ .inventory
49
+ .items_like_id_description
50
+ .get(params:
51
+ {
52
+ item_id: item_id,
53
+ in_item_description: in_item_description
54
+ }
55
+ )
56
+ end
57
+ convert_payload(response)
58
+ end
59
+
60
+ def inventory_items_by_id(item_id)
61
+ response = attempt(3) do
62
+ request
63
+ .api
64
+ .v1
65
+ .inventory
66
+ .items_by_id
67
+ .get(params: { item_id: item_id })
68
+ end
69
+ convert_payload(response)
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,34 @@
1
+ module GmanClient
2
+ module CommodityMerchandising
3
+ module Contracts
4
+ def contracts(filters)
5
+ response = attempt(@retry_attempts) do
6
+ request
7
+ .api
8
+ .v1
9
+ .commodity_merchandising
10
+ .contracts
11
+ .get(params: { q: clean_filters(filters) })
12
+ end
13
+
14
+ response
15
+ .map(&:to_h)
16
+ .map { |x| transform_response_item(x) }
17
+ end
18
+
19
+ def clean_filters(filters)
20
+ keep = filters.select do |k, _v|
21
+ [:commodity_id_eq, :customer_id_eq].include?(k)
22
+ end
23
+
24
+ Hash[filters.to_a & keep.to_a]
25
+ end
26
+
27
+ def transform_response_item(hash)
28
+ hash.each_with_object({}) do |(k, v), memo|
29
+ memo[k.to_s.gsub(/cont_/, '').to_sym] = v
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
File without changes
@@ -0,0 +1,32 @@
1
+ module GmanClient
2
+ module Utility
3
+ def request
4
+ Blanket.wrap(
5
+ @url,
6
+ extension: :json,
7
+ headers: { 'Authorization' => "Bearer #{token}" }
8
+ )
9
+ end
10
+
11
+ def token
12
+ return @token if @token
13
+
14
+ response = RestClient.post(@token_url,
15
+ grant_type: 'client_credentials',
16
+ client_id: @client_id,
17
+ client_secret: @client_secret)
18
+
19
+ @token = JSON.parse(response)['access_token']
20
+ end
21
+
22
+ def convert_payload(response)
23
+ response.map do |hash_request|
24
+ Hashie.symbolize_keys!(hash_request.to_h)
25
+ end
26
+ end
27
+
28
+ def attempt(retry_count)
29
+ with_retries(max_tries: retry_count) { yield }
30
+ end
31
+ end
32
+ end
@@ -1,4 +1,4 @@
1
1
  # VERSION
2
2
  module GmanClient
3
- VERSION = '0.0.6'
3
+ VERSION = '0.0.7'.freeze
4
4
  end
data/lib/gman_client.rb CHANGED
@@ -1,93 +1,15 @@
1
+ require 'gman_client/commodity_merchandising/contracts'
2
+ require 'gman_client/utility'
1
3
  require 'gman_client/version'
4
+ require 'gman/client'
2
5
  require 'rest_client'
3
6
  require 'json'
4
7
  require 'blanket'
5
8
  require 'hashie'
6
9
  require 'retries'
7
10
 
8
- # GmanClient
9
- module Gman
10
- # grossman +client+ object
11
- class Client
12
- attr_accessor :url, :token_url, :client_id, :client_secret
13
- def initialize(options = {})
14
- @url = options[:url] || ENV['WRAP_URL']
15
- @token_url = options[:token_url] || ENV['TOKEN_URL']
16
- @client_id = options[:client_id] || ENV['CLIENT_ID']
17
- @client_secret = options[:client_secret] || ENV['CLIENT_SECRET']
18
- end
19
-
20
- def drivers
21
- response = attempt(3) { request.api.v1.drivers.get }
22
- convert_payload(response)
23
- end
24
-
25
- def driver_commission_histories
26
- response = attempt(3) do
27
- request.api.v1.driver_commissions_history.get
28
- end
29
- convert_payload(response)
30
- end
31
-
32
- def driver_commission_histories_by_paid_date(paid_date)
33
- response = attempt(3) do
34
- request.api.v1.driver_commissions_history_by_paid_date
35
- .get(:params => { :paid_date => paid_date })
36
- end
37
- convert_payload(response)
38
- end
39
-
40
- def inventory_items
41
- response = attempt(3) { request.api.v1.inventory.items.get }
42
- convert_payload(response)
43
- end
44
-
45
- def inventory_items_like_id_description(item_id, in_item_description)
46
- response = attempt(3) do
47
- request.api.v1.inventory.items_like_id_description
48
- .get(:params => { :item_id => item_id,
49
- :in_item_description => in_item_description }
50
- )
51
- end
52
- convert_payload(response)
53
- end
54
-
55
- def inventory_items_by_id(item_id)
56
- response = attempt(3) do
57
- request.api.v1.inventory.items_by_id
58
- .get(:params => { :item_id => item_id })
59
- end
60
- convert_payload(response)
61
- end
62
-
63
- def request
64
- token = retrieve_token
65
- Blanket.wrap(@url.dup,
66
- :extension => :json,
67
- :headers => {
68
- 'Authorization' => "Bearer #{token}" }
69
- )
70
- end
71
-
72
- def retrieve_token
73
- response = RestClient.post @token_url.dup,
74
- :grant_type => 'client_credentials',
75
- :client_id => @client_id.dup,
76
- :client_secret => @client_secret.dup
77
-
78
- JSON.parse(response)['access_token']
79
- end
80
-
81
- private
82
-
83
- def convert_payload(response)
84
- response.map do |hash_request|
85
- Hashie.symbolize_keys!(hash_request.to_h)
86
- end
87
- end
88
-
89
- def attempt(retry_count)
90
- with_retries(:max_tries => retry_count) { yield }
91
- end
11
+ module GmanClient
12
+ def self.root
13
+ File.expand_path '../..', __FILE__
92
14
  end
93
15
  end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Gman::Client do
4
+ include_context 'grossman client'
5
+
6
+ let(:customer_id) { 100_001 }
7
+ let(:response) do
8
+ VCR.use_cassette('contracts') do
9
+ client.contracts(customer_id_eq: 100_001)
10
+ end
11
+ end
12
+ subject { response }
13
+
14
+ it 'should have a client response' do
15
+ is_expected.not_to be_empty
16
+ end
17
+ it 'should have responded with an array of hashes' do
18
+ is_expected
19
+ .to satisfy { |h| h.is_a?(Array) && h.all? { |e| e.is_a?(Hash) } }
20
+ end
21
+
22
+ describe 'first contract' do
23
+ subject { response.first }
24
+ its(:keys) do
25
+ is_expected.to include(
26
+ :contract_id,
27
+ :commodity_id,
28
+ :customer_id,
29
+ :contract_number,
30
+ :contract_date,
31
+ :contract_type,
32
+ :quantity,
33
+ :delivered_bushels,
34
+ :price,
35
+ :freight_adjustment,
36
+ :from_date,
37
+ :to_date
38
+ )
39
+ end
40
+ end
41
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- RSpec.describe GmanClient do
3
+ RSpec.describe Gman::Client do
4
4
  describe '.drivers' do
5
5
  let(:response) do
6
6
  VCR.use_cassette('drivers') do
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,14 @@
1
- require 'coveralls'
2
- Coveralls.wear!
1
+ require 'codeclimate-test-reporter'
2
+ CodeClimate::TestReporter.start
3
+
3
4
  require 'rspec/its'
4
5
  require 'spec_helper'
5
6
  require 'gman_client'
6
- require 'vcr'
7
7
  require 'httparty'
8
8
  require 'webmock'
9
- require 'support/vcr'
10
- require 'support/gman_adapter'
9
+
10
+ Dir[File.join(GmanClient.root, 'spec/support/**/*.rb')].each { |f| require f }
11
+
11
12
  RSpec.configure do |config|
12
13
  config.expect_with :rspec do |expectations|
13
14
  expectations.include_chain_clauses_in_custom_matcher_descriptions = true
@@ -6,9 +6,9 @@ def gman_adapter
6
6
  client_secret = 'f444a467ddbbaed52297d61a3edc5efd93e9292fc542058786aa13fa366865a3'
7
7
  # rubocop:enable Metrics/LineLength
8
8
 
9
- Gman::Client.new(:url => url,
10
- :token_url => token_url,
11
- :client_id => client_id,
12
- :client_secret => client_secret
9
+ Gman::Client.new(url: url,
10
+ token_url: token_url,
11
+ client_id: client_id,
12
+ client_secret: client_secret
13
13
  )
14
14
  end
@@ -0,0 +1,13 @@
1
+ RSpec.shared_context 'grossman client' do
2
+ let(:client) do
3
+ url = ENV['GMAN_SERVICES_URL']
4
+ client_id = ENV['GMAN_SERVICES_CLIENT_ID']
5
+ client_secret = ENV['GMAN_SERVICES_CLIENT_SECRET']
6
+
7
+ Gman::Client.new(
8
+ url: url,
9
+ client_id: client_id,
10
+ client_secret: client_secret
11
+ )
12
+ end
13
+ end
data/spec/support/vcr.rb CHANGED
@@ -1,19 +1,13 @@
1
1
  require 'vcr'
2
2
 
3
- # VCR.configure do |c|
4
- # c.hook_into :webmock
5
- # c.cassette_library_dir = 'spec/support/vcr_cassettes'
6
- # c.configure_rspec_metadata!
7
- # c.allow_http_connections_when_no_cassette = true if real_requests
8
- # c.default_cassette_options = {:record => :new_episodes}
9
- # end
10
-
11
- real_requests = ENV['REAL_REQUESTS']
3
+ real_requests = ENV['VCR_ALLOW_ACTUAL_REQUESTS']
12
4
 
13
5
  VCR.configure do |c|
6
+ c.allow_http_connections_when_no_cassette = true if real_requests
14
7
  c.cassette_library_dir = 'spec/vcr_cassettes'
8
+ c.configure_rspec_metadata!
9
+ c.default_cassette_options = { record: :new_episodes }
15
10
  c.hook_into :webmock
16
- c.allow_http_connections_when_no_cassette = true if real_requests
17
11
  end
18
12
 
19
13
  RSpec.configure do |config|
@@ -0,0 +1,87 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://localhost:5000/oauth/token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: grant_type=client_credentials&client_id=8341662f1b6dd15a0699c551fbc548f236244ffd8fbddb51b6de09ab95bea6a5&client_secret=49d24c41f48c203746fb221f38810149303f8bea1ba2bf5732011a64e260d87c
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ Content-Length:
15
+ - '183'
16
+ Content-Type:
17
+ - application/x-www-form-urlencoded
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ X-Frame-Options:
26
+ - SAMEORIGIN
27
+ X-Xss-Protection:
28
+ - 1; mode=block
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ Cache-Control:
32
+ - no-store
33
+ Pragma:
34
+ - no-cache
35
+ Content-Type:
36
+ - application/json; charset=utf-8
37
+ Etag:
38
+ - '"9528aabe1ed9f772c139e5db6be7e32a"'
39
+ X-Request-Id:
40
+ - 5a6eca3f-cc5a-4083-b6c1-d1a5674b4cac
41
+ X-Runtime:
42
+ - '0.490000'
43
+ Transfer-Encoding:
44
+ - chunked
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"access_token":"ad70c595ff437569ea369aba202205235fb99aa3f8193c320644452c05a834ff","token_type":"bearer","created_at":1455564928}'
48
+ http_version:
49
+ recorded_at: Mon, 15 Feb 2016 19:35:28 GMT
50
+ - request:
51
+ method: get
52
+ uri: http://localhost:5000/api/v1/commodity_merchandising/contracts.json?q%5Bcustomer_id_eq%5D=100001
53
+ body:
54
+ encoding: US-ASCII
55
+ string: ''
56
+ headers:
57
+ Authorization:
58
+ - Bearer ad70c595ff437569ea369aba202205235fb99aa3f8193c320644452c05a834ff
59
+ response:
60
+ status:
61
+ code: 200
62
+ message: OK
63
+ headers:
64
+ X-Frame-Options:
65
+ - SAMEORIGIN
66
+ X-Xss-Protection:
67
+ - 1; mode=block
68
+ X-Content-Type-Options:
69
+ - nosniff
70
+ Content-Type:
71
+ - application/json; charset=utf-8
72
+ Etag:
73
+ - '"005b73fb5d637ae3fa00289d31083c22"'
74
+ Cache-Control:
75
+ - max-age=0, private, must-revalidate
76
+ X-Request-Id:
77
+ - 22d28c69-d776-42a6-b971-52dc2b688ee4
78
+ X-Runtime:
79
+ - '0.562000'
80
+ Transfer-Encoding:
81
+ - chunked
82
+ body:
83
+ encoding: UTF-8
84
+ string: '[{"contract_id":"000100001S","customer_id":"100001","commodity_id":"1218","cont_contract_number":100001,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":26502,"cont_price":"373.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100002P","customer_id":"100001","commodity_id":"1217","cont_contract_number":100002,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":90205,"cont_price":"352.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100003S","customer_id":"100001","commodity_id":"1999","cont_contract_number":100003,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":92786,"cont_price":"290.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100004P","customer_id":"100001","commodity_id":"1834","cont_contract_number":100004,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":30727,"cont_price":"268.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100005S","customer_id":"100001","commodity_id":"1211","cont_contract_number":100005,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":33145,"cont_price":"206.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100006S","customer_id":"100001","commodity_id":"1263","cont_contract_number":100006,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":46419,"cont_price":"288.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100007S","customer_id":"100001","commodity_id":"1560","cont_contract_number":100007,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":71675,"cont_price":"291.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100008P","customer_id":"100001","commodity_id":"1334","cont_contract_number":100008,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":37007,"cont_price":"214.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100009P","customer_id":"100001","commodity_id":"1335","cont_contract_number":100009,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":13501,"cont_price":"295.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100010P","customer_id":"100001","commodity_id":"1743","cont_contract_number":100010,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":8293,"cont_price":"390.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100011P","customer_id":"100002","commodity_id":"1113","cont_contract_number":100011,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":25201,"cont_price":"306.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100012P","customer_id":"100002","commodity_id":"1180","cont_contract_number":100012,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":16784,"cont_price":"388.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100013P","customer_id":"100002","commodity_id":"1730","cont_contract_number":100013,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":34720,"cont_price":"251.0","cont_freight_adjustment":"0.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100014S","customer_id":"100002","commodity_id":"1598","cont_contract_number":100014,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":957,"cont_price":"355.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100015S","customer_id":"100002","commodity_id":"1773","cont_contract_number":100015,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":96225,"cont_price":"241.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100016P","customer_id":"100002","commodity_id":"1187","cont_contract_number":100016,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":4731,"cont_price":"285.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100017S","customer_id":"100002","commodity_id":"1367","cont_contract_number":100017,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":48392,"cont_price":"254.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100018P","customer_id":"100002","commodity_id":"1756","cont_contract_number":100018,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":26394,"cont_price":"309.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100019S","customer_id":"100002","commodity_id":"1695","cont_contract_number":100019,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":51655,"cont_price":"228.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100020S","customer_id":"100002","commodity_id":"1207","cont_contract_number":100020,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":4799,"cont_price":"335.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100021P","customer_id":"100003","commodity_id":"1128","cont_contract_number":100021,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":12785,"cont_price":"283.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100022P","customer_id":"100003","commodity_id":"1199","cont_contract_number":100022,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":9926,"cont_price":"280.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100023S","customer_id":"100003","commodity_id":"1452","cont_contract_number":100023,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":49654,"cont_price":"392.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100024P","customer_id":"100003","commodity_id":"1011","cont_contract_number":100024,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":63431,"cont_price":"229.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100025S","customer_id":"100003","commodity_id":"1517","cont_contract_number":100025,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":49803,"cont_price":"326.0","cont_freight_adjustment":"0.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100026S","customer_id":"100003","commodity_id":"1276","cont_contract_number":100026,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":53860,"cont_price":"244.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100027P","customer_id":"100003","commodity_id":"1107","cont_contract_number":100027,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":87247,"cont_price":"365.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100028S","customer_id":"100003","commodity_id":"1723","cont_contract_number":100028,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":65936,"cont_price":"325.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100029P","customer_id":"100003","commodity_id":"1267","cont_contract_number":100029,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":33810,"cont_price":"398.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100030S","customer_id":"100003","commodity_id":"1470","cont_contract_number":100030,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":39243,"cont_price":"209.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100031P","customer_id":"100004","commodity_id":"1642","cont_contract_number":100031,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":44453,"cont_price":"261.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100032S","customer_id":"100004","commodity_id":"1632","cont_contract_number":100032,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":98337,"cont_price":"389.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100033P","customer_id":"100004","commodity_id":"1876","cont_contract_number":100033,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":20681,"cont_price":"294.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100034S","customer_id":"100004","commodity_id":"1417","cont_contract_number":100034,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":73836,"cont_price":"222.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100035P","customer_id":"100004","commodity_id":"1310","cont_contract_number":100035,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":27384,"cont_price":"226.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100036S","customer_id":"100004","commodity_id":"1753","cont_contract_number":100036,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":41156,"cont_price":"304.0","cont_freight_adjustment":"0.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100037S","customer_id":"100004","commodity_id":"1524","cont_contract_number":100037,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":34015,"cont_price":"333.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100038S","customer_id":"100004","commodity_id":"1027","cont_contract_number":100038,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":60081,"cont_price":"311.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100039S","customer_id":"100004","commodity_id":"1071","cont_contract_number":100039,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":57422,"cont_price":"250.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100040P","customer_id":"100004","commodity_id":"1757","cont_contract_number":100040,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":32371,"cont_price":"241.0","cont_freight_adjustment":"0.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100041P","customer_id":"100005","commodity_id":"1268","cont_contract_number":100041,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":86915,"cont_price":"277.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100042S","customer_id":"100005","commodity_id":"1832","cont_contract_number":100042,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":21967,"cont_price":"383.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100043S","customer_id":"100005","commodity_id":"1717","cont_contract_number":100043,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":251,"cont_price":"205.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100044S","customer_id":"100005","commodity_id":"1083","cont_contract_number":100044,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":100000,"cont_delivered_bushels":84469,"cont_price":"312.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100045S","customer_id":"100005","commodity_id":"1183","cont_contract_number":100045,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":20187,"cont_price":"211.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100046S","customer_id":"100005","commodity_id":"1130","cont_contract_number":100046,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":18806,"cont_price":"213.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100047P","customer_id":"100005","commodity_id":"1210","cont_contract_number":100047,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":10762,"cont_price":"384.0","cont_freight_adjustment":"6.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100048S","customer_id":"100005","commodity_id":"1003","cont_contract_number":100048,"cont_contract_type":"S","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":26977,"cont_price":"295.0","cont_freight_adjustment":"7.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100049P","customer_id":"100005","commodity_id":"1578","cont_contract_number":100049,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":32922,"cont_price":"395.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"},{"contract_id":"000100050P","customer_id":"100005","commodity_id":"1117","cont_contract_number":100050,"cont_contract_type":"P","cont_contract_date":"2016-02-15","cont_quantity":50000,"cont_delivered_bushels":29422,"cont_price":"356.0","cont_freight_adjustment":"5.0","cont_from_date":"2016-02-15","cont_to_date":"2017-02-15"}]'
85
+ http_version:
86
+ recorded_at: Mon, 15 Feb 2016 19:35:28 GMT
87
+ recorded_with: VCR 3.0.1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gman_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - MichaelAChrisco
@@ -9,92 +9,92 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-08-03 00:00:00.000000000 Z
12
+ date: 2016-02-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: vcr
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: '0'
20
+ version: 3.0.1
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ">="
25
+ - - '='
26
26
  - !ruby/object:Gem::Version
27
- version: '0'
27
+ version: 3.0.1
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: webmock
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ">="
32
+ - - '='
33
33
  - !ruby/object:Gem::Version
34
- version: '0'
34
+ version: 1.22.6
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ">="
39
+ - - '='
40
40
  - !ruby/object:Gem::Version
41
- version: '0'
41
+ version: 1.22.6
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: blanket_wrapper
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ">="
46
+ - - '='
47
47
  - !ruby/object:Gem::Version
48
- version: '0'
48
+ version: 3.0.2
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ">="
53
+ - - '='
54
54
  - !ruby/object:Gem::Version
55
- version: '0'
55
+ version: 3.0.2
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: hashie
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">="
60
+ - - '='
61
61
  - !ruby/object:Gem::Version
62
- version: '0'
62
+ version: 3.4.3
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">="
67
+ - - '='
68
68
  - !ruby/object:Gem::Version
69
- version: '0'
69
+ version: 3.4.3
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: retries
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - '='
75
75
  - !ruby/object:Gem::Version
76
- version: '0'
76
+ version: 0.0.5
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - '='
82
82
  - !ruby/object:Gem::Version
83
- version: '0'
83
+ version: 0.0.5
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: rest-client
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ">="
88
+ - - '='
89
89
  - !ruby/object:Gem::Version
90
- version: '0'
90
+ version: 1.8.0
91
91
  type: :runtime
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ">="
95
+ - - '='
96
96
  - !ruby/object:Gem::Version
97
- version: '0'
97
+ version: 1.8.0
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: bundler
100
100
  requirement: !ruby/object:Gem::Requirement
@@ -127,38 +127,39 @@ dependencies:
127
127
  name: rspec
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - ">="
130
+ - - '='
131
131
  - !ruby/object:Gem::Version
132
- version: '0'
132
+ version: 3.4.0
133
133
  type: :development
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - ">="
137
+ - - '='
138
138
  - !ruby/object:Gem::Version
139
- version: '0'
139
+ version: 3.4.0
140
140
  - !ruby/object:Gem::Dependency
141
141
  name: rspec-its
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - ">="
144
+ - - '='
145
145
  - !ruby/object:Gem::Version
146
- version: '0'
146
+ version: 1.2.0
147
147
  type: :development
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - ">="
151
+ - - '='
152
152
  - !ruby/object:Gem::Version
153
- version: '0'
154
- description: GMAN gem client for Grossman API
153
+ version: 1.2.0
154
+ description: Grossman API Client for accessing gman-services written in Ruby.
155
155
  email:
156
- - michaelachrisco@gmail.com
156
+ - joe@westernmilling.com
157
157
  executables: []
158
158
  extensions: []
159
159
  extra_rdoc_files: []
160
160
  files:
161
161
  - ".gitignore"
162
+ - ".hound.yml"
162
163
  - ".rspec"
163
164
  - ".rubocop.yml"
164
165
  - ".simplecov"
@@ -168,26 +169,33 @@ files:
168
169
  - README.md
169
170
  - Rakefile
170
171
  - gman_client.gemspec
172
+ - lib/gman/client.rb
171
173
  - lib/gman_client.rb
174
+ - lib/gman_client/commodity_merchandising/contracts.rb
175
+ - lib/gman_client/inventory/items.rb
176
+ - lib/gman_client/utility.rb
172
177
  - lib/gman_client/version.rb
173
178
  - pkg/gman_client-0.0.1.gem
174
179
  - pkg/gman_client-0.0.2.gem
175
180
  - pkg/gman_client-0.0.3.gem
176
181
  - pkg/gman_client-0.0.4.gem
177
182
  - pkg/gman_client-0.0.5.gem
183
+ - spec/lib/client_contracts_spec.rb
178
184
  - spec/lib/driver_commission_history_response_spec.rb
179
185
  - spec/lib/driver_response_spec.rb
180
186
  - spec/lib/inventory_item_response_spec.rb
181
187
  - spec/spec_helper.rb
182
188
  - spec/support/gman_adapter.rb
189
+ - spec/support/shared_contexts.rb
183
190
  - spec/support/vcr.rb
191
+ - spec/vcr_cassettes/contracts.yml
184
192
  - spec/vcr_cassettes/driver_commission_histories.yml
185
193
  - spec/vcr_cassettes/driver_commission_histories_by_paid_date.yml
186
194
  - spec/vcr_cassettes/drivers.yml
187
195
  - spec/vcr_cassettes/inventory_items.yml
188
196
  - spec/vcr_cassettes/inventory_items_by_id.yml
189
197
  - spec/vcr_cassettes/inventory_items_like_id_description.yml
190
- homepage: https://github.com/michaelachrisco/gman_client
198
+ homepage: https://github.com/westernmilling/gman_client
191
199
  licenses:
192
200
  - MIT
193
201
  metadata: {}
@@ -207,17 +215,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
215
  version: '0'
208
216
  requirements: []
209
217
  rubyforge_project:
210
- rubygems_version: 2.4.6
218
+ rubygems_version: 2.4.8
211
219
  signing_key:
212
220
  specification_version: 4
213
- summary: GMAN gem client
221
+ summary: Grossman API Client for Ruby
214
222
  test_files:
223
+ - spec/lib/client_contracts_spec.rb
215
224
  - spec/lib/driver_commission_history_response_spec.rb
216
225
  - spec/lib/driver_response_spec.rb
217
226
  - spec/lib/inventory_item_response_spec.rb
218
227
  - spec/spec_helper.rb
219
228
  - spec/support/gman_adapter.rb
229
+ - spec/support/shared_contexts.rb
220
230
  - spec/support/vcr.rb
231
+ - spec/vcr_cassettes/contracts.yml
221
232
  - spec/vcr_cassettes/driver_commission_histories.yml
222
233
  - spec/vcr_cassettes/driver_commission_histories_by_paid_date.yml
223
234
  - spec/vcr_cassettes/drivers.yml