vinochipper 0.0.0 → 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
  SHA256:
3
- metadata.gz: cea743f941ab566a188302ecc0b7bff19c534cd735de30171054e4b5c0f95423
4
- data.tar.gz: ca9c92a96f19f65552d7e8b7ff1ca611140e8efa0d048981a060a7127038a644
3
+ metadata.gz: 03fcb45b219419889a37715c067182ad2f526047db7e8d8fa3b11f535377fb5f
4
+ data.tar.gz: ec7effda407b3086a78dd72ee23f35675f36ab86a24bfc5905038094f0cb6eef
5
5
  SHA512:
6
- metadata.gz: d69d72c1c9aba77a1b1f7dd5d4d82867d455132f455c17e2fd470541b5f60c22413472cec0bea5eb6842ecbf43c58013500759dda42b1189ed81b987802e1405
7
- data.tar.gz: de92994b517ac115ffb3647b6c6bb01daed174f156b7e172a473d760668ff0dd4012530c8c4cc2d65df6337d4f42f6216d0e749ac67562c87989b25fb0f7dd38
6
+ metadata.gz: 561dd9b5b7f5af98dba6407571a5c00f7783a6f0c027aa160d96b09649c6d835c43baa6dc76162f220797ca78127e8cad59faff817a23281150f0a5ca1741b68
7
+ data.tar.gz: 231c9d7832c7e9c29e47d557efdb7733470ad8b94d968e744d69ac5845d39b6a957c34e7b6755e8eb05e0e55035fe363166bd8d7d5e789f50e297fe3ec640820
@@ -0,0 +1,7 @@
1
+ require 'models/vinochippermodel'
2
+
3
+ class VCState < VinoChipperModel
4
+ def to_s
5
+ state
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'models/vinochippermodel'
2
+
3
+ class VCWine < VinoChipperModel
4
+ def to_s
5
+ "id:'#{id}' name:'#{name}' abv:'#{abv}'"
6
+ end
7
+ end
@@ -0,0 +1,25 @@
1
+ require 'models/vinochippermodel'
2
+ require 'models/vcwinery'
3
+ require 'models/vcwine'
4
+ require 'models/vcstate'
5
+
6
+ class VCWineList < VinoChipperModel
7
+ def initialize(deets)
8
+ super
9
+ self.winery = VCWinery.new(winery)
10
+ self.wines = wines.map { |wine| VCWine.new(wine) }
11
+ self.ships_to = ships_to.map { |state| VCState.new(state) }
12
+ end
13
+
14
+ def to_s
15
+ "Winery: #{winery}
16
+
17
+ Wines: #{wines.map { |wine| wine & :to_s }}
18
+
19
+ Promotions: #{promotions}
20
+
21
+ Ships_to: #{ships_to.map { |state| state & :to_s }}
22
+
23
+ Special_Shipping: #{special_shipping}"
24
+ end
25
+ end
@@ -0,0 +1,7 @@
1
+ require 'models/vinochippermodel'
2
+
3
+ class VCWinery < VinoChipperModel
4
+ def to_s
5
+ "id: #{id} name: #{name}"
6
+ end
7
+ end
@@ -0,0 +1,24 @@
1
+ require 'util/string'
2
+
3
+ class VinoChipperModel
4
+ def initialize(deets)
5
+ @deets = deets
6
+ end
7
+
8
+ def respond_to_missing?(method_name, _include_private = false)
9
+ @deets.keys.include? method_name.to_s
10
+ end
11
+
12
+ def method_missing(*args)
13
+ message = args[0].to_s.camel_case_lower
14
+ if message.end_with?('=')
15
+ @deets[message.chomp!('=')] = args[1]
16
+ else
17
+ @deets[message] || super
18
+ end
19
+ end
20
+
21
+ def keys
22
+ @deets.keys
23
+ end
24
+ end
@@ -0,0 +1,5 @@
1
+ class String
2
+ def camel_case_lower
3
+ split('_').inject([]) { |buffer, e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
4
+ end
5
+ end
@@ -1,5 +1,13 @@
1
- class Vinochipper
2
- def self.hi
3
- puts 'hello world'
1
+ require 'json'
2
+ require 'net/http'
3
+
4
+ require 'models/vcwinelist'
5
+
6
+ class VinoChipper
7
+ BASE_URL = 'https://vinoshipper.com/json-api/v2/'.freeze
8
+
9
+ def self.wine_list(id)
10
+ response = Net::HTTP.get_response(URI.parse(BASE_URL + 'wine-list?id=' + id.to_s))
11
+ VCWineList.new(JSON.parse(response.body))
4
12
  end
5
- end
13
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vinochipper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kent Slaymaker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-10 00:00:00.000000000 Z
11
+ date: 2020-08-27 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Interface for the VinoShipper API
14
14
  email: kent@slaymakercellars.com
@@ -16,6 +16,12 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
+ - lib/models/vcstate.rb
20
+ - lib/models/vcwine.rb
21
+ - lib/models/vcwinelist.rb
22
+ - lib/models/vcwinery.rb
23
+ - lib/models/vinochippermodel.rb
24
+ - lib/util/string.rb
19
25
  - lib/vinochipper.rb
20
26
  homepage: https://rubygems.org/gems/vinochipper
21
27
  licenses: