avm-apps 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 2933ffb6aafbf506d273504900e5ac52449c05953bd2f5d7b7ad9139e144e399
4
+ data.tar.gz: 15cda68d915b0b0c07766c7a9e5275bf5a19283651981d275dac6af798b40146
5
+ SHA512:
6
+ metadata.gz: 03e264d925a3dc13c0e8edaf393b749282d6a12ebaccb2206ba7283393f5f400e37d385af9abbf73f8f99afe623711d98134c90918ff2ffa7d701bbbf6057ea8
7
+ data.tar.gz: 6f2578f159791884f912698b669164b899159b3785981af98616092765c18371874ea4a2766597ca8f4c14ba75e9bb0122ff6c4ba1df81629cdaefa83d50aa10
data/lib/avm/apps.rb ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Apps
7
+ require_sub __FILE__
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Apps
7
+ module Jobs
8
+ require_sub __FILE__
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/apps/jobs/variables_source'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Apps
8
+ module Jobs
9
+ module Base
10
+ common_concern do
11
+ include ::ActiveSupport::Callbacks
12
+
13
+ enable_console_speaker
14
+ enable_simple_cache
15
+ enable_listable
16
+ common_constructor :instance, :options, default: [{}] do
17
+ if option_list.present?
18
+ self.options = option_list.hash_keys_validate!(options.symbolize_keys)
19
+ end
20
+ end
21
+ define_callbacks(*jobs)
22
+ end
23
+
24
+ module ClassMethods
25
+ def jobs
26
+ const_get('JOBS').dup
27
+ end
28
+ end
29
+
30
+ module InstanceMethods
31
+ def option_list
32
+ nil
33
+ end
34
+
35
+ def run
36
+ start_banner if respond_to?(:start_banner)
37
+ run_jobs
38
+ ::Avm::Result.success('Done!')
39
+ rescue ::Avm::Result::Error => e
40
+ e.to_result
41
+ end
42
+
43
+ def variables_source
44
+ ::Avm::Apps::Jobs::VariablesSource.new(self, instance)
45
+ end
46
+
47
+ protected
48
+
49
+ def run_jobs
50
+ jobs.each do |job|
51
+ run_callbacks job do
52
+ send(job)
53
+ end
54
+ end
55
+ end
56
+
57
+ def jobs
58
+ self.class.jobs
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Apps
7
+ module Jobs
8
+ class VariablesSource
9
+ common_constructor :job, :instance
10
+
11
+ def read_entry(path, options = {})
12
+ entry_from_job(path) || instance.read_entry(path, options)
13
+ end
14
+
15
+ private
16
+
17
+ def entry_from_job(path)
18
+ method = path.gsub('.', '_').underscore
19
+ return job.send(method) if job.respond_to?(method, true)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Apps
5
+ VERSION = '0.1.0'
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: avm-apps
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Eduardo H. Bogoni
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-02-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: eac_ruby_utils
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.58'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.58.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.58'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.58.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: eac_ruby_gem_support
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.1'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.1.2
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.1'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.1.2
53
+ description:
54
+ email:
55
+ executables: []
56
+ extensions: []
57
+ extra_rdoc_files: []
58
+ files:
59
+ - lib/avm/apps.rb
60
+ - lib/avm/apps/jobs.rb
61
+ - lib/avm/apps/jobs/base.rb
62
+ - lib/avm/apps/jobs/variables_source.rb
63
+ - lib/avm/apps/version.rb
64
+ homepage:
65
+ licenses: []
66
+ metadata: {}
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubygems_version: 3.0.8
83
+ signing_key:
84
+ specification_version: 4
85
+ summary: AVM components for applications.
86
+ test_files: []