avm-eac_redmine_plugin_base0 0.4.1 → 0.6.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: 9471cf8cff6285138868ec15009e491b5bef888286cc458cbdd9c1505182dec7
4
- data.tar.gz: 53ab75237a2593e8f707dd9b4c36d499b04a6ee8b252310ca63081fb8be4f597
3
+ metadata.gz: 1fcbe6acaaeaaa75aa1b390a6c7e02f75d77c593625b61a677ca98e89e5b1772
4
+ data.tar.gz: 50ada4ec3eb0f59320c744c9cafbbaeb16e489797788a070203bf879dc06bf66
5
5
  SHA512:
6
- metadata.gz: c3f98b494af9d81e178b5264babdfa033bafd4b8b9e0e7b506cd92a2353e5a38f3905127492da114b73a415111897edba27f8339b3bc28e264b3bee7fbc4c28a
7
- data.tar.gz: 4f30a9902fd8b4f1c3cd94f55e9a1d3dcd9b9fb8fbbd48ea3e63efc5184de000a11e63be69ae446d616dae76fc30a33c98d9ee7cd8cbbdc2768cde6303dc2a86
6
+ metadata.gz: f5897bbe54f5ec9e3b6c0acc7ea8e020a76767554f6b289e8b5fad4929c7b90f5080d548484b3db7885be6ec96e404212818a43998ccadc3c65f4cb5942e9bc8
7
+ data.tar.gz: e40288b381e22b45a53b9202ddc02eb1b510335848adec31253df4064844c0c2e9403aa6c40eb0232e460affbaaa2496b1e8fd7b8d42bfc36a3c0f6f716cbc59
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/eac_redmine_plugin_base0/sources/init_file'
4
- require 'avm/eac_ruby_base1/sources/base'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
3
  module Avm
8
4
  module EacRedminePluginBase0
9
5
  module Sources
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/eac_ruby_base1/sources/base'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
3
  module Avm
7
4
  module EacRedminePluginBase0
8
5
  module Sources
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRedminePluginBase0
5
+ module Sources
6
+ class Base < ::Avm::EacRubyBase1::Sources::Base
7
+ module PluginsDependencies
8
+ DEPENDENCIES_SUBPATHS = %w[yml yaml].map { |e| "dependencies.#{e}" }
9
+
10
+ # The possible absolute paths for the dependencies file.
11
+ #
12
+ # @return [Enumerable<Pathname>]
13
+ def dependencies_file_paths
14
+ DEPENDENCIES_SUBPATHS.map { |basename| path.join(basename) }
15
+ end
16
+
17
+ # @return [Pathname, nil]
18
+ def dependencies_file
19
+ dependencies_file_paths.find(&:file?)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/eac_ruby_base1/sources/base'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
3
  module Avm
7
4
  module EacRedminePluginBase0
8
5
  module Sources
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRedminePluginBase0
5
+ module Sources
6
+ class Base < ::Avm::EacRubyBase1::Sources::Base
7
+ module Update
8
+ # @param changes [Enumerable<Avm::Sources::Change>]
9
+ def update_self_changes_after_subs
10
+ super + [
11
+ ::Avm::EacRedminePluginBase0::Sources::UpdateChanges::PluginsRequirements.new(self)
12
+ ]
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/eac_ruby_base1/sources/base'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
3
  module Avm
7
4
  module EacRedminePluginBase0
8
5
  module Sources
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/eac_ruby_base1/sources/base'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
3
  module Avm
7
4
  module EacRedminePluginBase0
8
5
  module Sources
@@ -11,6 +8,8 @@ module Avm
11
8
 
12
9
  DEFAULT_GEMFILE_PATH = 'SelfGemfile'
13
10
 
11
+ delegate :plugin_id, to: :init_file
12
+
14
13
  # @return [String]
15
14
  def default_gemfile_path
16
15
  DEFAULT_GEMFILE_PATH
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRedminePluginBase0
5
+ module Sources
6
+ class InitFile
7
+ class PluginId
8
+ acts_as_instance_method
9
+ common_constructor :init_file
10
+
11
+ PLUGIN_ID_PARSER = /Redmine::Plugin.register\s+:([^\s]+)\s/.to_parser do |m|
12
+ m[1].to_sym
13
+ end
14
+
15
+ # @return [Symbol]
16
+ def result
17
+ init_file.find_on_line { |line| PLUGIN_ID_PARSER.parse(line) }
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRedminePluginBase0
5
+ module Sources
6
+ class InitFile
7
+ class Version
8
+ acts_as_instance_method
9
+ common_constructor :init_file
10
+
11
+ # @return [Avm::VersionNumber, nil] Version found in line, nil otherwise.
12
+ def result
13
+ init_file.find_on_line { |line| line_value(line) }
14
+ end
15
+
16
+ protected
17
+
18
+ # @return [Avm::VersionNumber, nil] Version found in line, nil otherwise.
19
+ def line_value(line)
20
+ Avm::EacRedminePluginBase0::Sources::InitFile::VERSION_LINE_PATTERN
21
+ .if_match(line.rstrip, false) { |m| ::Avm::VersionNumber.new(m[2]) }
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRedminePluginBase0
5
+ module Sources
6
+ class InitFile
7
+ class VersionSet
8
+ acts_as_instance_method
9
+ common_constructor :init_file, :new_value
10
+
11
+ # @return [String]
12
+ def result
13
+ init_file.path.write(new_value_content(new_value))
14
+ end
15
+
16
+ protected
17
+
18
+ # @param new_value [String]
19
+ # @return [String]
20
+ def new_value_content(new_value)
21
+ path.read.each_line
22
+ .map { |line| new_value_line(line, new_value) }
23
+ .join
24
+ end
25
+
26
+ # @param line [String]
27
+ # @param new_value [String]
28
+ # @return [String]
29
+ def new_value_line(line, new_value)
30
+ m = Avm::EacRedminePluginBase0::Sources::InitFile::VERSION_LINE_PATTERN.match(line)
31
+ return line unless m
32
+
33
+ "#{m[1]}version '#{new_value}'"
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,42 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
-
5
3
  module Avm
6
4
  module EacRedminePluginBase0
7
5
  module Sources
8
6
  class InitFile
9
7
  common_constructor :path
10
8
 
11
- VERSION_LINE_PATTERN = /\A(\s*)version\s*[\'\"]([^\'\"]+)[\'\"](\s*)\z/.freeze
12
-
13
- def version
14
- path.read.each_line.lazy.map { |line| line_value(line) }.find { |v| v }
15
- end
9
+ VERSION_LINE_PATTERN = /\A(\s*)version\s*['"]([^'"]+)['"](\s*)\z/
16
10
 
11
+ # @param new_value [String]
17
12
  def version=(new_value)
18
- path.write(new_value_content(new_value))
19
- end
20
-
21
- private
22
-
23
- # @return Version found in line, nil otherwise.
24
- def line_value(line)
25
- VERSION_LINE_PATTERN.if_match(line.rstrip, false) { |m| ::Gem::Version.new(m[2]) }
13
+ version_set(new_value)
26
14
  end
27
15
 
28
- def new_value_content(new_value)
29
- path.read.each_line
30
- .map { |line| new_value_line(line, new_value) }
31
- .join
16
+ # @param &line_evaluator [Proc]
17
+ # @return [Object]
18
+ def find_on_line(&)
19
+ path.read.each_line.lazy.map(&).find(&:present?)
32
20
  end
33
21
 
34
- def new_value_line(line, new_value)
35
- m = VERSION_LINE_PATTERN.match(line)
36
- return line unless m
37
-
38
- "#{m[1]}version '#{new_value}'"
39
- end
22
+ require_sub __FILE__, require_mode: :kernel
40
23
  end
41
24
  end
42
25
  end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRedminePluginBase0
5
+ module Sources
6
+ module UpdateChanges
7
+ class PluginsRequirements < ::Avm::Sources::Change
8
+ # @return [String]
9
+ def commit_message
10
+ i18n_translate(
11
+ __method__,
12
+ dependencies_file: source.dependencies_file.relative_path_from(source.path)
13
+ )
14
+ end
15
+
16
+ # @return [void]
17
+ def perform
18
+ return if source.dependencies_file.blank?
19
+
20
+ source.dependencies_file.write(dependencies.to_yaml)
21
+ end
22
+
23
+ # @return [Hash<String, Hash>]
24
+ def dependencies
25
+ ::YAML.load_file(source.dependencies_file).keys.to_h do |plugin_id|
26
+ [plugin_id, { 'version_or_higher' => plugin_version(plugin_id.to_sym) }]
27
+ end
28
+ end
29
+
30
+ # @param plugin_id [Symbol]
31
+ # @return [String]
32
+ def plugin_version(plugin_id)
33
+ plugin_source(plugin_id).version.to_s
34
+ end
35
+
36
+ # @param plugin_id [Symbol]
37
+ # @return [Avm::EacRedminePluginBase0::Sources::Base]
38
+ def plugin_source(plugin_id)
39
+ source.parent.subs.find do |e|
40
+ e.is_a?(::Avm::EacRedminePluginBase0::Sources::Base) && e.plugin_id == plugin_id
41
+ end || raise("Plugin with id \"#{plugin_id}\" not found")
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRedminePluginBase0
5
- VERSION = '0.4.1'
5
+ VERSION = '0.6.0'
6
6
  end
7
7
  end
@@ -1,9 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module EacRedminePluginBase0
7
- require_sub __FILE__
8
- end
3
+ require 'eac_ruby_base1'
4
+ EacRubyBase1::RootModuleSetup.perform __FILE__ do
5
+ require 'avm/eac_ruby_base1'
9
6
  end
data/locale/en.yml ADDED
@@ -0,0 +1,7 @@
1
+ en:
2
+ avm:
3
+ eac_redmine_plugin_base0:
4
+ sources:
5
+ update_changes:
6
+ plugins_requirements:
7
+ commit_message: '%{dependencies_file}: update requirements.'
data/locale/pt-BR.yml ADDED
@@ -0,0 +1,7 @@
1
+ pt-BR:
2
+ avm:
3
+ eac_redmine_plugin_base0:
4
+ sources:
5
+ update_changes:
6
+ plugins_requirements:
7
+ commit_message: '%{dependencies_file}: atualiza requisitos.'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-eac_redmine_plugin_base0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-20 00:00:00.000000000 Z
11
+ date: 2026-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm-eac_ruby_base1
@@ -16,50 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.33'
19
+ version: '0.43'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.33.1
22
+ version: 0.43.3
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '0.33'
29
+ version: '0.43'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.33.1
32
+ version: 0.43.3
33
33
  - !ruby/object:Gem::Dependency
34
- name: eac_ruby_utils
34
+ name: eac_ruby_base1
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.121'
39
+ version: '0.1'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.1.1
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
43
46
  requirements:
44
47
  - - "~>"
45
48
  - !ruby/object:Gem::Version
46
- version: '0.121'
49
+ version: '0.1'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.1.1
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: eac_ruby_gem_support
49
55
  requirement: !ruby/object:Gem::Requirement
50
56
  requirements:
51
57
  - - "~>"
52
58
  - !ruby/object:Gem::Version
53
- version: '0.10'
59
+ version: '0.14'
54
60
  type: :development
55
61
  prerelease: false
56
62
  version_requirements: !ruby/object:Gem::Requirement
57
63
  requirements:
58
64
  - - "~>"
59
65
  - !ruby/object:Gem::Version
60
- version: '0.10'
61
- description:
62
- email:
66
+ version: '0.14'
67
+ description:
68
+ email:
63
69
  executables: []
64
70
  extensions: []
65
71
  extra_rdoc_files: []
@@ -68,14 +74,22 @@ files:
68
74
  - lib/avm/eac_redmine_plugin_base0/sources/base.rb
69
75
  - lib/avm/eac_redmine_plugin_base0/sources/base/init.rb
70
76
  - lib/avm/eac_redmine_plugin_base0/sources/base/parent.rb
77
+ - lib/avm/eac_redmine_plugin_base0/sources/base/plugins_dependencies.rb
71
78
  - lib/avm/eac_redmine_plugin_base0/sources/base/rubocop.rb
79
+ - lib/avm/eac_redmine_plugin_base0/sources/base/update.rb
72
80
  - lib/avm/eac_redmine_plugin_base0/sources/base/version.rb
73
81
  - lib/avm/eac_redmine_plugin_base0/sources/init_file.rb
82
+ - lib/avm/eac_redmine_plugin_base0/sources/init_file/plugin_id.rb
83
+ - lib/avm/eac_redmine_plugin_base0/sources/init_file/version.rb
84
+ - lib/avm/eac_redmine_plugin_base0/sources/init_file/version_set.rb
85
+ - lib/avm/eac_redmine_plugin_base0/sources/update_changes/plugins_requirements.rb
74
86
  - lib/avm/eac_redmine_plugin_base0/version.rb
75
- homepage:
87
+ - locale/en.yml
88
+ - locale/pt-BR.yml
89
+ homepage:
76
90
  licenses: []
77
91
  metadata: {}
78
- post_install_message:
92
+ post_install_message:
79
93
  rdoc_options: []
80
94
  require_paths:
81
95
  - lib
@@ -83,15 +97,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
83
97
  requirements:
84
98
  - - ">="
85
99
  - !ruby/object:Gem::Version
86
- version: '2.7'
100
+ version: '3.2'
87
101
  required_rubygems_version: !ruby/object:Gem::Requirement
88
102
  requirements:
89
103
  - - ">="
90
104
  - !ruby/object:Gem::Version
91
105
  version: '0'
92
106
  requirements: []
93
- rubygems_version: 3.1.6
94
- signing_key:
107
+ rubygems_version: 3.4.19
108
+ signing_key:
95
109
  specification_version: 4
96
110
  summary: E.A.C.'s AVM base for Redmine plugins.
97
111
  test_files: []