avm-eac_ruby_base1 0.33.1 → 0.34.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/avm/eac_ruby_base1/file_formats/base/file_resource_name.rb +1 -1
- data/lib/avm/eac_ruby_base1/file_formats/base.rb +1 -1
- data/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish.rb +10 -10
- data/lib/avm/eac_ruby_base1/rubygems/remote.rb +36 -0
- data/lib/avm/eac_ruby_base1/source_generators/base/dependencies.rb +40 -4
- data/lib/avm/eac_ruby_base1/source_generators/base/options.rb +8 -3
- data/lib/avm/eac_ruby_base1/source_generators/base/version_builder.rb +13 -3
- data/lib/avm/eac_ruby_base1/source_generators/base.rb +38 -37
- data/lib/avm/eac_ruby_base1/sources/gemfile_local/sibling.rb +53 -0
- data/lib/avm/eac_ruby_base1/sources/gemfile_local.rb +69 -0
- data/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_local.rb +8 -50
- data/lib/avm/eac_ruby_base1/version.rb +1 -1
- data/template/avm/eac_ruby_base1/source_generators/base/gemspec.template +4 -4
- data/template/avm/eac_ruby_base1/source_generators/base/static/Gemfile +2 -2
- data/template/avm/eac_ruby_base1/source_generators/base/static/spec/rubocop_spec.rb +1 -1
- data/template/avm/eac_ruby_base1/source_generators/base/static/spec/spec_helper.rb +1 -1
- metadata +17 -60
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '0551452197578de7d88bf0dd64036f934868b554dd4109d51bacdb185ab62a0a'
|
|
4
|
+
data.tar.gz: 4e012d782e992b4124597b66dafd4a01ac7d11d8838001ca4e226394cdc32cae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 13380e052781533f80d899beda569abb36f5fb18267be920374351e48ba83f41709584f839ea3b3ec8f44b469bf8b9899544114c012fe4a8b4dcd115112db49a
|
|
7
|
+
data.tar.gz: 78be6a19cea6806ead0261d93e08cc1264f0b1dfd515c16c9ad0ee14e500c442b58731bc94c57c422801d3b6c8e3499a539a30c8f3bff8b3d9619a4deedab7bc
|
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
require 'eac_ruby_utils/simple_cache'
|
|
4
4
|
require 'rubygems'
|
|
5
5
|
require 'eac_cli/speaker'
|
|
6
|
+
require 'avm/eac_ruby_base1/rubygems/remote'
|
|
6
7
|
require 'avm/launcher/publish/base'
|
|
7
8
|
require 'avm/launcher/publish/check_result'
|
|
8
9
|
require 'avm/eac_ruby_base1/launcher/gem'
|
|
9
|
-
require 'eac_envs/http/request'
|
|
10
|
-
require 'eac_envs/http/response'
|
|
11
10
|
|
|
12
11
|
module Avm
|
|
13
12
|
module EacRubyBase1
|
|
@@ -98,16 +97,17 @@ module Avm
|
|
|
98
97
|
end
|
|
99
98
|
|
|
100
99
|
# @return [Array]
|
|
101
|
-
def
|
|
102
|
-
|
|
103
|
-
.url("https://rubygems.org/api/v1/versions/#{gem_spec.name}.json")
|
|
104
|
-
.response.body_data_or_raise
|
|
105
|
-
rescue EacEnvs::Http::Response => e
|
|
106
|
-
e.status == 404 ? [] : raise(e)
|
|
100
|
+
def gem_versions
|
|
101
|
+
remote_gem.versions
|
|
107
102
|
end
|
|
108
103
|
|
|
109
|
-
def
|
|
110
|
-
|
|
104
|
+
def gem_version_max
|
|
105
|
+
remote_gem.maximum_number
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# @return [Avm::EacRubyBase1::Rubygems::Remote]
|
|
109
|
+
def remote_gem_uncached
|
|
110
|
+
::Avm::EacRubyBase1::Rubygems::Remote.new(gem_spec.name)
|
|
111
111
|
end
|
|
112
112
|
|
|
113
113
|
def push_gem
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
|
4
|
+
require 'eac_envs/http/request'
|
|
5
|
+
|
|
6
|
+
module Avm
|
|
7
|
+
module EacRubyBase1
|
|
8
|
+
module Rubygems
|
|
9
|
+
class Remote
|
|
10
|
+
enable_simple_cache
|
|
11
|
+
common_constructor :name
|
|
12
|
+
|
|
13
|
+
# @return [String]
|
|
14
|
+
def maximum_number
|
|
15
|
+
numbers.max
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @return [Array<String>]
|
|
19
|
+
def numbers
|
|
20
|
+
versions.map { |v| v.fetch('number') }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
protected
|
|
24
|
+
|
|
25
|
+
# @return [Array<Hash>]
|
|
26
|
+
def versions_uncached
|
|
27
|
+
::EacEnvs::Http::Request.new
|
|
28
|
+
.url("https://rubygems.org/api/v1/versions/#{name}.json")
|
|
29
|
+
.response.body_data_or_raise
|
|
30
|
+
rescue EacEnvs::Http::Response => e
|
|
31
|
+
e.status == 404 ? [] : raise(e)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -9,17 +9,53 @@ module Avm
|
|
|
9
9
|
module SourceGenerators
|
|
10
10
|
class Base < ::Avm::SourceGenerators::Base
|
|
11
11
|
module Dependencies
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
common_concern
|
|
13
|
+
|
|
14
|
+
COMMON_DEPENDENCY_GEMS = %w[eac_ruby_utils].freeze
|
|
15
|
+
DEVELOPMENT_DEPENDENCY_GEMS = %w[eac_ruby_gem_support].freeze
|
|
16
|
+
|
|
17
|
+
module ClassMethods
|
|
18
|
+
# @return [Array<String>]
|
|
19
|
+
def common_dependency_gems
|
|
20
|
+
COMMON_DEPENDENCY_GEMS
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @return [Array<String>]
|
|
24
|
+
def development_dependency_gems
|
|
25
|
+
DEVELOPMENT_DEPENDENCY_GEMS
|
|
26
|
+
end
|
|
14
27
|
end
|
|
15
28
|
|
|
16
|
-
|
|
17
|
-
|
|
29
|
+
# @return [String]
|
|
30
|
+
def common_dependencies
|
|
31
|
+
dependencies_section(:common_dependency_gems, '')
|
|
18
32
|
end
|
|
19
33
|
|
|
20
34
|
def dependency_version(gem_name)
|
|
21
35
|
::Avm::EacRubyBase1::SourceGenerators::Base::VersionBuilder.new(gem_name, options).to_s
|
|
22
36
|
end
|
|
37
|
+
|
|
38
|
+
# @return [String]
|
|
39
|
+
def development_dependencies
|
|
40
|
+
dependencies_section(:development_dependency_gems, 'development_')
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
protected
|
|
44
|
+
|
|
45
|
+
# @param gem_name [String]
|
|
46
|
+
# @param prefix [String]
|
|
47
|
+
# @return [String]
|
|
48
|
+
def dependency_line(gem_name, prefix)
|
|
49
|
+
"#{IDENT}s.add_#{prefix}dependency '#{gem_name}', #{dependency_version(gem_name)}\n"
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# @param setting_key [Symbol]
|
|
53
|
+
# @param prefix [String]
|
|
54
|
+
# @return [String]
|
|
55
|
+
def dependencies_section(gems_method, prefix)
|
|
56
|
+
self.class.send(gems_method).sort.map { |gem_name| dependency_line(gem_name, prefix) }
|
|
57
|
+
.join.rstrip
|
|
58
|
+
end
|
|
23
59
|
end
|
|
24
60
|
end
|
|
25
61
|
end
|
|
@@ -13,14 +13,19 @@ module Avm
|
|
|
13
13
|
GEMFILE_LOCK_OPTION = :'gemfile-lock'
|
|
14
14
|
|
|
15
15
|
OPTIONS = {
|
|
16
|
-
:'eac-ruby-utils-version' => 'Version for "eac_ruby_utils" gem.',
|
|
17
|
-
:'eac-ruby-gem-support-version' => 'Version for "eac_ruby_gem_support" gem.',
|
|
18
16
|
GEMFILE_LOCK_OPTION => 'Run "bundle install" at the end'
|
|
19
17
|
}.freeze
|
|
20
18
|
|
|
21
19
|
module ClassMethods
|
|
22
20
|
def option_list
|
|
23
|
-
OPTIONS.inject(super) { |a, e| a.option(*e) }
|
|
21
|
+
OPTIONS.merge(dependency_version_options).inject(super) { |a, e| a.option(*e) }
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @return [Hash<Symbol, String>]
|
|
25
|
+
def dependency_version_options
|
|
26
|
+
(common_dependency_gems + development_dependency_gems).sort.to_h do |gem_name|
|
|
27
|
+
["#{gem_name}_version".dasherize.to_sym, "Version for \"#{gem_name}\" gem."]
|
|
28
|
+
end
|
|
24
29
|
end
|
|
25
30
|
end
|
|
26
31
|
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'avm/source_generators/base'
|
|
4
|
+
require 'avm/eac_ruby_base1/rubygems/remote'
|
|
4
5
|
require 'eac_ruby_utils/core_ext'
|
|
5
6
|
|
|
6
7
|
module Avm
|
|
@@ -19,7 +20,7 @@ module Avm
|
|
|
19
20
|
|
|
20
21
|
# @return [Gem::Version]
|
|
21
22
|
def version
|
|
22
|
-
|
|
23
|
+
options_version || loaded_version || maximum_version
|
|
23
24
|
end
|
|
24
25
|
|
|
25
26
|
def two_segments
|
|
@@ -32,12 +33,21 @@ module Avm
|
|
|
32
33
|
|
|
33
34
|
private
|
|
34
35
|
|
|
36
|
+
# @return [Gem::Version]
|
|
37
|
+
def maximum_version
|
|
38
|
+
r = ::Avm::EacRubyBase1::Rubygems::Remote.new(gem_name).maximum_number
|
|
39
|
+
return ::Gem::Version.new(r) if r.present?
|
|
40
|
+
|
|
41
|
+
raise "None version found for gem \"#{gem_name}\""
|
|
42
|
+
end
|
|
43
|
+
|
|
35
44
|
def segments_uncached
|
|
36
45
|
version.release.to_s.split('.').map(&:to_i)
|
|
37
46
|
end
|
|
38
47
|
|
|
39
|
-
|
|
40
|
-
|
|
48
|
+
# @return [Gem::Version, nil]
|
|
49
|
+
def loaded_version
|
|
50
|
+
::Gem.loaded_specs[gem_name].if_present(&:version)
|
|
41
51
|
end
|
|
42
52
|
|
|
43
53
|
def options_version
|
|
@@ -9,33 +9,49 @@ module Avm
|
|
|
9
9
|
module EacRubyBase1
|
|
10
10
|
module SourceGenerators
|
|
11
11
|
class Base < ::Avm::SourceGenerators::Base
|
|
12
|
+
GEMSPEC_FILES_DIRECTORY_PATHS = %w[lib].freeze
|
|
13
|
+
GEMSPEC_FILES_FILE_PATHS = [].freeze
|
|
12
14
|
IDENT = ' '
|
|
13
|
-
JOBS = %w[
|
|
15
|
+
JOBS = %w[gemspec root_lib version_lib gemfile_lock].freeze
|
|
14
16
|
TEMPLATE_VARIABLES = %w[lib_path name root_module].freeze
|
|
15
17
|
|
|
16
18
|
enable_speaker
|
|
17
19
|
enable_simple_cache
|
|
18
20
|
require_sub __FILE__, include_modules: true
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
# @return [String]
|
|
23
|
+
def gemspec_extra
|
|
24
|
+
gemspec_extra_lines.map { |line| "\n#{IDENT}#{line}" }.join
|
|
22
25
|
end
|
|
23
26
|
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
# @return [Array<String>]
|
|
28
|
+
def gemspec_extra_lines
|
|
29
|
+
[]
|
|
26
30
|
end
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
# @return [String]
|
|
33
|
+
def gemspec_files_value
|
|
34
|
+
"Dir[#{gemspec_files_paths.map { |path| "'#{path}'" }.join(', ')}]"
|
|
30
35
|
end
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
# @return [Array<String>]
|
|
38
|
+
def gemspec_files_paths
|
|
39
|
+
["{#{gemspec_files_directory_paths.sort.join(',')}}/**/*"] +
|
|
40
|
+
gemspec_files_file_paths.sort
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# @return [Array<String>]
|
|
44
|
+
def gemspec_files_directory_paths
|
|
45
|
+
GEMSPEC_FILES_DIRECTORY_PATHS
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# @return [Array<String>]
|
|
49
|
+
def gemspec_files_file_paths
|
|
50
|
+
GEMSPEC_FILES_FILE_PATHS
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def lib_path
|
|
54
|
+
name.split('-').join('/')
|
|
39
55
|
end
|
|
40
56
|
|
|
41
57
|
def root_module
|
|
@@ -64,46 +80,31 @@ module Avm
|
|
|
64
80
|
|
|
65
81
|
protected
|
|
66
82
|
|
|
67
|
-
def apply_to_root_directory(template, subpath)
|
|
68
|
-
if template.is_a?(::EacTemplates::Variables::Directory)
|
|
69
|
-
template.children.each do |child|
|
|
70
|
-
apply_to_root_directory(child, subpath.join(child.basename))
|
|
71
|
-
end
|
|
72
|
-
elsif template.is_a?(::EacTemplates::Variables::File)
|
|
73
|
-
template.apply_to_file(template_variables, root_directory.join(subpath))
|
|
74
|
-
else
|
|
75
|
-
raise "Unknown template object: #{template}"
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
83
|
def generate_gemspec
|
|
80
84
|
template_apply('gemspec', "#{name}.gemspec")
|
|
81
85
|
end
|
|
82
86
|
|
|
83
|
-
def generate_root_directory
|
|
84
|
-
root_directory.mkpath
|
|
85
|
-
end
|
|
86
|
-
|
|
87
87
|
def generate_root_lib
|
|
88
88
|
template_apply('root_lib', "lib/#{lib_path}.rb")
|
|
89
89
|
end
|
|
90
90
|
|
|
91
|
-
def generate_static
|
|
92
|
-
template.child('static').apply(self, root_directory)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
91
|
def generate_version_lib
|
|
96
92
|
template_apply('version', "lib/#{lib_path}/version.rb")
|
|
97
93
|
end
|
|
98
94
|
|
|
95
|
+
# @return [EacTemplates::Modules::Base]
|
|
96
|
+
def root_template
|
|
97
|
+
template.child('static')
|
|
98
|
+
end
|
|
99
|
+
|
|
99
100
|
def self_gem_uncached
|
|
100
|
-
::Avm::EacRubyBase1::Sources::Base.new(
|
|
101
|
+
::Avm::EacRubyBase1::Sources::Base.new(target_path)
|
|
101
102
|
end
|
|
102
103
|
|
|
103
104
|
def template_apply(from, to)
|
|
104
|
-
target =
|
|
105
|
+
target = target_path.join(to)
|
|
105
106
|
target.dirname.mkpath
|
|
106
|
-
template.child(
|
|
107
|
+
template.child(from).apply_to_file(self, target.to_path)
|
|
107
108
|
end
|
|
108
109
|
end
|
|
109
110
|
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
|
4
|
+
|
|
5
|
+
module Avm
|
|
6
|
+
module EacRubyBase1
|
|
7
|
+
module Sources
|
|
8
|
+
class GemfileLocal
|
|
9
|
+
class Sibling
|
|
10
|
+
common_constructor :gemfile_local, :source
|
|
11
|
+
delegate :relative_path, to: :source
|
|
12
|
+
|
|
13
|
+
# @return [String]
|
|
14
|
+
def gemspec_relative_path
|
|
15
|
+
source.gemspec_path.relative_path_from(gemfile_local.source.path).to_path
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @return [String]
|
|
19
|
+
def root_relative_path
|
|
20
|
+
source.path.relative_path_from(gemfile_local.source.path).to_path
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @return [String]
|
|
24
|
+
def target_content
|
|
25
|
+
"gem '#{source.gem_name}', #{gem_options_content} if #{condition_content}\n"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
protected
|
|
29
|
+
|
|
30
|
+
# @return [String]
|
|
31
|
+
def condition_content
|
|
32
|
+
"::File.file?(::File.expand_path('#{gemspec_relative_path}', __dir__))"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# @return [String]
|
|
36
|
+
def gem_option_path
|
|
37
|
+
["::File.expand_path('", root_relative_path, "', __dir__)"].join
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# @return [String]
|
|
41
|
+
def gem_option_require
|
|
42
|
+
'false'
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# @return [String]
|
|
46
|
+
def gem_options_content
|
|
47
|
+
%w[path require].map { |v| [v, send("gem_option_#{v}")].join(': ') }.join(', ')
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
|
4
|
+
|
|
5
|
+
module Avm
|
|
6
|
+
module EacRubyBase1
|
|
7
|
+
module Sources
|
|
8
|
+
class GemfileLocal
|
|
9
|
+
enable_simple_cache
|
|
10
|
+
common_constructor :source
|
|
11
|
+
|
|
12
|
+
def dependency_sub?(sub)
|
|
13
|
+
sub.is_a?(::Avm::EacRubyBase1::Sources::Base) &&
|
|
14
|
+
sub.gem_name != source.gem_name &&
|
|
15
|
+
source.gemfile_lock_gem_version(sub.gem_name).present?
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @return [String]
|
|
19
|
+
def target_content
|
|
20
|
+
siblings.map(&:target_content).join
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @return [Pathname]
|
|
24
|
+
def target_path
|
|
25
|
+
source.path.join('Gemfile.local')
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def on_unexisting_gemfile_local
|
|
29
|
+
return yield unless target_path.exist?
|
|
30
|
+
|
|
31
|
+
::EacRubyUtils::Fs::Temp.on_file do |temp_file|
|
|
32
|
+
::FileUtils.cp(target_path, temp_file)
|
|
33
|
+
begin
|
|
34
|
+
::FileUtils.rm_f(target_path)
|
|
35
|
+
yield
|
|
36
|
+
ensure
|
|
37
|
+
::FileUtils.cp(temp_file, target_path)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def run_bundle
|
|
43
|
+
on_unexisting_gemfile_local do
|
|
44
|
+
source.bundle.execute!
|
|
45
|
+
rescue ::RuntimeError
|
|
46
|
+
source.bundle('update').execute!
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# @return [void]
|
|
51
|
+
def write_target_file
|
|
52
|
+
target_path.write(target_content)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
private
|
|
56
|
+
|
|
57
|
+
def siblings_uncached
|
|
58
|
+
source.parent.if_present([]) do |v|
|
|
59
|
+
v.subs.select { |sub| dependency_sub?(sub) }.map do |sub|
|
|
60
|
+
::Avm::EacRubyBase1::Sources::GemfileLocal::Sibling.new(self, sub)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
require_sub __FILE__
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'avm/eac_ruby_base1/sources/gemfile_local'
|
|
3
4
|
require 'eac_cli/core_ext'
|
|
4
5
|
|
|
5
6
|
module Avm
|
|
@@ -11,53 +12,17 @@ module Avm
|
|
|
11
12
|
runner_with :help do
|
|
12
13
|
bool_opt '-w', '--write', 'Write the Gemfile.local file.'
|
|
13
14
|
end
|
|
15
|
+
delegate :siblings, to: :builder
|
|
14
16
|
|
|
15
17
|
def run
|
|
16
18
|
start_banner
|
|
17
|
-
run_bundle
|
|
19
|
+
builder.run_bundle
|
|
18
20
|
siblings_banner
|
|
19
21
|
write_gemfile_local
|
|
20
22
|
end
|
|
21
23
|
|
|
22
24
|
private
|
|
23
25
|
|
|
24
|
-
def gemfile_local_path
|
|
25
|
-
the_source.path.join('Gemfile.local')
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def gemfile_local_content
|
|
29
|
-
siblings.map { |s| sibling_gemfile_local_line(s) }.join
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def on_unexisting_gemfile_local
|
|
33
|
-
return yield unless gemfile_local_path.exist?
|
|
34
|
-
|
|
35
|
-
::EacRubyUtils::Fs::Temp.on_file do |temp_file|
|
|
36
|
-
::FileUtils.cp(gemfile_local_path, temp_file)
|
|
37
|
-
begin
|
|
38
|
-
::FileUtils.rm_f(gemfile_local_path)
|
|
39
|
-
yield
|
|
40
|
-
ensure
|
|
41
|
-
::FileUtils.cp(temp_file, gemfile_local_path)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def run_bundle
|
|
47
|
-
on_unexisting_gemfile_local do
|
|
48
|
-
the_source.bundle.execute!
|
|
49
|
-
rescue ::RuntimeError
|
|
50
|
-
the_source.bundle('update').execute!
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def sibling_gemfile_local_line(sibling)
|
|
55
|
-
["gem '#{sibling.gem_name}'", # rubocop:disable Style/StringConcatenation
|
|
56
|
-
["path: ::File.expand_path('",
|
|
57
|
-
sibling.path.relative_path_from(the_source.path).to_path, "', __dir__)"].join,
|
|
58
|
-
'require: false'].join(', ') + "\n"
|
|
59
|
-
end
|
|
60
|
-
|
|
61
26
|
def start_banner
|
|
62
27
|
runner_context.call(:source_banner)
|
|
63
28
|
infov 'Parent', the_source.parent
|
|
@@ -73,24 +38,17 @@ module Avm
|
|
|
73
38
|
def write_gemfile_local
|
|
74
39
|
return unless parsed.write?
|
|
75
40
|
|
|
76
|
-
infom "Writing #{
|
|
77
|
-
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def siblings_uncached
|
|
81
|
-
the_source.parent.if_present([]) do |v|
|
|
82
|
-
v.subs.select { |sub| dependency_sub?(sub) }
|
|
83
|
-
end
|
|
41
|
+
infom "Writing #{builder.target_path}..."
|
|
42
|
+
builder.write_target_file
|
|
84
43
|
end
|
|
85
44
|
|
|
86
45
|
def the_source
|
|
87
46
|
runner_context.call(:source)
|
|
88
47
|
end
|
|
89
48
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
the_source.gemfile_lock_gem_version(sub.gem_name).present?
|
|
49
|
+
# @return [Avm::EacRubyBase1::Sources::GemfileLocal]
|
|
50
|
+
def builder_uncached
|
|
51
|
+
::Avm::EacRubyBase1::Sources::GemfileLocal.new(the_source)
|
|
94
52
|
end
|
|
95
53
|
end
|
|
96
54
|
end
|
|
@@ -10,10 +10,10 @@ Gem::Specification.new do |s|
|
|
|
10
10
|
s.authors = ['Put here the authors']
|
|
11
11
|
s.summary = 'Put here de description.'
|
|
12
12
|
|
|
13
|
-
s.files =
|
|
14
|
-
s.required_ruby_version = '>= 2.7'
|
|
13
|
+
s.files = %%gemspec_files_value%%
|
|
14
|
+
s.required_ruby_version = '>= 2.7'%%gemspec_extra%%
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
%%COMMON_DEPENDENCIES%%
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
%%DEVELOPMENT_DEPENDENCIES%%
|
|
19
19
|
end
|
|
@@ -4,5 +4,5 @@ source 'https://rubygems.org'
|
|
|
4
4
|
|
|
5
5
|
gemspec
|
|
6
6
|
|
|
7
|
-
local_gemfile =
|
|
8
|
-
eval_gemfile local_gemfile if
|
|
7
|
+
local_gemfile = File.join(File.dirname(__FILE__), 'Gemfile.local')
|
|
8
|
+
eval_gemfile local_gemfile if File.exist?(local_gemfile)
|
metadata
CHANGED
|
@@ -1,137 +1,91 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: avm-eac_ruby_base1
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.34.0
|
|
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: 2024-05-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: aranha-parsers
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0.22'
|
|
20
|
-
type: :runtime
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0.22'
|
|
27
13
|
- !ruby/object:Gem::Dependency
|
|
28
14
|
name: avm
|
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
|
30
16
|
requirements:
|
|
31
17
|
- - "~>"
|
|
32
18
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0.
|
|
19
|
+
version: '0.92'
|
|
34
20
|
type: :runtime
|
|
35
21
|
prerelease: false
|
|
36
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
23
|
requirements:
|
|
38
24
|
- - "~>"
|
|
39
25
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0.
|
|
26
|
+
version: '0.92'
|
|
41
27
|
- !ruby/object:Gem::Dependency
|
|
42
28
|
name: avm-eac_generic_base0
|
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
|
44
30
|
requirements:
|
|
45
31
|
- - "~>"
|
|
46
32
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0.
|
|
48
|
-
- - ">="
|
|
49
|
-
- !ruby/object:Gem::Version
|
|
50
|
-
version: 0.12.1
|
|
33
|
+
version: '0.13'
|
|
51
34
|
type: :runtime
|
|
52
35
|
prerelease: false
|
|
53
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
54
37
|
requirements:
|
|
55
38
|
- - "~>"
|
|
56
39
|
- !ruby/object:Gem::Version
|
|
57
|
-
version: '0.
|
|
58
|
-
- - ">="
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: 0.12.1
|
|
40
|
+
version: '0.13'
|
|
61
41
|
- !ruby/object:Gem::Dependency
|
|
62
42
|
name: eac_envs-http
|
|
63
43
|
requirement: !ruby/object:Gem::Requirement
|
|
64
44
|
requirements:
|
|
65
45
|
- - "~>"
|
|
66
46
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '0.
|
|
47
|
+
version: '0.5'
|
|
68
48
|
- - ">="
|
|
69
49
|
- !ruby/object:Gem::Version
|
|
70
|
-
version: 0.
|
|
50
|
+
version: 0.5.1
|
|
71
51
|
type: :runtime
|
|
72
52
|
prerelease: false
|
|
73
53
|
version_requirements: !ruby/object:Gem::Requirement
|
|
74
54
|
requirements:
|
|
75
55
|
- - "~>"
|
|
76
56
|
- !ruby/object:Gem::Version
|
|
77
|
-
version: '0.
|
|
57
|
+
version: '0.5'
|
|
78
58
|
- - ">="
|
|
79
59
|
- !ruby/object:Gem::Version
|
|
80
|
-
version: 0.
|
|
60
|
+
version: 0.5.1
|
|
81
61
|
- !ruby/object:Gem::Dependency
|
|
82
62
|
name: eac_ruby_utils
|
|
83
63
|
requirement: !ruby/object:Gem::Requirement
|
|
84
64
|
requirements:
|
|
85
65
|
- - "~>"
|
|
86
66
|
- !ruby/object:Gem::Version
|
|
87
|
-
version: '0.
|
|
88
|
-
- - ">="
|
|
89
|
-
- !ruby/object:Gem::Version
|
|
90
|
-
version: 0.119.2
|
|
67
|
+
version: '0.122'
|
|
91
68
|
type: :runtime
|
|
92
69
|
prerelease: false
|
|
93
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
94
71
|
requirements:
|
|
95
72
|
- - "~>"
|
|
96
73
|
- !ruby/object:Gem::Version
|
|
97
|
-
version: '0.
|
|
98
|
-
- - ">="
|
|
99
|
-
- !ruby/object:Gem::Version
|
|
100
|
-
version: 0.119.2
|
|
101
|
-
- !ruby/object:Gem::Dependency
|
|
102
|
-
name: aranha-parsers
|
|
103
|
-
requirement: !ruby/object:Gem::Requirement
|
|
104
|
-
requirements:
|
|
105
|
-
- - "~>"
|
|
106
|
-
- !ruby/object:Gem::Version
|
|
107
|
-
version: '0.14'
|
|
108
|
-
- - ">="
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: 0.14.1
|
|
111
|
-
type: :development
|
|
112
|
-
prerelease: false
|
|
113
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - "~>"
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0.14'
|
|
118
|
-
- - ">="
|
|
119
|
-
- !ruby/object:Gem::Version
|
|
120
|
-
version: 0.14.1
|
|
74
|
+
version: '0.122'
|
|
121
75
|
- !ruby/object:Gem::Dependency
|
|
122
76
|
name: eac_ruby_gem_support
|
|
123
77
|
requirement: !ruby/object:Gem::Requirement
|
|
124
78
|
requirements:
|
|
125
79
|
- - "~>"
|
|
126
80
|
- !ruby/object:Gem::Version
|
|
127
|
-
version: '0.
|
|
81
|
+
version: '0.10'
|
|
128
82
|
type: :development
|
|
129
83
|
prerelease: false
|
|
130
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
131
85
|
requirements:
|
|
132
86
|
- - "~>"
|
|
133
87
|
- !ruby/object:Gem::Version
|
|
134
|
-
version: '0.
|
|
88
|
+
version: '0.10'
|
|
135
89
|
description:
|
|
136
90
|
email:
|
|
137
91
|
executables: []
|
|
@@ -177,6 +131,7 @@ files:
|
|
|
177
131
|
- lib/avm/eac_ruby_base1/rubygems/gemspec.rb
|
|
178
132
|
- lib/avm/eac_ruby_base1/rubygems/gemspec/add_or_replace_gem_line.rb
|
|
179
133
|
- lib/avm/eac_ruby_base1/rubygems/gemspec/dependency.rb
|
|
134
|
+
- lib/avm/eac_ruby_base1/rubygems/remote.rb
|
|
180
135
|
- lib/avm/eac_ruby_base1/rubygems/version_file.rb
|
|
181
136
|
- lib/avm/eac_ruby_base1/runners.rb
|
|
182
137
|
- lib/avm/eac_ruby_base1/runners/base.rb
|
|
@@ -200,6 +155,8 @@ files:
|
|
|
200
155
|
- lib/avm/eac_ruby_base1/sources/base/version.rb
|
|
201
156
|
- lib/avm/eac_ruby_base1/sources/base/version_bump.rb
|
|
202
157
|
- lib/avm/eac_ruby_base1/sources/bundle_update.rb
|
|
158
|
+
- lib/avm/eac_ruby_base1/sources/gemfile_local.rb
|
|
159
|
+
- lib/avm/eac_ruby_base1/sources/gemfile_local/sibling.rb
|
|
203
160
|
- lib/avm/eac_ruby_base1/sources/namespace_replacer.rb
|
|
204
161
|
- lib/avm/eac_ruby_base1/sources/runners.rb
|
|
205
162
|
- lib/avm/eac_ruby_base1/sources/runners/bundle.rb
|