eac_tools 0.68.0 → 0.69.1

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: f63f09025e8e8556ee1d7ff523a4b446e31d3fd41f2cbc61fba7bbf0e6d71750
4
- data.tar.gz: 2d3999c05d5c690f2a99b50a683476f73e1dc48d280822b6b9f4ba67f36e5481
3
+ metadata.gz: '009dade4ed624a02bbe58452512587fde89139f556705ca4dc04a7b7a07aa4db'
4
+ data.tar.gz: f5e0232487bf64235ced72c158e3fb4767ec03c10f12c2fab707d38dda29ddf2
5
5
  SHA512:
6
- metadata.gz: 6c2aa0133d8cffca359ad2c33d6a22e8fa6dd1753c27392674b2ec9989d1ec252f7b66450668456afcd766b38119a9afeff4ecff2bfa1e03f689354cc3d6f682
7
- data.tar.gz: 98273baeb8b792a5196e5f22a5babae50e91832fb09e1b5734a47c22209ad93021c09821bf5cc980501fd89b9dc79acb85cbe93f12ac5386d9dbb88b4eb20b52
6
+ metadata.gz: 51fb45c77591d5256b4af43189cdd5febf57cdaa2cf6a01059903b86f8f96c65dfcf4e25f413bcf3e1f644fb38abfb76d26d2b9d79deeeebc76e08e0c4eb5719
7
+ data.tar.gz: 22b81b2557a307b73cb2733d5f0d5c38e184770402ccdfa798ce1f5e75d4e7803792e1f9b16962020006d5c0289be39b95d87af0f8327229dab6510cc960909f
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eac_tools (0.68.0)
5
- avm (~> 0.74)
4
+ eac_tools (0.69.1)
5
+ avm (~> 0.76)
6
6
  avm-eac_asciidoctor_base0 (~> 0.19)
7
7
  avm-eac_generic_base0 (~> 0.12)
8
8
  avm-eac_latex_base0 (~> 0.3, >= 0.3.1)
@@ -17,18 +17,18 @@ PATH
17
17
  avm-eac_webapp_base0 (~> 0.17, >= 0.17.2)
18
18
  avm-eac_wordpress_base0 (~> 0.3, >= 0.3.1)
19
19
  avm-git (~> 0.13, >= 0.13.3)
20
- avm-tools (~> 0.150)
21
- eac_ruby_utils (~> 0.117)
20
+ avm-tools (~> 0.151, >= 0.151.1)
21
+ eac_ruby_utils (~> 0.117, >= 0.117.1)
22
22
 
23
23
  PATH
24
24
  remote: sub/aranha-parsers
25
25
  specs:
26
- aranha-parsers (0.18.0)
26
+ aranha-parsers (0.19.0)
27
27
  activesupport (>= 4.0.0)
28
28
  addressable (~> 2.8, >= 2.8.4)
29
- eac_envs-http (~> 0.3, >= 0.3.1)
30
- eac_ruby_utils (~> 0.116)
31
- nokogiri (~> 1.14, >= 1.14.4)
29
+ eac_envs-http (~> 0.3, >= 0.3.2)
30
+ eac_ruby_utils (~> 0.117)
31
+ nokogiri (~> 1.15, >= 1.15.1)
32
32
  ofx-parser (~> 1.1)
33
33
 
34
34
  PATH
@@ -174,9 +174,9 @@ PATH
174
174
  PATH
175
175
  remote: sub/avm-tools
176
176
  specs:
177
- avm-tools (0.150.0)
178
- aranha-parsers (~> 0.18)
179
- avm (~> 0.74)
177
+ avm-tools (0.151.1)
178
+ aranha-parsers (~> 0.19)
179
+ avm (~> 0.76)
180
180
  avm-eac_ruby_base1 (~> 0.30, >= 0.30.3)
181
181
  avm-eac_ubuntu_base0 (~> 0.4, >= 0.4.3)
182
182
  avm-files (~> 0.6, >= 0.6.2)
@@ -192,14 +192,14 @@ PATH
192
192
  PATH
193
193
  remote: sub/avm
194
194
  specs:
195
- avm (0.74.0)
196
- aranha-parsers (~> 0.18)
197
- eac_cli (~> 0.35)
195
+ avm (0.76.0)
196
+ aranha-parsers (~> 0.19)
197
+ eac_cli (~> 0.35, >= 0.35.1)
198
198
  eac_config (~> 0.12)
199
199
  eac_docker (~> 0.7)
200
200
  eac_fs (~> 0.16)
201
201
  eac_git (~> 0.14, >= 0.14.1)
202
- eac_ruby_utils (~> 0.117)
202
+ eac_ruby_utils (~> 0.117, >= 0.117.1)
203
203
  eac_templates (~> 0.5)
204
204
  filesize (~> 0.2)
205
205
  htmlbeautifier (~> 1.4, >= 1.4.2)
@@ -208,7 +208,7 @@ PATH
208
208
  PATH
209
209
  remote: sub/eac_cli
210
210
  specs:
211
- eac_cli (0.35.0)
211
+ eac_cli (0.35.1)
212
212
  colorize (~> 0.8, >= 0.8.1)
213
213
  eac_config (~> 0.12)
214
214
  eac_ruby_utils (~> 0.117)
@@ -274,7 +274,7 @@ PATH
274
274
  PATH
275
275
  remote: sub/eac_ruby_utils
276
276
  specs:
277
- eac_ruby_utils (0.117.0)
277
+ eac_ruby_utils (0.117.1)
278
278
  activesupport (>= 4, < 7)
279
279
  addressable (~> 2.8, >= 2.8.4)
280
280
  bundler
@@ -314,7 +314,7 @@ GEM
314
314
  rubocop (~> 0.80.1)
315
315
  rubocop-rails (~> 2.4.2)
316
316
  rubocop-rspec (~> 1.38.1)
317
- faraday (2.7.4)
317
+ faraday (2.7.5)
318
318
  faraday-net_http (>= 2.0, < 3.1)
319
319
  ruby2_keywords (>= 0.0.4)
320
320
  faraday-follow_redirects (0.3.0)
@@ -335,12 +335,12 @@ GEM
335
335
  htmlbeautifier (1.4.2)
336
336
  i18n (1.13.0)
337
337
  concurrent-ruby (~> 1.0)
338
- jaro_winkler (1.5.4)
338
+ jaro_winkler (1.5.5)
339
339
  minitar (0.9)
340
340
  minitest (5.18.0)
341
341
  multipart-post (2.3.0)
342
342
  net-ssh (4.2.0)
343
- nokogiri (1.15.1-x86_64-linux)
343
+ nokogiri (1.15.2-x86_64-linux)
344
344
  racc (~> 1.4)
345
345
  ofx-parser (1.1.0)
346
346
  hpricot (>= 0.6)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacTools
4
- VERSION = '0.68.0'
4
+ VERSION = '0.69.1'
5
5
  end
@@ -14,9 +14,9 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.add_dependency 'activesupport', '>= 4.0.0'
16
16
  s.add_dependency 'addressable', '~> 2.8', '>= 2.8.4'
17
- s.add_dependency 'eac_envs-http', '~> 0.3', '>= 0.3.1'
18
- s.add_dependency 'eac_ruby_utils', '~> 0.116'
19
- s.add_dependency 'nokogiri', '~> 1.14', '>= 1.14.4'
17
+ s.add_dependency 'eac_envs-http', '~> 0.3', '>= 0.3.2'
18
+ s.add_dependency 'eac_ruby_utils', '~> 0.117'
19
+ s.add_dependency 'nokogiri', '~> 1.15', '>= 1.15.1'
20
20
  s.add_dependency 'ofx-parser', '~> 1.1'
21
21
 
22
22
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
@@ -10,11 +10,6 @@ module Aranha
10
10
  class Default < ::Aranha::Parsers::Html::Node::Base
11
11
  require_sub __FILE__, include_modules: true
12
12
 
13
- def array_value(node, xpath)
14
- r = node_set_value(node, xpath).map { |n| n.text.strip }
15
- r.join('|')
16
- end
17
-
18
13
  def join_value(node, xpath)
19
14
  m = ''
20
15
  node_set_value(node, xpath).each do |n|
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Aranha
4
4
  module Parsers
5
- VERSION = '0.18.0'
5
+ VERSION = '0.19.0'
6
6
  end
7
7
  end
data/sub/avm/avm.gemspec CHANGED
@@ -12,13 +12,13 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib}/**/*']
14
14
 
15
- s.add_dependency 'aranha-parsers', '~> 0.18'
16
- s.add_dependency 'eac_cli', '~> 0.35'
15
+ s.add_dependency 'aranha-parsers', '~> 0.19'
16
+ s.add_dependency 'eac_cli', '~> 0.35', '>= 0.35.1'
17
17
  s.add_dependency 'eac_config', '~> 0.12'
18
18
  s.add_dependency 'eac_docker', '~> 0.7'
19
19
  s.add_dependency 'eac_fs', '~> 0.16'
20
20
  s.add_dependency 'eac_git', '~> 0.14', '>= 0.14.1'
21
- s.add_dependency 'eac_ruby_utils', '~> 0.117'
21
+ s.add_dependency 'eac_ruby_utils', '~> 0.117', '>= 0.117.1'
22
22
  s.add_dependency 'eac_templates', '~> 0.5'
23
23
  s.add_dependency 'filesize', '~> 0.2'
24
24
  s.add_dependency 'htmlbeautifier', '~> 1.4', '>= 1.4.2'
@@ -9,22 +9,17 @@ module Avm
9
9
  module Data
10
10
  class Dumper < ::Avm::Data::Performer
11
11
  DEFAULT_EXPIRE_TIME = 1.day
12
+ DEFAULT_OVERWRITE = false
13
+ DEFAULT_ROTATE = true
12
14
 
13
15
  enable_speaker
14
16
  enable_listable
15
- lists.add_symbol :existing, :denied, :overwrite, :rotate, :rotate_expired
16
- immutable_accessor :existing, :expire_time, :target_path
17
+ immutable_accessor :expire_time, :target_path
18
+ immutable_accessor :overwrite, :rotate, type: :boolean
17
19
 
18
- # @return [String, nil]
20
+ # @return [nil]
19
21
  def cannot_perform_reason
20
- return nil if !target_path.exist? ||
21
- [EXISTING_OVERWRITE, EXISTING_ROTATE].include?(existing)
22
-
23
- if existing == EXISTING_DENIED
24
- 'Data exist and overwriting is denied'
25
- elsif existing == EXISTING_ROTATE_EXPIRED && !target_path_expired?
26
- 'Data exist and yet is not expired'
27
- end
22
+ nil
28
23
  end
29
24
 
30
25
  # @return [Pathname]
@@ -37,7 +32,7 @@ module Avm
37
32
 
38
33
  # @return [Boolean]
39
34
  def target_path_expired?
40
- target_path_time.if_present(false) { |v| v >= expire_time }
35
+ target_path_time.if_present(true) { |v| v >= expire_time }
41
36
  end
42
37
 
43
38
  # @return [ActiveSupport::Duration, nil]
@@ -60,16 +55,20 @@ module Avm
60
55
  raise "\"#{temp_data_path}\" is not a file" unless temp_data_path.file?
61
56
  end
62
57
 
58
+ # @return [String, nil]
59
+ def do_rotate
60
+ return unless target_path.exist?
61
+ return unless rotate?
62
+
63
+ infom "Rotating \"#{target_path}\"..."
64
+ ::Avm::Data::Rotate.new(target_path).run
65
+ end
66
+
63
67
  # @return [Array<Symbol>]
64
68
  def excluded_units
65
69
  excludes.map(&:to_sym).sort
66
70
  end
67
71
 
68
- # @return [Symbol, nil]
69
- def existing_set_filter(value)
70
- value.nil? ? nil : self.class.lists.existing.value_validate!(value)
71
- end
72
-
73
72
  # @return [ActiveSupport::Duration]
74
73
  def expire_time_get_filter(value)
75
74
  value || DEFAULT_EXPIRE_TIME
@@ -91,13 +90,21 @@ module Avm
91
90
 
92
91
  # @return [self]
93
92
  def internal_perform
93
+ use_current? ? internal_perform_use_current : internal_perform_new
94
+ end
95
+
96
+ def internal_perform_new
94
97
  on_temp_data_file do
95
98
  build_temp_data_file
96
- rotate
99
+ do_rotate
97
100
  move_data_to_target_path
98
101
  end
99
102
  end
100
103
 
104
+ def internal_perform_use_current
105
+ infom "Dump \"#{target_path}\" exists and is unexpired"
106
+ end
107
+
101
108
  def move_data_to_target_path
102
109
  ::FileUtils.mv(temp_data_path, target_path.assert_parent)
103
110
  end
@@ -109,19 +116,27 @@ module Avm
109
116
  end
110
117
  end
111
118
 
112
- # @return [String, nil]
113
- def rotate
114
- return unless target_path.exist?
115
- return unless existing == EXISTING_ROTATE
119
+ # @return [Boolean]
120
+ def overwrite_get_filter(value)
121
+ value.nil? ? DEFAULT_OVERWRITE : value
122
+ end
116
123
 
117
- infom "Rotating \"#{target_path}\"..."
118
- ::Avm::Data::Rotate.new(target_path).run
124
+ def rotate_get_filter(value)
125
+ value.nil? ? DEFAULT_ROTATE : value
119
126
  end
120
127
 
121
128
  # @return [Pathname]
122
129
  def target_path_get_filter(value)
123
130
  (value || default_dump_path).to_pathname
124
131
  end
132
+
133
+ # @return [Boolean]
134
+ def use_current?
135
+ return false unless target_path.exist?
136
+ return false if overwrite?
137
+
138
+ !target_path_expired?
139
+ end
125
140
  end
126
141
  end
127
142
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/data/performer'
4
+ require 'avm/data/rotate'
5
+ require 'eac_ruby_utils/core_ext'
6
+ require 'eac_ruby_utils/fs/temp'
7
+
8
+ module Avm
9
+ module Data
10
+ class Loader < ::Avm::Data::Performer
11
+ immutable_accessor :source_path
12
+
13
+ # @return [String, nil]
14
+ def cannot_perform_reason
15
+ return 'Source path not set' if source_path.blank?
16
+ return "\"#{source_path}\" is not a file" unless source_path.file?
17
+
18
+ nil
19
+ end
20
+
21
+ protected
22
+
23
+ def internal_perform
24
+ data_owner.load(source_path, *include_excludes_arguments)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avm/data/package/base_performer'
3
4
  require 'avm/data/package/build_directory'
4
5
  require 'eac_ruby_utils/core_ext'
5
6
  require 'minitar'
@@ -7,37 +8,27 @@ require 'minitar'
7
8
  module Avm
8
9
  module Data
9
10
  class Package
10
- class Load
11
+ class Load < ::Avm::Data::Package::BasePerformer
12
+ enable_method_class
11
13
  enable_speaker
12
14
  include ::Avm::Data::Package::BuildDirectory
13
15
 
14
- common_constructor :package, :data_file_path
16
+ attr_reader :source_path
15
17
 
16
- def runnable?
17
- cannot_run_reason.blank?
18
+ def initialize(package, source_path, options = {})
19
+ super(package, options)
20
+ @source_path = source_path.to_pathname
18
21
  end
19
22
 
20
- def cannot_run_reason
21
- return nil if data_file_exist?
22
-
23
- "Data file \"#{data_file_path}\" does not exist"
24
- end
25
-
26
- def run
27
- raise "Cannot run: #{cannot_run_reason}" unless runnable?
28
-
23
+ def result
29
24
  on_build_directory do
30
25
  extract_packages_to_build_directory
31
- package.load_units_from_directory(build_directory)
26
+ package.load_units_from_directory(build_directory, selected_units)
32
27
  end
33
28
  end
34
29
 
35
- def data_file_exist?
36
- ::File.exist?(data_file_path)
37
- end
38
-
39
30
  def extract_packages_to_build_directory
40
- ::Minitar.unpack(data_file_path, build_directory.to_path)
31
+ ::Minitar.unpack(source_path.to_path, build_directory.to_path)
41
32
  end
42
33
  end
43
34
  end
@@ -32,10 +32,6 @@ module Avm
32
32
  DATA_FILE_EXTENSION
33
33
  end
34
34
 
35
- def load(data_path)
36
- ::Avm::Data::Package::Load.new(self, data_path)
37
- end
38
-
39
35
  def dump_units_to_directory(directory, selected_units = nil)
40
36
  run_callbacks :dump do
41
37
  (selected_units || units).each do |identifier, unit|
@@ -44,9 +40,11 @@ module Avm
44
40
  end
45
41
  end
46
42
 
47
- def load_units_from_directory(directory)
43
+ def load_units_from_directory(directory, selected_units = nil)
48
44
  run_callbacks :load do
49
- units.each { |identifier, unit| unit.load_from_directory(directory, identifier) }
45
+ (selected_units || units).each do |identifier, unit|
46
+ unit.load_from_directory(directory, identifier)
47
+ end
50
48
  end
51
49
  end
52
50
 
@@ -19,7 +19,7 @@ module Avm
19
19
 
20
20
  # @return [self]
21
21
  def perform
22
- raise "Cannot run: #{cannot_run_reason}" unless performable?
22
+ raise "Cannot run: #{cannot_perform_reason}" unless performable?
23
23
 
24
24
  internal_perform
25
25
 
@@ -6,6 +6,11 @@ module Avm
6
6
  module Instances
7
7
  class Base
8
8
  module EntryKeys
9
+ # @return [Enumerable<String>]
10
+ def entry_keys
11
+ ::Avm::Instances::EntryKeys.all
12
+ end
13
+
9
14
  ::Avm::Instances::EntryKeys.all.each do |key|
10
15
  method_name = key.to_s.variableize
11
16
  define_method method_name do
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.74.0'
4
+ VERSION = '0.76.0'
5
5
  end
@@ -14,8 +14,8 @@ Gem::Specification.new do |s|
14
14
  s.bindir = 'exe'
15
15
  s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
16
16
 
17
- s.add_dependency 'aranha-parsers', '~> 0.18'
18
- s.add_dependency 'avm', '~> 0.74'
17
+ s.add_dependency 'aranha-parsers', '~> 0.19'
18
+ s.add_dependency 'avm', '~> 0.76'
19
19
  s.add_dependency 'avm-eac_ruby_base1', '~> 0.30', '>= 0.30.3'
20
20
  s.add_dependency 'avm-eac_ubuntu_base0', '~> 0.4', '>= 0.4.3'
21
21
  s.add_dependency 'avm-files', '~> 0.6', '>= 0.6.2'
@@ -9,46 +9,13 @@ module Avm
9
9
  class Instance < ::Avm::Instances::Runner
10
10
  class Data
11
11
  class Load
12
- runner_with :help do
13
- desc 'Load utility for EacRailsBase instance.'
14
- arg_opt '-S', '--source-instance', 'Informa a instância a ser extraída o dump.'
15
- pos_arg :dump_path, optional: true
12
+ runner_with :help, :include_exclude, :instance_data_load do
13
+ desc 'Load utility for instance.'
16
14
  end
17
15
 
18
- def run
19
- return fatal_error("Dump \"#{dump_path}\" does not exist") unless
20
- ::File.exist?(dump_path)
21
-
22
- load_dump
23
- success("Dump loaded from \"#{dump_path}\"")
24
- end
25
-
26
- def dump_path_uncached
27
- return parsed.dump_path.to_s if parsed.dump_path.present?
28
- return source_instance_dump_path if parsed.source_instance.present?
29
-
30
- raise "Dump path unknown (Options: #{parsed})"
31
- end
32
-
33
- def source_instance_dump_path
34
- runner_context.call(:instance).class.by_id(parsed.source_instance).run_subcommand(
35
- ::Avm::Tools::Runner::Instance::Data::Dump, []
36
- )
37
- end
38
-
39
- def load_dump
40
- info "Loading dump \"#{dump_path}\"..."
41
- package_load.run
42
- end
43
-
44
- def dump_instance_method
45
- :dump_database
46
- end
47
-
48
- private
49
-
50
- def package_load_uncached
51
- runner_context.call(:instance).data_package.load(dump_path)
16
+ # @return [Avm::Instances::Data::Package]
17
+ def source_instance_data_owner
18
+ source_instance.data_package
52
19
  end
53
20
  end
54
21
  end
@@ -10,17 +10,11 @@ module Avm
10
10
  class Data
11
11
  class Unit
12
12
  class Load
13
- runner_with :help do
14
- pos_arg :dump_path
15
- end
16
-
17
- def run
18
- data_owner.load(dump_path)
19
- end
13
+ runner_with :help, :instance_data_load
20
14
 
21
- # @return [Pathname]
22
- def dump_path
23
- parsed.dump_path.to_pathname
15
+ # @return [Avm::Instances::Data::Unit]
16
+ def source_instance_data_owner
17
+ source_instance.data_package.unit(data_owner.identifier)
24
18
  end
25
19
  end
26
20
  end
@@ -28,14 +28,10 @@ module Avm
28
28
  end
29
29
 
30
30
  def entry_keys_banner
31
- ::Avm::Instances::EntryKeys.all.each do |key|
31
+ instance.entry_keys.each do |key|
32
32
  infov key, instance.read_entry_optional(key)
33
33
  end
34
34
  end
35
-
36
- def instance
37
- runner_context.call(:instance)
38
- end
39
35
  end
40
36
  end
41
37
  end
@@ -10,8 +10,6 @@ module Avm
10
10
  module InstanceDataDump
11
11
  common_concern do
12
12
  enable_simple_cache
13
- include ::Avm::Tools::RunnerWith::InstanceDataPerformer
14
-
15
13
  runner_definition do
16
14
  bool_opt '-w', '--rewrite', 'Forces dump overwrite.'
17
15
  pos_arg :dump_path, optional: true
@@ -23,6 +21,8 @@ module Avm
23
21
  end
24
22
  end
25
23
 
24
+ include ::Avm::Tools::RunnerWith::InstanceDataPerformer
25
+
26
26
  DUMP_EXPIRE_TIME = 1.day
27
27
  NO_DUMP_MESSAGE = 'Dump "%s" already exist and rewrite options was no setted nor ' \
28
28
  'dump was expired.'
@@ -41,25 +41,18 @@ module Avm
41
41
 
42
42
  # @return [Avm::Data::Dumper]
43
43
  def data_performer_uncached
44
- super.existing(dump_existing)
44
+ r = super.overwrite(parsed.rewrite?)
45
+ parsed.dump_path.if_present(r) { |v| r.target_path(v.to_pathname) }
45
46
  end
46
47
 
47
48
  # @return [Pathname]
48
49
  def dump_path
49
- (parsed.dump_path || default_dump_path).to_pathname
50
+ data_performer.target_path
50
51
  end
51
52
 
52
53
  def default_dump_path
53
54
  data_performer.default_dump_path
54
55
  end
55
-
56
- def dump_existing
57
- if parsed.rewrite?
58
- ::Avm::Data::Package::Dump::EXISTING_ROTATE
59
- else
60
- ::Avm::Data::Package::Dump::EXISTING_ROTATE_EXPIRED
61
- end
62
- end
63
56
  end
64
57
  end
65
58
  end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/data/dumper'
4
+ require 'avm/data/loader'
5
+ require 'eac_cli/core_ext'
6
+ require 'avm/tools/runner_with/instance_data_performer'
7
+
8
+ module Avm
9
+ module Tools
10
+ module RunnerWith
11
+ module InstanceDataLoad
12
+ common_concern do
13
+ enable_simple_cache
14
+
15
+ runner_definition do
16
+ arg_opt '-S', '--source-instance', 'Informa a instância a ser extraída o dump.'
17
+ bool_opt '-w', '--rewrite'
18
+ pos_arg :dump_path, optional: true
19
+ end
20
+
21
+ set_callback :run, :after do
22
+ success("Dump loaded from \"#{dump_path}\"")
23
+ end
24
+ end
25
+
26
+ include ::Avm::Tools::RunnerWith::InstanceDataPerformer
27
+
28
+ # @return [Class]
29
+ def data_performer_class
30
+ ::Avm::Data::Loader
31
+ end
32
+
33
+ private
34
+
35
+ # @return [Avm::Data::Loader]
36
+ def data_performer_uncached
37
+ super.source_path(dump_path)
38
+ end
39
+
40
+ # @return [Pathname]
41
+ def dump_path_uncached
42
+ return parsed.dump_path.to_pathname if parsed.dump_path.present?
43
+ return source_instance_dump_path if parsed.source_instance.present?
44
+
45
+ fatal_error "Dump path not set (Options: #{parsed})"
46
+ end
47
+
48
+ # @return [Avm::Instances::Base]
49
+ def source_instance
50
+ runner_context.call(:instance).class.by_id(parsed.source_instance)
51
+ end
52
+
53
+ # @return [Avm::Data::Dumper]
54
+ def source_instance_dumper
55
+ data_performer_set_includes_excludes(
56
+ ::Avm::Data::Dumper.new(source_instance_data_owner).overwrite(parsed.rewrite?)
57
+ )
58
+ end
59
+
60
+ # @return [Pathname]
61
+ def source_instance_dump_path
62
+ r = source_instance_dumper
63
+ r.perform
64
+ r.target_path
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -17,7 +17,7 @@ module Avm
17
17
  if data_performer.performable?
18
18
  data_performer.perform
19
19
  else
20
- warn("Cannot perform: #{data_performer.cannot_perform_reason}")
20
+ fatal_error("Cannot perform: #{data_performer.cannot_perform_reason}")
21
21
  end
22
22
  end
23
23
 
@@ -25,7 +25,12 @@ module Avm
25
25
 
26
26
  # @return [Avm::Data::Performer]
27
27
  def data_performer_uncached
28
- %i[include exclude].inject(data_performer_class.new(data_owner)) do |a1, e1|
28
+ data_performer_set_includes_excludes(data_performer_class.new(data_owner))
29
+ end
30
+
31
+ # @return [Avm::Data::Performer]
32
+ def data_performer_set_includes_excludes(data_performer)
33
+ %i[include exclude].inject(data_performer) do |a1, e1|
29
34
  if_respond(e1, []).inject(a1) { |a2, e2| a2.send(e1, e2) }
30
35
  end
31
36
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Tools
5
- VERSION = '0.150.0'
5
+ VERSION = '0.151.1'
6
6
  end
7
7
  end
@@ -20,8 +20,8 @@ module EacCli
20
20
  end
21
21
 
22
22
  # Call a method in the runner or in one of it ancestors.
23
- def call(method_name, *args)
24
- context_call_responder(method_name).call(*args)
23
+ def call(method_name, *args, &block)
24
+ context_call_responder(method_name).call(*args, &block)
25
25
  end
26
26
 
27
27
  # @return [EacCli::Runner::ContextResponders]
@@ -46,8 +46,9 @@ module EacCli
46
46
  end
47
47
  end
48
48
 
49
- def parent_call(method_name, *args)
50
- return parent.runner_context.call(method_name, *args) if parent.respond_to?(:runner_context)
49
+ def parent_call(method_name, *args, &block)
50
+ return parent.runner_context.call(method_name, *args, &block) if
51
+ parent.respond_to?(:runner_context)
51
52
 
52
53
  raise "Parent #{parent} do not respond to .context or .runner_context (Runner: #{runner})"
53
54
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacCli
4
- VERSION = '0.35.0'
4
+ VERSION = '0.35.1'
5
5
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.117.0'
4
+ VERSION = '0.117.1'
5
5
  end
@@ -40,7 +40,7 @@ module EacRubyUtils
40
40
 
41
41
  load(object)
42
42
  true
43
- rescue ::Psych::SyntaxError
43
+ rescue ::Psych::Exception
44
44
  false
45
45
  end
46
46
 
@@ -65,7 +65,8 @@ RSpec.describe ::EacRubyUtils::Yaml do
65
65
  'text' => false,
66
66
  "--- Text\n\n" => true,
67
67
  "---\n" + ":index: 0\n" + ":codec_name: h264\n" + ":codec_type: video\n" => true,
68
- '--- - \n bla bla bla' => false
68
+ '--- - \n bla bla bla' => false,
69
+ "---\n*STRING" => false
69
70
  }.each do |source, result|
70
71
  it "return #{result} to source \"#{source}\"" do
71
72
  expect(described_class.yaml?(source)).to eq(result)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.68.0
4
+ version: 0.69.1
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: 2023-05-21 00:00:00.000000000 Z
11
+ date: 2023-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.74'
19
+ version: '0.76'
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.74'
26
+ version: '0.76'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: avm-eac_asciidoctor_base0
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -292,14 +292,20 @@ dependencies:
292
292
  requirements:
293
293
  - - "~>"
294
294
  - !ruby/object:Gem::Version
295
- version: '0.150'
295
+ version: '0.151'
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: 0.151.1
296
299
  type: :runtime
297
300
  prerelease: false
298
301
  version_requirements: !ruby/object:Gem::Requirement
299
302
  requirements:
300
303
  - - "~>"
301
304
  - !ruby/object:Gem::Version
302
- version: '0.150'
305
+ version: '0.151'
306
+ - - ">="
307
+ - !ruby/object:Gem::Version
308
+ version: 0.151.1
303
309
  - !ruby/object:Gem::Dependency
304
310
  name: eac_ruby_utils
305
311
  requirement: !ruby/object:Gem::Requirement
@@ -307,6 +313,9 @@ dependencies:
307
313
  - - "~>"
308
314
  - !ruby/object:Gem::Version
309
315
  version: '0.117'
316
+ - - ">="
317
+ - !ruby/object:Gem::Version
318
+ version: 0.117.1
310
319
  type: :runtime
311
320
  prerelease: false
312
321
  version_requirements: !ruby/object:Gem::Requirement
@@ -314,6 +323,9 @@ dependencies:
314
323
  - - "~>"
315
324
  - !ruby/object:Gem::Version
316
325
  version: '0.117'
326
+ - - ">="
327
+ - !ruby/object:Gem::Version
328
+ version: 0.117.1
317
329
  - !ruby/object:Gem::Dependency
318
330
  name: eac_ruby_gem_support
319
331
  requirement: !ruby/object:Gem::Requirement
@@ -1098,6 +1110,7 @@ files:
1098
1110
  - sub/avm-tools/lib/avm/tools/runner_with/include_exclude.rb
1099
1111
  - sub/avm-tools/lib/avm/tools/runner_with/instance_data_clear.rb
1100
1112
  - sub/avm-tools/lib/avm/tools/runner_with/instance_data_dump.rb
1113
+ - sub/avm-tools/lib/avm/tools/runner_with/instance_data_load.rb
1101
1114
  - sub/avm-tools/lib/avm/tools/runner_with/instance_data_performer.rb
1102
1115
  - sub/avm-tools/lib/avm/tools/self.rb
1103
1116
  - sub/avm-tools/lib/avm/tools/version.rb
@@ -1139,6 +1152,7 @@ files:
1139
1152
  - sub/avm/lib/avm/data/callbacks.rb
1140
1153
  - sub/avm/lib/avm/data/clearer.rb
1141
1154
  - sub/avm/lib/avm/data/dumper.rb
1155
+ - sub/avm/lib/avm/data/loader.rb
1142
1156
  - sub/avm/lib/avm/data/package.rb
1143
1157
  - sub/avm/lib/avm/data/package/base_performer.rb
1144
1158
  - sub/avm/lib/avm/data/package/build_directory.rb