avm-eac_ruby_base1 0.9.1 → 0.12.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/rubygems/gemspec/add_or_replace_gem_line.rb +62 -0
- data/lib/avm/eac_ruby_base1/rubygems/gemspec/dependency.rb +19 -0
- data/lib/avm/eac_ruby_base1/rubygems/gemspec.rb +42 -0
- data/lib/avm/eac_ruby_base1/sources/base/bundler.rb +1 -1
- data/lib/avm/eac_ruby_base1/sources/base/rake.rb +14 -0
- data/lib/avm/eac_ruby_base1/sources/base.rb +12 -0
- data/lib/avm/eac_ruby_base1/version.rb +1 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e27f816ad7640d7c9616635938c93303c0d109e49540e35300ec0b8eac7c8605
|
4
|
+
data.tar.gz: 1ebc67af9c3e7f010c63eeda951036e5d027f10b903156c44954ac5a4297954a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5be8bf1240646abe6a2bf259e729000cdbbc2a8fb8c0a089f45385d406b58f90bf42e7e3057aa39bbad9bd28ad575db9a7e50734ccf0eb83028884b83e07d916
|
7
|
+
data.tar.gz: f10013e8d77b05db72cbf57dc14791f9442e966803c3df7328a72cf63a561c7ab3b6f1f108def93f132028aa6342de76850c32b745487243d18436ced7dff7b1
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacRubyBase1
|
7
|
+
module Rubygems
|
8
|
+
class Gemspec
|
9
|
+
class AddOrReplaceGemLine
|
10
|
+
enable_method_class
|
11
|
+
common_constructor :sender, :gem_name, :gem_specs
|
12
|
+
delegate :lines, to: :sender
|
13
|
+
|
14
|
+
DEPENDENCY_PREFIX = ' s.add_dependency'
|
15
|
+
|
16
|
+
def existing_gem_line_index
|
17
|
+
lines.index { |line| line.start_with?(gem_line_prefix) }
|
18
|
+
end
|
19
|
+
|
20
|
+
def result
|
21
|
+
if existing_gem_line_index.present?
|
22
|
+
replace_line
|
23
|
+
else
|
24
|
+
add_line
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_line
|
29
|
+
lines.insert(add_line_index, new_gem_line)
|
30
|
+
end
|
31
|
+
|
32
|
+
def add_line_index
|
33
|
+
(gems_lines_start_index..(lines.count - 1)).each do |e|
|
34
|
+
return e if new_gem_line < lines[e]
|
35
|
+
end
|
36
|
+
lines.count
|
37
|
+
end
|
38
|
+
|
39
|
+
def gems_lines_start_index
|
40
|
+
lines.index { |line| line.start_with?(DEPENDENCY_PREFIX) } || lines.count
|
41
|
+
end
|
42
|
+
|
43
|
+
def new_gem_line
|
44
|
+
([gem_line_prefix] + quoted_gem_specs).join(', ')
|
45
|
+
end
|
46
|
+
|
47
|
+
def gem_line_prefix
|
48
|
+
"#{DEPENDENCY_PREFIX} '#{gem_name}'"
|
49
|
+
end
|
50
|
+
|
51
|
+
def replace_line
|
52
|
+
lines[existing_gem_line_index] = new_gem_line
|
53
|
+
end
|
54
|
+
|
55
|
+
def quoted_gem_specs
|
56
|
+
gem_specs.map { |gem_spec| "'#{gem_spec}'" }
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacRubyBase1
|
7
|
+
module Rubygems
|
8
|
+
class Gemspec
|
9
|
+
class Dependency
|
10
|
+
common_constructor :gemspec, :gem_name
|
11
|
+
|
12
|
+
def version_specs=(version_specs)
|
13
|
+
gemspec.add_or_replace_gem_line(gem_name, version_specs)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacRubyBase1
|
7
|
+
module Rubygems
|
8
|
+
class Gemspec
|
9
|
+
require_sub __FILE__, require_dependency: true
|
10
|
+
|
11
|
+
DEPENDENCY_LINE_PARSER = /s\.add_dependency\s*'(\S+)'/.to_parser { |m| m[1] }
|
12
|
+
|
13
|
+
class << self
|
14
|
+
def from_file(path)
|
15
|
+
new(path.read.each_line.map(&:rstrip))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
common_constructor :lines
|
20
|
+
|
21
|
+
# @return [Avm::EacRubyBase1::Bundler::Gemfile::Dependency]
|
22
|
+
def dependency(gem_name)
|
23
|
+
::Avm::EacRubyBase1::Rubygems::Gemspec::Dependency.new(self, gem_name)
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [Array<Avm::EacRubyBase1::Bundler::Gemfile::Dependency>]
|
27
|
+
def dependencies
|
28
|
+
lines.lazy.map { |line| DEPENDENCY_LINE_PARSER.parse(line) }.reject(&:blank?)
|
29
|
+
.map { |gem_name| dependency(gem_name) }.to_a
|
30
|
+
end
|
31
|
+
|
32
|
+
def write(path)
|
33
|
+
path.to_pathname.write(to_text)
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_text
|
37
|
+
lines.map { |line| "#{line}\n" }.join
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -9,6 +9,9 @@ module Avm
|
|
9
9
|
class Base < ::Avm::EacGenericBase0::Sources::Base
|
10
10
|
module Rake
|
11
11
|
RAKEFILE_BASENAME = 'Rakefile'
|
12
|
+
RAKE_TASKS_LINE_PARSER = /\Arake\s+(\S+)\s+/.to_parser do |m|
|
13
|
+
m[1]
|
14
|
+
end
|
12
15
|
|
13
16
|
# @return [Avm::EacRubyBase1::Sources::Base::BundleCommand]
|
14
17
|
def rake(*args)
|
@@ -21,6 +24,17 @@ module Avm
|
|
21
24
|
def rakefile_path
|
22
25
|
path.join(RAKEFILE_BASENAME)
|
23
26
|
end
|
27
|
+
|
28
|
+
# @return [Boolean]
|
29
|
+
def rake_task?(task_name)
|
30
|
+
rake_tasks.include?(task_name)
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [Array<String>]
|
34
|
+
def rake_tasks
|
35
|
+
rake('--all', '--tasks').execute!.each_line
|
36
|
+
.map { |line| RAKE_TASKS_LINE_PARSER.parse!(line) }
|
37
|
+
end
|
24
38
|
end
|
25
39
|
end
|
26
40
|
end
|
@@ -36,6 +36,18 @@ module Avm
|
|
36
36
|
self
|
37
37
|
end
|
38
38
|
|
39
|
+
# @return [Avm::EacRubyBase1::Source::Base]
|
40
|
+
def ruby_parent
|
41
|
+
a_parent = parent
|
42
|
+
|
43
|
+
loop do
|
44
|
+
raise 'No Ruby parent found' if a_parent.blank?
|
45
|
+
return a_parent if a_parent.is_a?(::Avm::EacRubyBase1::Sources::Base)
|
46
|
+
|
47
|
+
a_parent = a_parent.parent
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
39
51
|
# @return [EacRubyUtils::Envs::Command]
|
40
52
|
def rspec_test_command
|
41
53
|
bundle('exec', 'rspec', '--fail-fast').chdir_root
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.12.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: 2022-
|
11
|
+
date: 2022-08-02 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.
|
19
|
+
version: '0.26'
|
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.26'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: avm-eac_generic_base0
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,6 +116,9 @@ files:
|
|
116
116
|
- lib/avm/eac_ruby_base1/rubocop/envvar.rb
|
117
117
|
- lib/avm/eac_ruby_base1/rubocop/gemfile.rb
|
118
118
|
- lib/avm/eac_ruby_base1/rubygems.rb
|
119
|
+
- lib/avm/eac_ruby_base1/rubygems/gemspec.rb
|
120
|
+
- lib/avm/eac_ruby_base1/rubygems/gemspec/add_or_replace_gem_line.rb
|
121
|
+
- lib/avm/eac_ruby_base1/rubygems/gemspec/dependency.rb
|
119
122
|
- lib/avm/eac_ruby_base1/rubygems/version_file.rb
|
120
123
|
- lib/avm/eac_ruby_base1/sources.rb
|
121
124
|
- lib/avm/eac_ruby_base1/sources/base.rb
|