avm-eac_ruby_base1 0.33.1 → 0.33.2
Sign up to get free protection for your applications and to get access to all the features.
- 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/source_generators/base/version_builder.rb +1 -1
- 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/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 +16 -60
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bfb9953ef8eb61c9805e7ec553a2f7d9337c505b9b0ddb07d82e837cd3c0d928
|
4
|
+
data.tar.gz: ecdff3c27a2078416f3a888a0838af86f0fa1d72d05e15b513f572abba624976
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8156b5a96757b7102ed5dbba4ed565b14e9ef4a0b28cbb27f77b5866131fc923a156f18ef2f708f25874f57cdef25784c1b8d66cf2940533713f20d744d9c83f
|
7
|
+
data.tar.gz: 6fb495664de6628608090b06d8f87b2520bcdc0a5e0e14840c29acb7f6676aa82cf53f00d1e46bd6b0b44aff3df352ea12297aada2f7ca64765b248433040218
|
@@ -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.directory?('#{gemspec_relative_path}')"
|
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
|
@@ -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.33.
|
4
|
+
version: 0.33.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: 2024-05-20 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.91'
|
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.91'
|
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: []
|
@@ -200,6 +154,8 @@ files:
|
|
200
154
|
- lib/avm/eac_ruby_base1/sources/base/version.rb
|
201
155
|
- lib/avm/eac_ruby_base1/sources/base/version_bump.rb
|
202
156
|
- lib/avm/eac_ruby_base1/sources/bundle_update.rb
|
157
|
+
- lib/avm/eac_ruby_base1/sources/gemfile_local.rb
|
158
|
+
- lib/avm/eac_ruby_base1/sources/gemfile_local/sibling.rb
|
203
159
|
- lib/avm/eac_ruby_base1/sources/namespace_replacer.rb
|
204
160
|
- lib/avm/eac_ruby_base1/sources/runners.rb
|
205
161
|
- lib/avm/eac_ruby_base1/sources/runners/bundle.rb
|