fuelator 0.2.1 → 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 +4 -4
- data/Gemfile.lock +1 -1
- data/bin/fuelator +1 -1
- data/lib/fuelator/calc.rb +5 -0
- data/lib/fuelator/parameters.rb +4 -6
- data/lib/fuelator/parameters/pair.rb +2 -4
- data/lib/fuelator/parameters/validator.rb +4 -1
- data/lib/fuelator/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43d8b93c7d45e513ec7cae873e5f731352141522230a2476191ddf3a774401dc
|
4
|
+
data.tar.gz: 4bb97c63e9c245bc40922225584258be881f21b36efe48752c47bd230705d404
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d164d93c3665ab8d53ea70ee7864d15b71d2a31a5482c080c3f44799784c76400ab8e0580df05e566c2dc35b8a6f80b73f2b910db2f1a5d574a10e1791b3805e
|
7
|
+
data.tar.gz: 9985545e3444a24983a3628ebd6478410c9fbe2d21fceaf71631089aca3579f83543cbc10895ce9baa3e740ef8fc005f609f7ce410af12d4ca3a7d249f4961c6
|
data/Gemfile.lock
CHANGED
data/bin/fuelator
CHANGED
@@ -74,7 +74,7 @@ end
|
|
74
74
|
def run_script
|
75
75
|
options = OptsParser.parse
|
76
76
|
begin
|
77
|
-
puts "#{Fuelator::Calc.
|
77
|
+
puts "#{Fuelator::Calc.run(options.mass, options.pairs)} kg"
|
78
78
|
rescue Fuelator::Parameters::Error, StandardError => e
|
79
79
|
puts e
|
80
80
|
puts e.backtrace if options.verbose
|
data/lib/fuelator/calc.rb
CHANGED
@@ -20,11 +20,16 @@ module Fuelator
|
|
20
20
|
},
|
21
21
|
}
|
22
22
|
|
23
|
+
def self.run(mass, pairs)
|
24
|
+
new(mass, pairs).run
|
25
|
+
end
|
26
|
+
|
23
27
|
def initialize(mass, pairs)
|
24
28
|
@parameters = Parameters.new(mass, pairs)
|
25
29
|
end
|
26
30
|
|
27
31
|
def run
|
32
|
+
parameters.validate!
|
28
33
|
full_mass = parameters.mass
|
29
34
|
|
30
35
|
parameters.reversed.map do |val|
|
data/lib/fuelator/parameters.rb
CHANGED
@@ -10,20 +10,16 @@ module Fuelator
|
|
10
10
|
|
11
11
|
def initialize(mass, pairs)
|
12
12
|
@mass = mass
|
13
|
-
@pairs = pairs.map { |pair| Pair.new(pair) }
|
13
|
+
@pairs = pairs.map { |pair| Pair.new(pair).validate! }
|
14
14
|
@order = define_order
|
15
|
-
|
16
|
-
validate!
|
17
15
|
end
|
18
16
|
|
19
17
|
def reversed
|
20
18
|
pairs.reverse
|
21
19
|
end
|
22
20
|
|
23
|
-
private
|
24
|
-
|
25
21
|
def valid_mass?
|
26
|
-
|
22
|
+
mass.is_a?(Numeric)
|
27
23
|
end
|
28
24
|
|
29
25
|
def valid_pairs?
|
@@ -34,6 +30,8 @@ module Fuelator
|
|
34
30
|
!order
|
35
31
|
end
|
36
32
|
|
33
|
+
private
|
34
|
+
|
37
35
|
# you can only calculate if directives passed in right order - :launch->:land
|
38
36
|
def define_order
|
39
37
|
dir = nil
|
@@ -9,16 +9,14 @@ module Fuelator
|
|
9
9
|
def initialize(pair)
|
10
10
|
@directive = pair[0]
|
11
11
|
@gravity = pair[1]
|
12
|
-
|
13
|
-
validate!
|
14
12
|
end
|
15
13
|
|
16
14
|
def valid_directive?
|
17
|
-
|
15
|
+
directive.is_a?(Symbol) && DIRECTIVES.include?(directive)
|
18
16
|
end
|
19
17
|
|
20
18
|
def valid_gravity?
|
21
|
-
|
19
|
+
gravity.is_a?(Numeric)
|
22
20
|
end
|
23
21
|
end
|
24
22
|
end
|
@@ -1,14 +1,17 @@
|
|
1
1
|
module Fuelator
|
2
2
|
class Parameters
|
3
3
|
module Validator
|
4
|
-
|
5
4
|
# runs #valid_[variable]? method for every instance variable
|
6
5
|
# raises Error defined in parent namespace
|
6
|
+
# @return [self]
|
7
7
|
def validate!
|
8
8
|
instance_variables.each do |v|
|
9
9
|
v_name = v.to_s.gsub(/^@/, '')
|
10
|
+
|
10
11
|
raise Error.new("value for #{v_name} is invalid") unless send("valid_#{v_name}?")
|
11
12
|
end
|
13
|
+
|
14
|
+
self
|
12
15
|
end
|
13
16
|
end
|
14
17
|
end
|
data/lib/fuelator/version.rb
CHANGED