eac_cli 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b936a1bc75006a7969bd549ed89750bf7b09ccebf5d77e35a7b2443ad7175b5
4
- data.tar.gz: 812fb927a263d8d6aa74600631db16eb07e626217ec1e81614bdf5f1031d7ef7
3
+ metadata.gz: 7d373480947d50978fb88bb6e55a1296d644fcae95eb3b39a7a4127250cf14e2
4
+ data.tar.gz: 350598588e6cb04bf5fca9cc626f8a1d662167dc5dee9fbc60bd231e2279aa0b
5
5
  SHA512:
6
- metadata.gz: 4b2331aa69dd79cf797ab64305f3b088ee012cfe53e71ef0d0f00ec1f84ed2f5bc849e70a9745e17e43d591fc7e02ae9b061870b4d2b27cb93c51385c12780f8
7
- data.tar.gz: a62b07e41f454aa85015be5b39a3e427ab41b2afffdacfbf998ce1a261a49bf82c0711e95f7bb42b449fb3b41178dee666124a76eeaeee993c9fe6fdc7a6baf5
6
+ metadata.gz: 074cf7d6fe38050884bb0578d1dcd6a7b02bb384d0634bfec15d8d53b03945dc789bf7654aba4a491145e4c9bb8a7366e1a2a799ce00709e0af2940ca97004ba
7
+ data.tar.gz: 4da66cb205f1e58cb0c4fffb491d0d4e7aa38f7a6eeb7d7d67caa7c0f0e2177e2e98366639de29f9e588fc329c21051334d6696515e1c82711d1b2b8ec6e95b7
@@ -45,7 +45,7 @@ module EacCli
45
45
  module AfterClassMethods
46
46
  def create(*runner_context_args)
47
47
  r = new
48
- r.runner_context = ::EacCli::Runner::Context.new(*runner_context_args)
48
+ r.runner_context = ::EacCli::Runner::Context.new(r, *runner_context_args)
49
49
  r
50
50
  end
51
51
 
@@ -5,13 +5,30 @@ require 'eac_ruby_utils/core_ext'
5
5
  module EacCli
6
6
  module Runner
7
7
  class Context
8
- attr_reader :argv, :parent, :program_name
8
+ attr_reader :argv, :parent, :program_name, :runner
9
9
 
10
- def initialize(*context_args)
10
+ def initialize(runner, *context_args)
11
11
  options = context_args.extract_options!
12
12
  @argv = (context_args[0] || options.delete(:argv) || ARGV).dup.freeze
13
13
  @parent = context_args[1] || options.delete(:parent)
14
14
  @program_name = options.delete(:program_name)
15
+ @runner = runner
16
+ end
17
+
18
+ # Call a method in the runner or in one of it ancestors.
19
+ def call(method_name, *args)
20
+ return runner.send(method_name, *args) if runner.respond_to?(method_name)
21
+ return parent_call(method_name, *args) if parent.present?
22
+
23
+ raise ::NameError, "No method \"#{method_name}\" found in #{runner} or in its ancestors"
24
+ end
25
+
26
+ protected
27
+
28
+ def parent_call(method_name, *args)
29
+ return parent.context(method_name, *args) if parent.respond_to?(:context)
30
+
31
+ parent.runner_context.call(method_name, *args)
15
32
  end
16
33
  end
17
34
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacCli
4
- VERSION = '0.8.0'
4
+ VERSION = '0.9.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-27 00:00:00.000000000 Z
11
+ date: 2020-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eac_ruby_utils