avm-eac_ruby_base1 0.11.0 → 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
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
|
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
|
@@ -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
|