avm 0.58.0 → 0.60.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/file_formats/base.rb +7 -0
- data/lib/avm/file_formats/search_formatter.rb +2 -12
- data/lib/avm/registry/file_formats.rb +4 -0
- data/lib/avm/rspec/setup.rb +2 -2
- data/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb +15 -0
- data/lib/avm/scms/auto_commit/file_resource_name.rb +39 -0
- data/lib/avm/scms/auto_commit/for_file.rb +72 -0
- data/lib/avm/scms/auto_commit/rules/base.rb +40 -0
- data/lib/avm/scms/auto_commit/rules/last.rb +19 -0
- data/lib/avm/scms/auto_commit/rules/manual.rb +40 -0
- data/lib/avm/scms/auto_commit/rules/new.rb +24 -0
- data/lib/avm/scms/auto_commit/rules/nth.rb +31 -0
- data/lib/avm/scms/auto_commit/rules/unique.rb +21 -0
- data/lib/avm/scms/auto_commit/rules.rb +36 -0
- data/lib/avm/scms/auto_commit.rb +11 -0
- data/lib/avm/scms/base/commits.rb +27 -0
- data/lib/avm/scms/base/milestones.rb +21 -0
- data/lib/avm/scms/base.rb +8 -2
- data/lib/avm/scms/changed_file.rb +26 -0
- data/lib/avm/scms/commit.rb +15 -0
- data/lib/avm/scms/commit_info.rb +20 -0
- data/lib/avm/scms/interval.rb +18 -0
- data/lib/avm/scms.rb +9 -0
- data/lib/avm/version.rb +1 -1
- metadata +23 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ee7bf9c423e00a5bbd0e070ab0f1a191f338e80c794fde0609a3463c7307d78
|
4
|
+
data.tar.gz: cdb1a486aadcb408fee1123c133f54c5d46fa912be903f49ed547166027b62a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1a37030086636976394fe3392a2681c4065cb8dbabd32fc1f702193b581372372519ef099b254c7c126f3818cff4715dc1597f2ecab1c65a9953044a20362a0
|
7
|
+
data.tar.gz: 2a72c35e69480aabe07bc71a00ec8cfaf30854ced09da08b423f88c9229f59e42275a902d9797f12a23ec5305c4893803770425b439035a96e70d3f45be30060
|
@@ -8,6 +8,7 @@ module Avm
|
|
8
8
|
module FileFormats
|
9
9
|
class Base
|
10
10
|
enable_abstract_methods
|
11
|
+
compare_by :class
|
11
12
|
|
12
13
|
def apply(files)
|
13
14
|
old_content = Hash[files.map { |f| [f, File.read(f)] }]
|
@@ -15,6 +16,12 @@ module Avm
|
|
15
16
|
files.map { |f| build_file_result(f, old_content[f]) }
|
16
17
|
end
|
17
18
|
|
19
|
+
# @param path [Pathname]
|
20
|
+
# @return [Avm::FileFormats::FileWith]
|
21
|
+
def file_resource_name(path)
|
22
|
+
path.to_pathname.to_path
|
23
|
+
end
|
24
|
+
|
18
25
|
def name
|
19
26
|
self.class.name.demodulize
|
20
27
|
end
|
@@ -50,19 +50,9 @@ module Avm
|
|
50
50
|
@result = []
|
51
51
|
end
|
52
52
|
|
53
|
+
# @return [Avm::FileFormats::Base, nil]
|
53
54
|
def find_format(file)
|
54
|
-
|
55
|
-
return c if c.match?(file)
|
56
|
-
end
|
57
|
-
nil
|
58
|
-
end
|
59
|
-
|
60
|
-
def formats_uncached
|
61
|
-
formats_from_registry
|
62
|
-
end
|
63
|
-
|
64
|
-
def formats_from_registry
|
65
|
-
::Avm::Registry.file_formats.available.reverse.map(&:new)
|
55
|
+
::Avm::Registry.file_formats.detect_optional(file)
|
66
56
|
end
|
67
57
|
|
68
58
|
def search_files
|
@@ -5,6 +5,10 @@ require 'avm/registry/from_gems'
|
|
5
5
|
module Avm
|
6
6
|
module Registry
|
7
7
|
class FileFormats < ::Avm::Registry::FromGems
|
8
|
+
# @return [Avm::FileFormats::Base]
|
9
|
+
def class_detect(klass, detect_args)
|
10
|
+
klass.new if klass.new.match?(detect_args.first)
|
11
|
+
end
|
8
12
|
end
|
9
13
|
end
|
10
14
|
end
|
data/lib/avm/rspec/setup.rb
CHANGED
@@ -7,8 +7,8 @@ module Avm
|
|
7
7
|
module Rspec
|
8
8
|
module Setup
|
9
9
|
require_sub __FILE__
|
10
|
-
EXAMPLES = %w[avm_file_formats_with_fixtures
|
11
|
-
in_avm_registry not_in_avm_registry].freeze
|
10
|
+
EXAMPLES = %w[avm_file_formats_with_fixtures avm_file_format_file_resource_name
|
11
|
+
avm_source_generated entries_values in_avm_registry not_in_avm_registry].freeze
|
12
12
|
|
13
13
|
def self.extended(obj)
|
14
14
|
obj.setup_examples
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
::RSpec.shared_examples 'avm_file_format_file_resource_name' do |input_expected|
|
6
|
+
describe '#file_resource_name' do
|
7
|
+
input_expected.each do |path, expected_resource_name|
|
8
|
+
context "when path is \"#{path}\"" do
|
9
|
+
let(:instance) { described_class.new }
|
10
|
+
|
11
|
+
it { expect(instance.file_resource_name(path)).to eq(expected_resource_name) }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Scms
|
7
|
+
module AutoCommit
|
8
|
+
class FileResourceName
|
9
|
+
require_sub __FILE__, include_modules: true
|
10
|
+
enable_simple_cache
|
11
|
+
common_constructor :source_root, :path do
|
12
|
+
self.source_root = source_root.to_pathname
|
13
|
+
self.path = path.to_pathname
|
14
|
+
end
|
15
|
+
|
16
|
+
def class_name
|
17
|
+
file_format.file_resource_name(path)
|
18
|
+
end
|
19
|
+
|
20
|
+
def commit_message
|
21
|
+
r = class_name
|
22
|
+
r += ': remove' unless path.file?
|
23
|
+
r + '.'
|
24
|
+
end
|
25
|
+
|
26
|
+
def relative_path
|
27
|
+
path.expand_path.relative_path_from(source_root.expand_path)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
# @return [Avm::FileFormats::Base]
|
33
|
+
def file_format_uncached
|
34
|
+
::Avm::Registry.file_formats.detect(path)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/commit_info'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Scms
|
8
|
+
module AutoCommit
|
9
|
+
class ForFile
|
10
|
+
enable_speaker
|
11
|
+
enable_simple_cache
|
12
|
+
enable_listable
|
13
|
+
|
14
|
+
common_constructor :scm, :path, :rules do
|
15
|
+
self.path = path.to_pathname.expand_path(scm.path)
|
16
|
+
end
|
17
|
+
|
18
|
+
COMMITS_SEARCH_INTERVAL = 'origin/master..HEAD'
|
19
|
+
|
20
|
+
def scm_relative_path
|
21
|
+
path.to_pathname.relative_path_from(scm.path)
|
22
|
+
end
|
23
|
+
|
24
|
+
def run
|
25
|
+
start_banner
|
26
|
+
run_commit || warn("No rule returned commit information for \"#{path}\"")
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def commit_info_uncached
|
32
|
+
rules.lazy.map { |rule| rule.with_file(self).commit_info }.find(&:present?)
|
33
|
+
.if_present { |v| v.path(path) }
|
34
|
+
end
|
35
|
+
|
36
|
+
def start_banner
|
37
|
+
infov 'Path', path
|
38
|
+
infov ' Commits found', commits.count
|
39
|
+
end
|
40
|
+
|
41
|
+
def run_commit
|
42
|
+
return false if commit_info.blank?
|
43
|
+
|
44
|
+
infov ' Commit info', commit_info
|
45
|
+
scm.run_commit(commit_info)
|
46
|
+
success ' Commited'
|
47
|
+
true
|
48
|
+
end
|
49
|
+
|
50
|
+
def commits_uncached
|
51
|
+
scm.current_milestone_interval.commits
|
52
|
+
.select { |c| c.changed_files.include?(path.relative_path_from(scm.path)) }
|
53
|
+
.reject(&:fixup?).each_with_index
|
54
|
+
.map { |commit, index| CommitDelegator.new(commit, index) }
|
55
|
+
end
|
56
|
+
|
57
|
+
class CommitDelegator < ::SimpleDelegator
|
58
|
+
attr_reader :index
|
59
|
+
|
60
|
+
def initialize(commit, index)
|
61
|
+
super(commit)
|
62
|
+
@index = index
|
63
|
+
end
|
64
|
+
|
65
|
+
def position
|
66
|
+
index + 1
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/commit_info'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Scms
|
8
|
+
module AutoCommit
|
9
|
+
module Rules
|
10
|
+
class Base
|
11
|
+
class << self
|
12
|
+
def keys
|
13
|
+
[long_key, short_key]
|
14
|
+
end
|
15
|
+
|
16
|
+
def long_key
|
17
|
+
name.demodulize.variableize
|
18
|
+
end
|
19
|
+
|
20
|
+
def short_key
|
21
|
+
long_key[0, 1]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def with_file(file)
|
26
|
+
self.class.const_get('WithFile').new(self, file)
|
27
|
+
end
|
28
|
+
|
29
|
+
class WithFile
|
30
|
+
common_constructor :rule, :file
|
31
|
+
|
32
|
+
def new_commit_info
|
33
|
+
::Avm::Scms::CommitInfo.new
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/auto_commit/rules/base'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Scms
|
7
|
+
module AutoCommit
|
8
|
+
module Rules
|
9
|
+
class Last < ::Avm::Scms::AutoCommit::Rules::Base
|
10
|
+
class WithFile < ::Avm::Scms::AutoCommit::Rules::Base::WithFile
|
11
|
+
def commit_info
|
12
|
+
file.commits.last.if_present { |v| new_commit_info.fixup(v) }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/auto_commit/rules/base'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Scms
|
7
|
+
module AutoCommit
|
8
|
+
module Rules
|
9
|
+
class Manual < ::Avm::Scms::AutoCommit::Rules::Base
|
10
|
+
class WithFile < ::Avm::Scms::AutoCommit::Rules::Base::WithFile
|
11
|
+
enable_speaker
|
12
|
+
|
13
|
+
SKIP_OPTION = 's'
|
14
|
+
|
15
|
+
def commit_info
|
16
|
+
return nil unless file.commits.any?
|
17
|
+
|
18
|
+
commits_banner
|
19
|
+
input('Which commit?', list: commits_by_position).if_present do |v|
|
20
|
+
new_commit_info.fixup(v)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def commits_banner
|
25
|
+
file.commits.each_with_index do |commit, _index|
|
26
|
+
infov " #{commit.position}", commit
|
27
|
+
end
|
28
|
+
infov " #{SKIP_OPTION}", 'skip'
|
29
|
+
end
|
30
|
+
|
31
|
+
def commits_by_position
|
32
|
+
(file.commits.map { |commit| [commit.position.to_s, commit] } + [[SKIP_OPTION, nil]])
|
33
|
+
.to_h
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/auto_commit/rules/base'
|
4
|
+
require 'avm/scms/auto_commit/file_resource_name'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Scms
|
8
|
+
module AutoCommit
|
9
|
+
module Rules
|
10
|
+
class New < ::Avm::Scms::AutoCommit::Rules::Base
|
11
|
+
class WithFile < ::Avm::Scms::AutoCommit::Rules::Base::WithFile
|
12
|
+
def auto_commit_path
|
13
|
+
::Avm::Scms::AutoCommit::FileResourceName.new(file.scm.path, file.path)
|
14
|
+
end
|
15
|
+
|
16
|
+
def commit_info
|
17
|
+
new_commit_info.message(auto_commit_path.commit_message)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/auto_commit/rules/base'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Scms
|
7
|
+
module AutoCommit
|
8
|
+
module Rules
|
9
|
+
class Nth < ::Avm::Scms::AutoCommit::Rules::Base
|
10
|
+
SHORT_KEY = 't'
|
11
|
+
|
12
|
+
class << self
|
13
|
+
def short_key
|
14
|
+
SHORT_KEY
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
common_constructor :number do
|
19
|
+
self.number = number.to_i
|
20
|
+
end
|
21
|
+
|
22
|
+
class WithFile < ::Avm::Scms::AutoCommit::Rules::Base::WithFile
|
23
|
+
def commit_info
|
24
|
+
file.commits(number - 1).if_present { |v| new_commit_info.fixup(v) }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/auto_commit/rules/base'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Scms
|
7
|
+
module AutoCommit
|
8
|
+
module Rules
|
9
|
+
class Unique < ::Avm::Scms::AutoCommit::Rules::Base
|
10
|
+
class WithFile < ::Avm::Scms::AutoCommit::Rules::Base::WithFile
|
11
|
+
def commit_info
|
12
|
+
return nil unless file.commits.count == 1
|
13
|
+
|
14
|
+
new_commit_info.fixup(file.commits.first)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
::EacRubyUtils.require_sub __FILE__
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module Scms
|
9
|
+
module AutoCommit
|
10
|
+
module Rules
|
11
|
+
RULES_CLASSES = %w[last manual new nth unique]
|
12
|
+
.map { |key| ::Avm::Scms::AutoCommit::Rules.const_get(key.camelcase) }
|
13
|
+
|
14
|
+
class << self
|
15
|
+
# @return [Array<Avm::Scms::AutoCommit::Rules>]
|
16
|
+
def all
|
17
|
+
RULES_CLASSES
|
18
|
+
end
|
19
|
+
|
20
|
+
def parse(string)
|
21
|
+
parts = string.split(':')
|
22
|
+
|
23
|
+
klass = rule_class_by_key(parts.shift)
|
24
|
+
klass.new(*parts)
|
25
|
+
end
|
26
|
+
|
27
|
+
def rule_class_by_key(key)
|
28
|
+
RULES_CLASSES.find { |klass| klass.keys.include?(key) } ||
|
29
|
+
raise("Rule not find with key \"#{key}\" (Available: " +
|
30
|
+
RULES_CLASSES.flat_map(&:keys).join(', ') + ')')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Scms
|
7
|
+
class Base
|
8
|
+
module Commits
|
9
|
+
# @return [Avm::Scms::Commit,NilClass]
|
10
|
+
def commit_if_change(_message = nil)
|
11
|
+
raise_abstract_method __method__
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [Avm::Scms::Commit]
|
15
|
+
def head_commit
|
16
|
+
raise_abstract_method __method__
|
17
|
+
end
|
18
|
+
|
19
|
+
# @param commit_info [Avm::Scms::CommitInfo]
|
20
|
+
# @return [Avm::Scms::Commit]
|
21
|
+
def run_commit(_commit_info)
|
22
|
+
raise_abstract_method __method__
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Scms
|
7
|
+
class Base
|
8
|
+
module Milestones
|
9
|
+
# @return [Avm::Scms::Interval]
|
10
|
+
def current_milestone_interval
|
11
|
+
interval(current_milestone_base_commit, head_commit)
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [Avm::Scms::Commit]
|
15
|
+
def current_milestone_base_commit
|
16
|
+
raise_abstract_method __method__
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/avm/scms/base.rb
CHANGED
@@ -6,6 +6,7 @@ require 'eac_ruby_utils/core_ext'
|
|
6
6
|
module Avm
|
7
7
|
module Scms
|
8
8
|
class Base
|
9
|
+
require_sub __FILE__, include_modules: true
|
9
10
|
enable_abstract_methods
|
10
11
|
enable_simple_cache
|
11
12
|
include ::Avm::With::ApplicationStereotype
|
@@ -14,8 +15,13 @@ module Avm
|
|
14
15
|
self.path = path.to_pathname
|
15
16
|
end
|
16
17
|
|
17
|
-
# @return [Avm::Scms::
|
18
|
-
def
|
18
|
+
# @return [Avm::Scms::ChangedFile]
|
19
|
+
def changed_files
|
20
|
+
raise_abstract_method __method__
|
21
|
+
end
|
22
|
+
|
23
|
+
# @return [Avm::Scms::Interval]
|
24
|
+
def interval(_from, _to)
|
19
25
|
raise_abstract_method __method__
|
20
26
|
end
|
21
27
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Scms
|
7
|
+
class ChangedFile
|
8
|
+
enable_abstract_methods
|
9
|
+
|
10
|
+
# @return [Pathname]
|
11
|
+
def absolute_path
|
12
|
+
path.expand_path(scm.path)
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [Pathname]
|
16
|
+
def path
|
17
|
+
raise_abstract_method __method__
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Avm::Scms::Base]
|
21
|
+
def scm
|
22
|
+
raise_abstract_method __method__
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/avm/scms/commit.rb
CHANGED
@@ -16,6 +16,11 @@ module Avm
|
|
16
16
|
raise_abstract_method __method__
|
17
17
|
end
|
18
18
|
|
19
|
+
# @return [Boolean]
|
20
|
+
def fixup?
|
21
|
+
raise_abstract_method __method__
|
22
|
+
end
|
23
|
+
|
19
24
|
def id
|
20
25
|
raise_abstract_method __method__
|
21
26
|
end
|
@@ -46,6 +51,16 @@ module Avm
|
|
46
51
|
def scm_file?(_path)
|
47
52
|
raise_abstract_method __method__
|
48
53
|
end
|
54
|
+
|
55
|
+
# @return [String]
|
56
|
+
def subject
|
57
|
+
raise_abstract_method __method__
|
58
|
+
end
|
59
|
+
|
60
|
+
# @return [String]
|
61
|
+
def to_s
|
62
|
+
"#{subject} [#{id}]"
|
63
|
+
end
|
49
64
|
end
|
50
65
|
end
|
51
66
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Scms
|
7
|
+
class CommitInfo
|
8
|
+
enable_immutable
|
9
|
+
|
10
|
+
immutable_accessor :fixup, :message
|
11
|
+
immutable_accessor :path, type: :array
|
12
|
+
|
13
|
+
def to_s
|
14
|
+
self.class.name.demodulize + '[' +
|
15
|
+
%w[fixup message].map { |m| [m, send(m)] }.reject { |m| m[1].blank? }
|
16
|
+
.map { |m| m.join(': ') }.join(',') + ']'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Scms
|
7
|
+
class Interval
|
8
|
+
enable_abstract_methods
|
9
|
+
|
10
|
+
common_constructor :scm, :from, :to
|
11
|
+
|
12
|
+
# @return [Array<Avm::Scms::Commit>]
|
13
|
+
def commits
|
14
|
+
raise_abstract_method __method__
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/avm/scms.rb
ADDED
data/lib/avm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.60.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo H. Bogoni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha-parsers
|
@@ -106,20 +106,20 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - "~>"
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: '0.
|
109
|
+
version: '0.110'
|
110
110
|
- - ">="
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 0.
|
112
|
+
version: 0.110.1
|
113
113
|
type: :runtime
|
114
114
|
prerelease: false
|
115
115
|
version_requirements: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
117
|
- - "~>"
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: '0.
|
119
|
+
version: '0.110'
|
120
120
|
- - ">="
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: 0.
|
122
|
+
version: 0.110.1
|
123
123
|
- !ruby/object:Gem::Dependency
|
124
124
|
name: eac_templates
|
125
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -369,15 +369,32 @@ files:
|
|
369
369
|
- lib/avm/rspec/setup.rb
|
370
370
|
- lib/avm/rspec/setup/launcher.rb
|
371
371
|
- lib/avm/rspec/setup/source_generator.rb
|
372
|
+
- lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb
|
372
373
|
- lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb
|
373
374
|
- lib/avm/rspec/shared_examples/avm_source_generated.rb
|
374
375
|
- lib/avm/rspec/shared_examples/entries_values.rb
|
375
376
|
- lib/avm/rspec/shared_examples/in_avm_registry.rb
|
376
377
|
- lib/avm/rspec/shared_examples/not_in_avm_registry.rb
|
377
378
|
- lib/avm/runners/base.rb
|
379
|
+
- lib/avm/scms.rb
|
380
|
+
- lib/avm/scms/auto_commit.rb
|
381
|
+
- lib/avm/scms/auto_commit/file_resource_name.rb
|
382
|
+
- lib/avm/scms/auto_commit/for_file.rb
|
383
|
+
- lib/avm/scms/auto_commit/rules.rb
|
384
|
+
- lib/avm/scms/auto_commit/rules/base.rb
|
385
|
+
- lib/avm/scms/auto_commit/rules/last.rb
|
386
|
+
- lib/avm/scms/auto_commit/rules/manual.rb
|
387
|
+
- lib/avm/scms/auto_commit/rules/new.rb
|
388
|
+
- lib/avm/scms/auto_commit/rules/nth.rb
|
389
|
+
- lib/avm/scms/auto_commit/rules/unique.rb
|
378
390
|
- lib/avm/scms/base.rb
|
391
|
+
- lib/avm/scms/base/commits.rb
|
392
|
+
- lib/avm/scms/base/milestones.rb
|
393
|
+
- lib/avm/scms/changed_file.rb
|
379
394
|
- lib/avm/scms/commit.rb
|
395
|
+
- lib/avm/scms/commit_info.rb
|
380
396
|
- lib/avm/scms/inflector.rb
|
397
|
+
- lib/avm/scms/interval.rb
|
381
398
|
- lib/avm/scms/null.rb
|
382
399
|
- lib/avm/self/docker_image.rb
|
383
400
|
- lib/avm/self/instance.rb
|