vvm 0.1.0 → 0.2.2

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: 02dbf33936d808c62f51e819a4bc292c578147eb4ff83d237cc7cb0724f22b21
4
- data.tar.gz: a6c9af0911a1742bc94378c2b4fa7fe8a3a825fa0ed317bb9b18085f28884d22
3
+ metadata.gz: ce724b1605a33efcf6822c2847adf138484b9e491a284c539cd080e6e26e38d5
4
+ data.tar.gz: 688ccdc909529f01f7eacc8097566da61cd09c058743b32f0aff8a9d1673eecc
5
5
  SHA512:
6
- metadata.gz: a6c7398c682df253508c1351d3c2ac248c950065e7816944bf220ced475d6fba1df7ccdd9aa3e835e95ac88c58d488b26942ae62581ac3e67183882b9ba9ae6e
7
- data.tar.gz: 79ed579632d2baea596e9d970ddda04d12f606b700ec6ffe4ee60958442fe0b7848827cfea251a329684660ae48c1f9f10987f0d46aa603b15f2f68f0f01a795
6
+ metadata.gz: 3990c247245ba68151721b49fb2d457c5a48746c7b87730d9e245ce2dfa3f6422b25df8c9e5cafb79a8ce0a8797d8e90606f56a0f293fc157af18c9f39ae9fe0
7
+ data.tar.gz: 669430561a7fd57cc46b36c3f2a3671d8b21eb94722e208a006d510abd32387d920cb37545548c9d74d00126dac7efec815d0e514af7a8e546cf1c18ba6e6ad0
@@ -0,0 +1,29 @@
1
+ inventory:
2
+ - name: Coca Cola
3
+ price: 2.00
4
+ qty: 2
5
+ - name: Sprite
6
+ price: 2.50
7
+ qty: 2
8
+ - name: Fanta
9
+ price: 2.70
10
+ qty: 3
11
+ - name: Orange Juice
12
+ price: 3.00
13
+ qty: 1
14
+ - name: Water
15
+ price: 3.25
16
+ qty: 0
17
+ coins:
18
+ - value: 5.00
19
+ qty: 5
20
+ - value: 3.00
21
+ qty: 5
22
+ - value: 2.00
23
+ qty: 5
24
+ - value: 1.00
25
+ qty: 5
26
+ - value: 0.50
27
+ qty: 5
28
+ - value: 0.25
29
+ qty: 5
@@ -9,7 +9,9 @@ module Vvm
9
9
  def call
10
10
  prompt.say("Balance: $#{machine.balance}")
11
11
 
12
- formatted_coins = machine.dispense.filter { _1.qty.positive? }.map { "#{_1.qty} x $#{_1.value}" }.join(', ')
12
+ coins = machine.dispense.filter { _1.qty.positive? }.map { "#{_1.qty} x $#{_1.value}" }
13
+
14
+ formatted_coins = coins.empty? ? '0' : coins.join(', ')
13
15
 
14
16
  env.call(:confirm_dispense, { formatted_coins: formatted_coins })
15
17
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vvm
4
+ class CLI
5
+ module Command
6
+ class Exit < Base
7
+ self.command_name = :exit
8
+
9
+ def call
10
+ exit
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -12,7 +12,8 @@ module Vvm
12
12
  choices = [
13
13
  { name: 'Insert a coin', value: :insert_coin, **maybe_out_of_stock },
14
14
  { name: 'Pick the product', value: :pick_product },
15
- { name: 'Dispense', value: :dispense, **maybe_empty_balance, **maybe_no_change }
15
+ { name: 'Dispense', value: :dispense, **maybe_empty_balance, **maybe_no_change },
16
+ { name: 'Exit', value: :exit }
16
17
  ]
17
18
 
18
19
  result = prompt.select('Main menu:', choices)
data/lib/vvm/machine.rb CHANGED
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'YAML'
4
- require 'forwardable'
5
-
6
3
  module Vvm
7
4
  class Machine
8
5
  extend Forwardable
@@ -23,7 +20,7 @@ module Vvm
23
20
  private
24
21
 
25
22
  def config
26
- @config ||= YAML.load_file(File.join(GEM_HOME, 'config.yaml'))
23
+ @config ||= YAML.load_file(File.join(GEM_HOME, 'config/default.yaml'))
27
24
  end
28
25
 
29
26
  def build_inventory
data/lib/vvm/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Vvm
4
- VERSION = '0.1.0'
4
+ VERSION = '0.2.2'
5
5
  end
data/lib/vvm.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'tty-prompt'
4
+ require 'yaml'
5
+ require 'forwardable'
4
6
 
5
7
  require_relative 'vvm/version'
6
8
  require_relative 'vvm/cli'
@@ -18,3 +20,4 @@ require_relative 'vvm/cli/command/pick_product'
18
20
  require_relative 'vvm/cli/command/dispense'
19
21
  require_relative 'vvm/cli/command/confirm_dispense'
20
22
  require_relative 'vvm/cli/command/confirm_product_pick'
23
+ require_relative 'vvm/cli/command/exit'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vvm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Bykov
@@ -32,6 +32,7 @@ executables:
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
+ - config/default.yaml
35
36
  - exe/vvm
36
37
  - lib/vvm.rb
37
38
  - lib/vvm/cli.rb
@@ -40,6 +41,7 @@ files:
40
41
  - lib/vvm/cli/command/confirm_dispense.rb
41
42
  - lib/vvm/cli/command/confirm_product_pick.rb
42
43
  - lib/vvm/cli/command/dispense.rb
44
+ - lib/vvm/cli/command/exit.rb
43
45
  - lib/vvm/cli/command/insert_coin.rb
44
46
  - lib/vvm/cli/command/pick_product.rb
45
47
  - lib/vvm/cli/command/show_main_menu.rb