eac_ruby_base0 0.1.0 → 0.3.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/lib/eac_ruby_base0/application.rb +33 -1
- data/lib/eac_ruby_base0/runner.rb +25 -6
- data/lib/eac_ruby_base0/version.rb +1 -1
- metadata +15 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c33caa20ce5698a75e3cced324d2a33982183fa7ce00e8f1b8e49ce96330c843
|
4
|
+
data.tar.gz: 4bc3cb6a780f50348596e94085073f345ff0e52ee5c5c14f3077ff54edd2dc60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7253c7709e4d7860d7a58b95fd467ed3d899b7404e6c876337a0ff9fe9e5f62b375690fd2cf8f115e76f3d8fdb3ad45eab70d28082a54eee025469ed065b530e
|
7
|
+
data.tar.gz: 5218e12bbd24b4664370625cfaed4b47eaed2bd46840b0dab23037a51f011772557500a9a895803cc89fcd6c0c290136018e94ce9bb4bd43c902cbf2ea048bab
|
@@ -1,12 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'eac_ruby_gems_utils/gem'
|
3
4
|
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'eac_ruby_utils/filesystem_cache'
|
4
6
|
|
5
7
|
module EacRubyBase0
|
6
8
|
class Application
|
7
9
|
enable_simple_cache
|
8
|
-
|
10
|
+
enable_listable
|
11
|
+
lists.add_symbol :option, :name, :home_dir
|
12
|
+
|
13
|
+
common_constructor :gemspec_dir, :options, default: [{}] do
|
9
14
|
self.gemspec_dir = gemspec_dir.to_pathname
|
15
|
+
self.options = options.symbolize_keys.assert_valid_keys(self.class.lists.option.values).freeze
|
10
16
|
end
|
11
17
|
|
12
18
|
delegate :version, to: :self_gem
|
@@ -15,6 +21,32 @@ module EacRubyBase0
|
|
15
21
|
vendor_gems + [self_gem]
|
16
22
|
end
|
17
23
|
|
24
|
+
{ cache: '.cache', config: '.config', data: '.local/share' }.each do |item, subpath|
|
25
|
+
xdg_env_method_name = "#{item}_xdg_env"
|
26
|
+
|
27
|
+
define_method xdg_env_method_name do
|
28
|
+
ENV["XDG_#{item.upcase}_HOME"].if_present(&:to_pathname)
|
29
|
+
end
|
30
|
+
|
31
|
+
define_method "#{item}_dir" do
|
32
|
+
(send(xdg_env_method_name) || home_dir.join(subpath)).join(name)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def fs_cache
|
37
|
+
@fs_cache ||= ::EacRubyUtils::FilesystemCache.new(
|
38
|
+
cache_dir.join(::EacRubyUtils::FilesystemCache.name.parameterize)
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
def home_dir
|
43
|
+
@home_dir ||= (options[OPTION_HOME_DIR] || ENV.fetch('HOME')).to_pathname
|
44
|
+
end
|
45
|
+
|
46
|
+
def name
|
47
|
+
options[OPTION_NAME] || self_gem.name
|
48
|
+
end
|
49
|
+
|
18
50
|
def vendor_dir
|
19
51
|
gemspec_dir.join('vendor')
|
20
52
|
end
|
@@ -1,26 +1,31 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'eac_cli/
|
3
|
+
require 'eac_cli/runner_with/help'
|
4
|
+
require 'eac_cli/runner_with/subcommands'
|
4
5
|
require 'eac_ruby_utils/core_ext'
|
5
6
|
|
6
7
|
module EacRubyBase0
|
7
8
|
module Runner
|
8
9
|
require_sub __FILE__
|
10
|
+
enable_console_speaker
|
9
11
|
common_concern do
|
10
|
-
include ::EacCli::
|
12
|
+
include ::EacCli::RunnerWith::Help
|
13
|
+
include ::EacCli::RunnerWith::Subcommands
|
11
14
|
runner_definition do
|
12
15
|
bool_opt '-q', '--quiet', 'Quiet mode.'
|
16
|
+
bool_opt '-I', '--no-input', 'Fail if a input is requested.'
|
13
17
|
subcommands
|
14
18
|
alt do
|
15
|
-
bool_opt '-V', '--version', 'Show version.'
|
19
|
+
bool_opt '-V', '--version', 'Show version.', usage: true, required: true
|
16
20
|
end
|
17
21
|
end
|
18
22
|
end
|
19
23
|
|
20
24
|
def run
|
21
25
|
on_speaker_node do |node|
|
22
|
-
node.stderr = ::StringIO.new if
|
23
|
-
if
|
26
|
+
node.stderr = ::StringIO.new if parsed.quiet?
|
27
|
+
node.stdin = FailIfRequestInput.new if parsed.no_input?
|
28
|
+
if parsed.version?
|
24
29
|
show_version
|
25
30
|
else
|
26
31
|
run_with_subcommand
|
@@ -28,8 +33,22 @@ module EacRubyBase0
|
|
28
33
|
end
|
29
34
|
end
|
30
35
|
|
36
|
+
def application_version
|
37
|
+
runner_context.call(:application).version.to_s
|
38
|
+
end
|
39
|
+
|
31
40
|
def show_version
|
32
|
-
out(
|
41
|
+
out("#{application_version}\n")
|
42
|
+
end
|
43
|
+
|
44
|
+
class FailIfRequestInput
|
45
|
+
enable_console_speaker
|
46
|
+
|
47
|
+
%w[gets noecho].each do |method|
|
48
|
+
define_method(method) do
|
49
|
+
raise "Input method requested (\"#{method}\") and option --no-input is set"
|
50
|
+
end
|
51
|
+
end
|
33
52
|
end
|
34
53
|
end
|
35
54
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eac_ruby_base0
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Put here the authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eac_cli
|
@@ -16,42 +16,48 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.7'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: eac_ruby_gems_utils
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.7'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 0.7.2
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
41
|
- - "~>"
|
39
42
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
43
|
+
version: '0.7'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.7.2
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: eac_ruby_utils
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
51
|
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0.
|
53
|
+
version: '0.46'
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
58
|
- - "~>"
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0.
|
60
|
+
version: '0.46'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: eac_ruby_gem_support
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,8 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
107
|
- !ruby/object:Gem::Version
|
102
108
|
version: '0'
|
103
109
|
requirements: []
|
104
|
-
|
105
|
-
rubygems_version: 2.7.7
|
110
|
+
rubygems_version: 3.0.8
|
106
111
|
signing_key:
|
107
112
|
specification_version: 4
|
108
113
|
summary: Put here de description.
|