avm 0.58.0 → 0.60.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|