vvm 0.1.0 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/default.yaml +29 -0
- data/lib/vvm/cli/command/dispense.rb +3 -1
- data/lib/vvm/cli/command/exit.rb +15 -0
- data/lib/vvm/cli/command/show_main_menu.rb +2 -1
- data/lib/vvm/machine.rb +1 -4
- data/lib/vvm/version.rb +1 -1
- data/lib/vvm.rb +3 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce724b1605a33efcf6822c2847adf138484b9e491a284c539cd080e6e26e38d5
|
4
|
+
data.tar.gz: 688ccdc909529f01f7eacc8097566da61cd09c058743b32f0aff8a9d1673eecc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3990c247245ba68151721b49fb2d457c5a48746c7b87730d9e245ce2dfa3f6422b25df8c9e5cafb79a8ce0a8797d8e90606f56a0f293fc157af18c9f39ae9fe0
|
7
|
+
data.tar.gz: 669430561a7fd57cc46b36c3f2a3671d8b21eb94722e208a006d510abd32387d920cb37545548c9d74d00126dac7efec815d0e514af7a8e546cf1c18ba6e6ad0
|
data/config/default.yaml
ADDED
@@ -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
|
-
|
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
|
@@ -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
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.
|
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
|