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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f14896dfaa72e8e708d299a5d9a2d92d86d26379bb146f9d4efdf0b97b02567e
4
- data.tar.gz: b968191c04bfb2d9b892a635571036a52f6366239739feb3ecbbf042311e311d
3
+ metadata.gz: 43d8b93c7d45e513ec7cae873e5f731352141522230a2476191ddf3a774401dc
4
+ data.tar.gz: 4bb97c63e9c245bc40922225584258be881f21b36efe48752c47bd230705d404
5
5
  SHA512:
6
- metadata.gz: 4732f1251452d02ca01d76a8c710c6813c8a5c364db3fc981d5c46ea1634caf34e3b16367b84d92dbe7d71c2282b4906a9ddf2150ac1020dfe34a1754140dee9
7
- data.tar.gz: 3315e505c1fb8e3227a0c7318c1d1296b892e9dcc0145bdf34c2b937f823468f4046bf54e3a0265d3815bc43d21f0889c79318382ce81b8f6c8dae0b2241a68b
6
+ metadata.gz: d164d93c3665ab8d53ea70ee7864d15b71d2a31a5482c080c3f44799784c76400ab8e0580df05e566c2dc35b8a6f80b73f2b910db2f1a5d574a10e1791b3805e
7
+ data.tar.gz: 9985545e3444a24983a3628ebd6478410c9fbe2d21fceaf71631089aca3579f83543cbc10895ce9baa3e740ef8fc005f609f7ce410af12d4ca3a7d249f4961c6
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fuelator (0.2.1)
4
+ fuelator (0.2.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -74,7 +74,7 @@ end
74
74
  def run_script
75
75
  options = OptsParser.parse
76
76
  begin
77
- puts "#{Fuelator::Calc.new(options.mass, options.pairs).run} kg"
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
@@ -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|
@@ -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
- !mass.nil? && mass.is_a?(Numeric)
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
- DIRECTIVES.include?(directive) && directive.is_a?(Symbol)
15
+ directive.is_a?(Symbol) && DIRECTIVES.include?(directive)
18
16
  end
19
17
 
20
18
  def valid_gravity?
21
- !gravity.nil? && gravity.is_a?(Numeric)
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
@@ -1,3 +1,3 @@
1
1
  module Fuelator
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fuelator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergii Brytiuk