eac_tools 0.48.1 → 0.50.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/Gemfile.lock +21 -21
- data/lib/eac_tools/version.rb +1 -1
- data/sub/avm/avm.gemspec +2 -2
- data/sub/avm/lib/avm/registry/sources.rb +21 -0
- data/sub/avm/lib/avm/scms/auto_commit/file_resource_name/ruby.rb +23 -0
- data/sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb +31 -0
- data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +72 -0
- data/sub/{avm-git/lib/avm/git → avm/lib/avm/scms}/auto_commit/rules/base.rb +3 -2
- data/sub/{avm-git/lib/avm/git → avm/lib/avm/scms}/auto_commit/rules/last.rb +4 -4
- data/sub/{avm-git/lib/avm/git → avm/lib/avm/scms}/auto_commit/rules/manual.rb +5 -10
- data/sub/avm/lib/avm/scms/auto_commit/rules/new.rb +24 -0
- data/sub/{avm-git/lib/avm/git → avm/lib/avm/scms}/auto_commit/rules/nth.rb +4 -4
- data/sub/{avm-git/lib/avm/git → avm/lib/avm/scms}/auto_commit/rules/unique.rb +4 -4
- data/sub/{avm-git/lib/avm/git → avm/lib/avm/scms}/auto_commit/rules.rb +7 -2
- data/sub/avm/lib/avm/scms/auto_commit.rb +11 -0
- data/sub/avm/lib/avm/scms/base/commits.rb +27 -0
- data/sub/avm/lib/avm/scms/base/milestones.rb +21 -0
- data/sub/avm/lib/avm/scms/base.rb +8 -2
- data/sub/avm/lib/avm/scms/changed_file.rb +26 -0
- data/sub/avm/lib/avm/scms/commit.rb +15 -0
- data/sub/avm/lib/avm/scms/commit_info.rb +20 -0
- data/sub/avm/lib/avm/scms/interval.rb +18 -0
- data/sub/avm/lib/avm/scms.rb +9 -0
- data/sub/avm/lib/avm/sources/base/stereotype.rb +18 -0
- data/sub/avm/lib/avm/version.rb +1 -1
- data/sub/{avm-git/spec/lib/avm/git/auto_commit_path_spec.rb → avm/spec/lib/avm/scms/auto_commit/file_resource_name_spec.rb} +2 -2
- data/sub/avm-git/avm-git.gemspec +3 -3
- data/sub/avm-git/lib/avm/git/scms/git/changed_file.rb +16 -0
- data/sub/avm-git/lib/avm/git/scms/git/changed_files.rb +24 -0
- data/sub/avm-git/lib/avm/git/scms/git/commit.rb +10 -0
- data/sub/avm-git/lib/avm/git/scms/git/commits.rb +57 -0
- data/sub/avm-git/lib/avm/git/scms/git/interval.rb +31 -0
- data/sub/avm-git/lib/avm/git/scms/git/milestones.rb +21 -0
- data/sub/avm-git/lib/avm/git/scms/git/run_commit.rb +57 -0
- data/sub/avm-git/lib/avm/git/scms/git.rb +6 -35
- data/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +2 -1
- data/sub/avm-git/lib/avm/git/version.rb +1 -1
- data/sub/avm-tools/avm-tools.gemspec +2 -2
- data/sub/avm-tools/lib/avm/tools/runner/git/subrepo/fix.rb +12 -4
- data/sub/avm-tools/lib/avm/tools/runner/{git → source}/auto_commit.rb +12 -9
- data/sub/avm-tools/lib/avm/tools/version.rb +1 -1
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/{value.rb → item.rb} +7 -13
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/list.rb +14 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/assert_parent.rb +12 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/listable_spec.rb +10 -10
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/assert_parent_spec.rb +21 -0
- metadata +39 -30
- data/sub/avm-git/lib/avm/git/auto_commit/commit_info.rb +0 -23
- data/sub/avm-git/lib/avm/git/auto_commit/rules/new.rb +0 -24
- data/sub/avm-git/lib/avm/git/auto_commit_path/ruby.rb +0 -20
- data/sub/avm-git/lib/avm/git/auto_commit_path.rb +0 -28
- data/sub/avm-git/lib/avm/git/file_auto_fixup.rb +0 -83
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Sources
|
7
|
+
class Base
|
8
|
+
module Stereotype
|
9
|
+
STEREOTYPE_NAME_KEY = 'stereotype'
|
10
|
+
|
11
|
+
# @return [String, nil]
|
12
|
+
def stereotype_name_by_configuration
|
13
|
+
configuration.entry(STEREOTYPE_NAME_KEY).value
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/sub/avm/lib/avm/version.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/
|
3
|
+
require 'avm/scms/auto_commit/file_resource_name'
|
4
4
|
|
5
|
-
RSpec.describe ::Avm::
|
5
|
+
RSpec.describe ::Avm::Scms::AutoCommit::FileResourceName, git: true do
|
6
6
|
let(:git) { stubbed_git_local_repo }
|
7
7
|
|
8
8
|
describe '#class_name' do
|
data/sub/avm-git/avm-git.gemspec
CHANGED
@@ -12,11 +12,11 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.files = Dir['{lib}/**/*']
|
14
14
|
|
15
|
-
s.add_dependency 'avm', '~> 0.
|
15
|
+
s.add_dependency 'avm', '~> 0.59'
|
16
16
|
s.add_dependency 'avm-files', '~> 0.6'
|
17
17
|
s.add_dependency 'eac_git', '~> 0.14'
|
18
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
19
|
-
s.add_dependency 'git', '~> 1.
|
18
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.110', '>= 0.110.1'
|
19
|
+
s.add_dependency 'git', '~> 1.13'
|
20
20
|
|
21
21
|
s.add_development_dependency 'aranha-parsers', '~> 0.8', '>= 0.8.5'
|
22
22
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.4'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/changed_file'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Git
|
8
|
+
module Scms
|
9
|
+
class Git < ::Avm::Scms::Base
|
10
|
+
class ChangedFile < ::Avm::Scms::ChangedFile
|
11
|
+
common_constructor :scm, :path
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/git/scms/git/changed_file'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Git
|
8
|
+
module Scms
|
9
|
+
class Git < ::Avm::Scms::Base
|
10
|
+
class ChangedFiles
|
11
|
+
enable_method_class
|
12
|
+
common_constructor :scm
|
13
|
+
|
14
|
+
# @return [Avm::Git::Scms::Git::ChangedFile]
|
15
|
+
def result
|
16
|
+
scm.git_repo.dirty_files.map do |dirty_file|
|
17
|
+
::Avm::Git::Scms::Git::ChangedFile.new(scm, dirty_file.path)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -15,11 +15,18 @@ module Avm
|
|
15
15
|
delegate :git_repo, to: :git_scm
|
16
16
|
delegate :id, to: :git_commit
|
17
17
|
|
18
|
+
FIXUP_SUBJECT_PATTERN = /\Afixup\!/.freeze
|
19
|
+
|
18
20
|
# @return [Array<Pathname>]
|
19
21
|
def changed_files
|
20
22
|
git_commit.changed_files.map { |cf| cf.path.to_pathname }
|
21
23
|
end
|
22
24
|
|
25
|
+
# @return [Boolean]
|
26
|
+
def fixup?
|
27
|
+
FIXUP_SUBJECT_PATTERN.match?(git_commit.subject)
|
28
|
+
end
|
29
|
+
|
23
30
|
# @param other [Avm::Git::Scms::Git::Commit]
|
24
31
|
# @return [Avm::Git::Scms::Git::Commit]
|
25
32
|
def merge_with(other)
|
@@ -43,6 +50,9 @@ module Avm
|
|
43
50
|
%w[.gitrepo .gitmodules].any? { |file| file.include?(path.basename.to_path) }
|
44
51
|
end
|
45
52
|
|
53
|
+
# @return [String]
|
54
|
+
delegate :subject, to: :git_commit
|
55
|
+
|
46
56
|
private
|
47
57
|
|
48
58
|
def validate_clean_and_head
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/commit'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Git
|
8
|
+
module Scms
|
9
|
+
class Git < ::Avm::Scms::Base
|
10
|
+
module Commits
|
11
|
+
# @return [Avm::Git::Scms::Git::Commit,nil]
|
12
|
+
def commit(source)
|
13
|
+
if source.is_a?(::Avm::Git::Scms::Git::Commit)
|
14
|
+
return source if source.git_repo == git_repo
|
15
|
+
|
16
|
+
raise 'Not same Git repository'
|
17
|
+
end
|
18
|
+
git_repo.commitize(source).if_present do |v|
|
19
|
+
::Avm::Git::Scms::Git::Commit.new(self, v)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# @return [Avm::Git::Scms::Git::Commit,nil]
|
24
|
+
def commit_dirty(message = nil)
|
25
|
+
return nil unless git_repo.dirty?
|
26
|
+
|
27
|
+
git_repo.command('add', '.').execute!
|
28
|
+
git_repo.command(
|
29
|
+
'commit', '-m',
|
30
|
+
message.call_if_proc.if_present(COMMIT_DIRTY_DEFAULT_MESSAGE)
|
31
|
+
).execute!
|
32
|
+
head_commit
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [Avm::Git::Scms::Git::Commit,nil]
|
36
|
+
def commit_if_change(message = nil)
|
37
|
+
tracker = ::Avm::Git::Scms::Git::ChangeTracker.new(self, message)
|
38
|
+
tracker.start
|
39
|
+
yield
|
40
|
+
tracker.stop
|
41
|
+
end
|
42
|
+
|
43
|
+
# @return [Avm::Git::Scms::Git::Commit]
|
44
|
+
def head_commit
|
45
|
+
commit(git_repo.head)
|
46
|
+
end
|
47
|
+
|
48
|
+
# @return [Avm::Git::Scms::Git::Commit]
|
49
|
+
def reset_and_commit(commit_to_reset, message)
|
50
|
+
git_repo.command('reset', '--soft', commit(commit_to_reset).git_commit.id).execute!
|
51
|
+
commit_dirty(message)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/interval'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Git
|
8
|
+
module Scms
|
9
|
+
class Git < ::Avm::Scms::Base
|
10
|
+
class Interval < ::Avm::Scms::Interval
|
11
|
+
def initialize(scm, from, to)
|
12
|
+
super(scm, from, to)
|
13
|
+
self.from = scm.commit(from)
|
14
|
+
self.to = scm.commit(to)
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [Array<Avm::Git::Scms::Git::Commit>]
|
18
|
+
def commits
|
19
|
+
scm.git_repo.command('log', '--pretty=format:%H', git_commit_interval).execute!
|
20
|
+
.each_line.map { |sha1| scm.commit(sha1.strip) }
|
21
|
+
end
|
22
|
+
|
23
|
+
# @return [String]
|
24
|
+
def git_commit_interval
|
25
|
+
[from.id, to.id].join('..')
|
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/commit'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Git
|
8
|
+
module Scms
|
9
|
+
class Git < ::Avm::Scms::Base
|
10
|
+
module Milestones
|
11
|
+
BASE_COMMIT_REFERENCE = 'origin/master'
|
12
|
+
|
13
|
+
# @return [Avm::Git::Scms::Git::Commit]
|
14
|
+
def current_milestone_base_commit
|
15
|
+
commit(BASE_COMMIT_REFERENCE)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/commit'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Git
|
8
|
+
module Scms
|
9
|
+
class Git < ::Avm::Scms::Base
|
10
|
+
class RunCommit
|
11
|
+
enable_method_class
|
12
|
+
|
13
|
+
common_constructor :scm, :commit_info
|
14
|
+
|
15
|
+
# @return [Avm::Git::Scms::Git::Commit]
|
16
|
+
def result
|
17
|
+
reset
|
18
|
+
add_paths
|
19
|
+
commit
|
20
|
+
|
21
|
+
scm.head_commit
|
22
|
+
end
|
23
|
+
|
24
|
+
protected
|
25
|
+
|
26
|
+
def add_path(path)
|
27
|
+
scm.git_repo.command(
|
28
|
+
*(path.exist? ? ['add'] : ['rm', '-f']),
|
29
|
+
path.relative_path_from(scm.path)
|
30
|
+
).execute!
|
31
|
+
end
|
32
|
+
|
33
|
+
def add_paths
|
34
|
+
commit_info.paths.each { |path| add_path(path) }
|
35
|
+
end
|
36
|
+
|
37
|
+
def commit
|
38
|
+
scm.git_repo.command('commit', *commit_args).execute!
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [Array<String>]
|
42
|
+
def commit_args
|
43
|
+
r = commit_info.fixup.if_present([]) { |v| ['--fixup', v.id] }
|
44
|
+
r += commit_info.message.if_present([]) { |v| ['--message', v] }
|
45
|
+
return r if r.any?
|
46
|
+
|
47
|
+
raise 'Argument list is empty'
|
48
|
+
end
|
49
|
+
|
50
|
+
def reset
|
51
|
+
scm.git_repo.command('reset', '--soft', 'HEAD').execute!
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -8,7 +8,7 @@ module Avm
|
|
8
8
|
module Git
|
9
9
|
module Scms
|
10
10
|
class Git < ::Avm::Scms::Base
|
11
|
-
require_sub __FILE__
|
11
|
+
require_sub __FILE__, include_modules: true
|
12
12
|
include ::Comparable
|
13
13
|
|
14
14
|
COMMIT_DIRTY_DEFAULT_MESSAGE = 'Dirty files.'
|
@@ -17,44 +17,15 @@ module Avm
|
|
17
17
|
git_repo <=> other.git_repo
|
18
18
|
end
|
19
19
|
|
20
|
-
# @return [Avm::Git::Scms::Git::Commit,nil]
|
21
|
-
def commit(source)
|
22
|
-
if source.is_a?(::Avm::Git::Scms::Git::Commit)
|
23
|
-
return source if source.git_repo == self
|
24
|
-
|
25
|
-
raise 'Not same Git repository'
|
26
|
-
end
|
27
|
-
git_repo.commitize(source).if_present do |v|
|
28
|
-
::Avm::Git::Scms::Git::Commit.new(self, v)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
# @return [Avm::Git::Scms::Git::Commit,nil]
|
33
|
-
def commit_dirty(message = nil)
|
34
|
-
return nil unless git_repo.dirty?
|
35
|
-
|
36
|
-
git_repo.command('add', '.').execute!
|
37
|
-
git_repo.command('commit', '-m',
|
38
|
-
message.call_if_proc.if_present(COMMIT_DIRTY_DEFAULT_MESSAGE)).execute!
|
39
|
-
commit(git_repo.head)
|
40
|
-
end
|
41
|
-
|
42
|
-
# @return [Avm::Git::Scms::Git::Commit,nil]
|
43
|
-
def commit_if_change(message = nil)
|
44
|
-
tracker = ::Avm::Git::Scms::Git::ChangeTracker.new(self, message)
|
45
|
-
tracker.start
|
46
|
-
yield
|
47
|
-
tracker.stop
|
48
|
-
end
|
49
|
-
|
50
20
|
def git_repo
|
51
21
|
@git_repo ||= ::EacGit::Local.new(path)
|
52
22
|
end
|
53
23
|
|
54
|
-
# @
|
55
|
-
|
56
|
-
|
57
|
-
|
24
|
+
# @param from [Avm::Git::Scms::Git::Commit]
|
25
|
+
# @param to [Avm::Git::Scms::Git::Commit]
|
26
|
+
# @return [Avm::Git::Scms::Git::Interval]
|
27
|
+
def interval(from, to)
|
28
|
+
::Avm::Git::Scms::Git::Interval.new(self, from, to)
|
58
29
|
end
|
59
30
|
|
60
31
|
# @return [Enumerable<Avm::Git::Scms::GitSubrepo>]
|
@@ -8,7 +8,8 @@ module Avm
|
|
8
8
|
module Git
|
9
9
|
module Scms
|
10
10
|
class GitSubrepo < ::Avm::Scms::Base
|
11
|
-
delegate :commit_if_change,
|
11
|
+
delegate :changed_files, :commit_if_change, :current_milestone_base_commit, :interval,
|
12
|
+
:head_commit, :run_commit, to: :parent_scm
|
12
13
|
|
13
14
|
def update
|
14
15
|
git_subrepo.command('clean').execute!
|
@@ -15,11 +15,11 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
16
16
|
|
17
17
|
s.add_dependency 'aranha-parsers', '~> 0.14', '>= 0.14.4'
|
18
|
-
s.add_dependency 'avm', '~> 0.
|
18
|
+
s.add_dependency 'avm', '~> 0.59'
|
19
19
|
s.add_dependency 'avm-eac_ruby_base1', '~> 0.27', '>= 0.27.3'
|
20
20
|
s.add_dependency 'avm-eac_ubuntu_base0', '~> 0.4'
|
21
21
|
s.add_dependency 'avm-files', '~> 0.6'
|
22
|
-
s.add_dependency 'avm-git', '~> 0.
|
22
|
+
s.add_dependency 'avm-git', '~> 0.11'
|
23
23
|
s.add_dependency 'clipboard', '~> 1.3', '>= 1.3.6'
|
24
24
|
s.add_dependency 'curb', '~> 0.9', '>= 0.9.11'
|
25
25
|
s.add_dependency 'eac_git', '~> 0.14'
|
@@ -1,9 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'avm/tools/core_ext'
|
4
|
-
require 'avm/git/
|
5
|
-
require 'avm/git/file_auto_fixup'
|
4
|
+
require 'avm/git/scms/git'
|
6
5
|
require 'avm/git/subrepo_checks'
|
6
|
+
require 'avm/scms/auto_commit/rules/unique'
|
7
|
+
require 'avm/scms/auto_commit/for_file'
|
7
8
|
require 'eac_git/local'
|
8
9
|
|
9
10
|
module Avm
|
@@ -31,8 +32,10 @@ module Avm
|
|
31
32
|
infov 'Dirty files', local_repos.dirty_files.count
|
32
33
|
local_repos.dirty_files.each do |file|
|
33
34
|
infov ' * Ammending', file.path
|
34
|
-
::Avm::
|
35
|
-
|
35
|
+
::Avm::Scms::AutoCommit::ForFile.new(
|
36
|
+
git_scm, file.path,
|
37
|
+
[::Avm::Scms::AutoCommit::Rules::Unique.new]
|
38
|
+
).run
|
36
39
|
end
|
37
40
|
end
|
38
41
|
|
@@ -43,6 +46,11 @@ module Avm
|
|
43
46
|
!c.result.error?
|
44
47
|
end
|
45
48
|
|
49
|
+
# @return [Avm::Git::Scms::Git]
|
50
|
+
def git_scm_uncached
|
51
|
+
::Avm::Git::Scms::Git.new(runner_context.call(:git).root_path)
|
52
|
+
end
|
53
|
+
|
46
54
|
def new_check(fix_parent = false)
|
47
55
|
r = ::Avm::Git::SubrepoChecks.new(local_repos).add_all_subrepos
|
48
56
|
r.fix_parent = fix_parent
|
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
require 'eac_cli/core_ext'
|
4
4
|
require 'avm/file_formats/search_formatter'
|
5
|
-
require 'avm/
|
6
|
-
require 'avm/
|
5
|
+
require 'avm/scms/auto_commit/for_file'
|
6
|
+
require 'avm/scms/auto_commit/rules'
|
7
7
|
|
8
8
|
module Avm
|
9
9
|
module Tools
|
10
10
|
class Runner
|
11
|
-
class
|
11
|
+
class Source < ::Avm::Sources::Runner
|
12
12
|
class AutoCommit
|
13
13
|
runner_with :help do
|
14
14
|
desc 'Auto fixup files.'
|
@@ -19,13 +19,18 @@ module Avm
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def run
|
22
|
-
runner_context.call(:git).command('reset', 'HEAD').system!
|
23
22
|
format_files
|
24
23
|
files.each do |file|
|
25
|
-
::Avm::
|
24
|
+
::Avm::Scms::AutoCommit::ForFile.new(runner_context.call(:source).scm, file, rules)
|
25
|
+
.run
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
def help_extra_text
|
30
|
+
"Rules\n" + ::Avm::Scms::AutoCommit::Rules.all
|
31
|
+
.map { |r| ' ' + r.keys.join(', ') + "\n" }.join
|
32
|
+
end
|
33
|
+
|
29
34
|
private
|
30
35
|
|
31
36
|
def files_uncached
|
@@ -48,14 +53,12 @@ module Avm
|
|
48
53
|
def dirty_files
|
49
54
|
return [] unless parsed.dirty?
|
50
55
|
|
51
|
-
runner_context.call(:
|
52
|
-
file.path.to_pathname.expand_path(runner_context.call(:git).root_path)
|
53
|
-
end
|
56
|
+
runner_context.call(:source).scm.changed_files.map(&:absolute_path)
|
54
57
|
end
|
55
58
|
|
56
59
|
def rules
|
57
60
|
parsed.rule.map do |rule_string|
|
58
|
-
::Avm::
|
61
|
+
::Avm::Scms::AutoCommit::Rules.parse(rule_string)
|
59
62
|
end
|
60
63
|
end
|
61
64
|
|
@@ -1,25 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'eac_ruby_utils/patches/class/common_constructor'
|
3
4
|
require 'eac_ruby_utils/inflector'
|
4
5
|
|
5
6
|
module EacRubyUtils
|
6
7
|
module Listable
|
7
|
-
class
|
8
|
-
|
9
|
-
|
10
|
-
def initialize(list, value, key, translation_required = true)
|
11
|
-
@list = list
|
12
|
-
@value = value
|
13
|
-
@key = key
|
14
|
-
@translation_required = translation_required
|
15
|
-
end
|
8
|
+
class Item
|
9
|
+
common_constructor :list, :value, :key, :translation_required, default: [true]
|
16
10
|
|
17
11
|
def to_s
|
18
|
-
"I: #{
|
12
|
+
"I: #{list.item}, V: #{value}, K: #{key}"
|
19
13
|
end
|
20
14
|
|
21
15
|
def constant_name
|
22
|
-
::EacRubyUtils::Inflector.variableize("#{
|
16
|
+
::EacRubyUtils::Inflector.variableize("#{list.item}_#{key}").upcase
|
23
17
|
end
|
24
18
|
|
25
19
|
def label
|
@@ -36,13 +30,13 @@ module EacRubyUtils
|
|
36
30
|
end
|
37
31
|
|
38
32
|
def translation_required?
|
39
|
-
|
33
|
+
translation_required
|
40
34
|
end
|
41
35
|
|
42
36
|
private
|
43
37
|
|
44
38
|
def translate(translate_key)
|
45
|
-
full_translate_key = "#{
|
39
|
+
full_translate_key = "#{list.i18n_key}.#{key}.#{translate_key}"
|
46
40
|
if !::I18n.exists?(full_translate_key) && !translation_required?
|
47
41
|
''
|
48
42
|
else
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'eac_ruby_utils/listable/
|
3
|
+
require 'eac_ruby_utils/listable/item'
|
4
4
|
|
5
5
|
module EacRubyUtils
|
6
6
|
module Listable
|
@@ -18,13 +18,23 @@ module EacRubyUtils
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def blank_value
|
21
|
-
@blank_value ||= ::EacRubyUtils::Listable::
|
21
|
+
@blank_value ||= ::EacRubyUtils::Listable::Item.new(self, BLANK_VALUE, BLANK_KEY, false)
|
22
22
|
end
|
23
23
|
|
24
24
|
def each_value(&block)
|
25
25
|
values.each(&block)
|
26
26
|
end
|
27
27
|
|
28
|
+
# @return [EacRubyUtils::Listable::Item, nil]
|
29
|
+
def item_by_value(value)
|
30
|
+
@values.values.find { |item| item.value == value }
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [EacRubyUtils::Listable::Item]
|
34
|
+
def item_by_value!(value)
|
35
|
+
item_by_value(value) || raise(::KeyError, "Value not found: #{value}")
|
36
|
+
end
|
37
|
+
|
28
38
|
def values
|
29
39
|
@values.values.map(&:value)
|
30
40
|
end
|
@@ -59,7 +69,7 @@ module EacRubyUtils
|
|
59
69
|
"eac_ruby_utils.listable.#{class_i18n_key}.#{item}"
|
60
70
|
end
|
61
71
|
|
62
|
-
# @return [EacRubyUtils::Listable::
|
72
|
+
# @return [EacRubyUtils::Listable::Item, nil]
|
63
73
|
def instance_value(instance)
|
64
74
|
v = instance.send(item)
|
65
75
|
return blank_value if v.blank?
|
@@ -109,7 +119,7 @@ module EacRubyUtils
|
|
109
119
|
def build_values(labels)
|
110
120
|
vs = {}
|
111
121
|
parse_labels(labels).each do |value, key|
|
112
|
-
v =
|
122
|
+
v = ::EacRubyUtils::Listable::Item.new(self, value, key)
|
113
123
|
vs[v.value] = v
|
114
124
|
end
|
115
125
|
vs
|
@@ -87,52 +87,52 @@ RSpec.describe ::EacRubyUtils::Listable do
|
|
87
87
|
it { expect(stub_class.lists.is_a?(::EacRubyUtils::Listable::Lists)).to eq(true) }
|
88
88
|
|
89
89
|
it {
|
90
|
-
expect(stub_class.lists.inteiro.value_a.is_a?(::EacRubyUtils::Listable::
|
90
|
+
expect(stub_class.lists.inteiro.value_a.is_a?(::EacRubyUtils::Listable::Item))
|
91
91
|
.to eq(true)
|
92
92
|
}
|
93
93
|
|
94
94
|
it {
|
95
|
-
expect(stub_class.lists.inteiro.value_b.is_a?(::EacRubyUtils::Listable::
|
95
|
+
expect(stub_class.lists.inteiro.value_b.is_a?(::EacRubyUtils::Listable::Item))
|
96
96
|
.to eq(true)
|
97
97
|
}
|
98
98
|
|
99
99
|
it {
|
100
|
-
expect(stub_class.lists.inteiro.value_c.is_a?(::EacRubyUtils::Listable::
|
100
|
+
expect(stub_class.lists.inteiro.value_c.is_a?(::EacRubyUtils::Listable::Item))
|
101
101
|
.to eq(true)
|
102
102
|
}
|
103
103
|
|
104
104
|
it {
|
105
|
-
expect(stub_class.lists.code.value_a.is_a?(::EacRubyUtils::Listable::
|
105
|
+
expect(stub_class.lists.code.value_a.is_a?(::EacRubyUtils::Listable::Item))
|
106
106
|
.to eq(true)
|
107
107
|
}
|
108
108
|
|
109
109
|
it {
|
110
|
-
expect(stub_class.lists.code.value_b.is_a?(::EacRubyUtils::Listable::
|
110
|
+
expect(stub_class.lists.code.value_b.is_a?(::EacRubyUtils::Listable::Item))
|
111
111
|
.to eq(true)
|
112
112
|
}
|
113
113
|
|
114
114
|
it {
|
115
|
-
expect(stub_class.lists.cadeia.value_a.is_a?(::EacRubyUtils::Listable::
|
115
|
+
expect(stub_class.lists.cadeia.value_a.is_a?(::EacRubyUtils::Listable::Item))
|
116
116
|
.to eq(true)
|
117
117
|
}
|
118
118
|
|
119
119
|
it {
|
120
|
-
expect(stub_class.lists.cadeia.value_b.is_a?(::EacRubyUtils::Listable::
|
120
|
+
expect(stub_class.lists.cadeia.value_b.is_a?(::EacRubyUtils::Listable::Item))
|
121
121
|
.to eq(true)
|
122
122
|
}
|
123
123
|
|
124
124
|
it {
|
125
|
-
expect(stub_class.lists.cadeia.value_c.is_a?(::EacRubyUtils::Listable::
|
125
|
+
expect(stub_class.lists.cadeia.value_c.is_a?(::EacRubyUtils::Listable::Item))
|
126
126
|
.to eq(true)
|
127
127
|
}
|
128
128
|
|
129
129
|
it {
|
130
|
-
expect(stub_class.lists.type.value_a.is_a?(::EacRubyUtils::Listable::
|
130
|
+
expect(stub_class.lists.type.value_a.is_a?(::EacRubyUtils::Listable::Item))
|
131
131
|
.to eq(true)
|
132
132
|
}
|
133
133
|
|
134
134
|
it {
|
135
|
-
expect(stub_class.lists.type.value_b.is_a?(::EacRubyUtils::Listable::
|
135
|
+
expect(stub_class.lists.type.value_b.is_a?(::EacRubyUtils::Listable::Item))
|
136
136
|
.to eq(true)
|
137
137
|
}
|
138
138
|
end
|