eac_cli 0.14.0 → 0.15.0
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/lib/eac_cli/core_ext.rb +2 -0
- data/lib/eac_cli/patches/object/runner_with.rb +2 -1
- data/lib/eac_cli/runner_with_set.rb +50 -0
- data/lib/eac_cli/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adea15fa71d63d7ee84ffd7978a582098b9e582a8ab32bdf2f332d1fc06abffa
|
4
|
+
data.tar.gz: c8d7a4875e1d551a45e9cd6ad7dbdd26107ed296008ce068df3166a0a53d242a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f62270d724e15ef2ee006d0f74cf065b09a97bae467ce629c47b7e3a90a48131f1b0f555255215bf94ffe4576668ab060eda77c89cc8c119b2847b919690d6b7
|
7
|
+
data.tar.gz: 30fec20cf4e1e3c121c943edee3044b8c636219e45434ea8f1847bccaee5d904d6980dcba9a48e228b4928923f24ad6acea43cb5c5615d6a86b4065f6f6aad32
|
data/lib/eac_cli/core_ext.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'eac_ruby_utils/core_ext'
|
4
4
|
require 'eac_cli/runner'
|
5
5
|
require 'eac_cli/runner_with'
|
6
|
+
require 'eac_cli/runner_with_set'
|
6
7
|
|
7
8
|
class Object
|
8
9
|
def runner_with(*runners, &block)
|
@@ -10,7 +11,7 @@ class Object
|
|
10
11
|
enable_simple_cache
|
11
12
|
enable_console_speaker
|
12
13
|
runners.each do |runner|
|
13
|
-
include
|
14
|
+
include ::EacCli::RunnerWithSet.default.item_to_module(runner)
|
14
15
|
end
|
15
16
|
runner_definition(&block) if block
|
16
17
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacCli
|
4
|
+
class RunnerWithSet
|
5
|
+
class << self
|
6
|
+
def default
|
7
|
+
@default ||= new
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def add_namespace(namespace)
|
12
|
+
namespace = sanitize_namespace(namespace)
|
13
|
+
raise "\"#{namespace}\" already was included" if namespace_set.include?(namespace)
|
14
|
+
|
15
|
+
namespace_set << namespace
|
16
|
+
self
|
17
|
+
end
|
18
|
+
|
19
|
+
def item_to_module(item)
|
20
|
+
item.is_a?(::Module) ? item : key_to_module(item)
|
21
|
+
end
|
22
|
+
|
23
|
+
def namespaces
|
24
|
+
namespace_set.dup
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def namespace_set
|
30
|
+
@namespace_set ||= ::Array.new
|
31
|
+
end
|
32
|
+
|
33
|
+
def key_to_module(key)
|
34
|
+
namespace_set.lazy
|
35
|
+
.map { |namespace| key_to_module_in_namespace(namespace, key) }
|
36
|
+
.find(&:present?) ||
|
37
|
+
raise("Not module found with key \"#{key}\" (Namespaces: #{namespace_set})")
|
38
|
+
end
|
39
|
+
|
40
|
+
def key_to_module_in_namespace(namespace, key)
|
41
|
+
namespace.const_get(key.to_s.camelize)
|
42
|
+
rescue ::NameError
|
43
|
+
nil
|
44
|
+
end
|
45
|
+
|
46
|
+
def sanitize_namespace(source)
|
47
|
+
source.is_a?(::Module) ? source : source.to_s.constantize
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/eac_cli/version.rb
CHANGED
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.
|
4
|
+
version: 0.15.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: 2021-02-
|
11
|
+
date: 2021-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eac_ruby_utils
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- lib/eac_cli/runner_with/help.rb
|
90
90
|
- lib/eac_cli/runner_with/output_file.rb
|
91
91
|
- lib/eac_cli/runner_with/subcommands.rb
|
92
|
+
- lib/eac_cli/runner_with_set.rb
|
92
93
|
- lib/eac_cli/version.rb
|
93
94
|
homepage:
|
94
95
|
licenses: []
|