eac_tools 0.50.0 → 0.51.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: d4beb83e6ea4860f6c6b5a5e9cc4d06bc5fb2dbea75a75d431a9c37bae9070e9
4
- data.tar.gz: c982c7cd5fd95f92ac4d656df233600745a0a6f58cc1d662456804eda7a3a9e7
3
+ metadata.gz: 2dbc38a08966af86a3d17c50ad0788770045d7dcbd7c336fbbc31c9883b6a0aa
4
+ data.tar.gz: '0979accd22c7b7651e8ee52d4798efad58550b74e21def1a2df600f4a557386f'
5
5
  SHA512:
6
- metadata.gz: 10951929bb08a90e4d521c8f04baede258a04b8a4832a7770b765395616d5e7ec57dd88b5c6631d96a7aaeb5bb10f87cb99206e33ea86e3db635bee1b72a8d69
7
- data.tar.gz: a2134fad70db674197dade76b08aa2acfd16e4c8e6af35d5eb12b9a7447145055941e22af96e3280b8de0c1770ec6ac40486fde50fa4ba6c3e7c95f883a9db16
6
+ metadata.gz: f3c593fb8b4e163a02e42b7540022bc5180abc1883f1ee2a9b8608035243fe99b43cb484894e0fcc7b40a33b3b63d0b00651885ae4685ba59b7acc40259ff25e
7
+ data.tar.gz: 65b5f4c7a7713ebe7e49892df82e18965fc32d47304b4afc2ca35af8c0a82a0a85df6b238e79645cd7c99002ef09f3a407357ef3089aa77e61e0defa3d24fdec
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eac_tools (0.50.0)
5
- avm (~> 0.59)
4
+ eac_tools (0.51.0)
5
+ avm (~> 0.60)
6
6
  avm-eac_asciidoctor_base0 (~> 0.13)
7
7
  avm-eac_generic_base0 (~> 0.8)
8
8
  avm-eac_latex_base0 (~> 0.3)
@@ -13,7 +13,7 @@ PATH
13
13
  avm-eac_rails_base1 (~> 0.8)
14
14
  avm-eac_redmine_base0 (~> 0.18)
15
15
  avm-eac_redmine_plugin_base0 (~> 0.4)
16
- avm-eac_ruby_base1 (~> 0.27, >= 0.27.3)
16
+ avm-eac_ruby_base1 (~> 0.28)
17
17
  avm-eac_webapp_base0 (~> 0.13)
18
18
  avm-eac_wordpress_base0 (~> 0.3)
19
19
  avm-tools (~> 0.143)
@@ -118,10 +118,10 @@ PATH
118
118
  PATH
119
119
  remote: sub/avm-eac_ruby_base1
120
120
  specs:
121
- avm-eac_ruby_base1 (0.27.3)
122
- avm (~> 0.57)
121
+ avm-eac_ruby_base1 (0.28.0)
122
+ avm (~> 0.60)
123
123
  avm-eac_generic_base0 (~> 0.8)
124
- eac_ruby_utils (~> 0.109)
124
+ eac_ruby_utils (~> 0.110, >= 0.110.1)
125
125
 
126
126
  PATH
127
127
  remote: sub/avm-eac_ubuntu_base0
@@ -191,7 +191,7 @@ PATH
191
191
  PATH
192
192
  remote: sub/avm
193
193
  specs:
194
- avm (0.59.0)
194
+ avm (0.60.0)
195
195
  aranha-parsers (~> 0.14, >= 0.14.4)
196
196
  eac_cli (~> 0.30)
197
197
  eac_config (~> 0.12)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacTools
4
- VERSION = '0.50.0'
4
+ VERSION = '0.51.0'
5
5
  end
@@ -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
- formats.each do |c|
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
@@ -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 avm_source_generated entries_values
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
@@ -7,13 +7,14 @@ module Avm
7
7
  module AutoCommit
8
8
  class FileResourceName
9
9
  require_sub __FILE__, include_modules: true
10
+ enable_simple_cache
10
11
  common_constructor :source_root, :path do
11
12
  self.source_root = source_root.to_pathname
12
13
  self.path = path.to_pathname
13
14
  end
14
15
 
15
16
  def class_name
16
- ruby_class_name || relative_path.to_path
17
+ file_format.file_resource_name(path)
17
18
  end
18
19
 
19
20
  def commit_message
@@ -25,6 +26,13 @@ module Avm
25
26
  def relative_path
26
27
  path.expand_path.relative_path_from(source_root.expand_path)
27
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
28
36
  end
29
37
  end
30
38
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.59.0'
4
+ VERSION = '0.60.0'
5
5
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/file_formats/base'
4
+
5
+ ::RSpec.describe ::Avm::FileFormats::Base do
6
+ include_examples 'avm_file_format_file_resource_name', {
7
+ 'app/models/mynamespace/the_class.rb' => 'app/models/mynamespace/the_class.rb',
8
+ 'lib/ruby/lib/cliutils/eac_redmine_base0/activity.rb' =>
9
+ 'lib/ruby/lib/cliutils/eac_redmine_base0/activity.rb'
10
+ }
11
+ end
@@ -12,9 +12,9 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,locale,template}/**/*']
14
14
 
15
- s.add_dependency 'avm', '~> 0.57'
15
+ s.add_dependency 'avm', '~> 0.60'
16
16
  s.add_dependency 'avm-eac_generic_base0', '~> 0.8'
17
- s.add_dependency 'eac_ruby_utils', '~> 0.109'
17
+ s.add_dependency 'eac_ruby_utils', '~> 0.110', '>= 0.110.1'
18
18
 
19
19
  s.add_development_dependency 'aranha-parsers', '~> 0.14', '>= 0.14.1'
20
20
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_generic_base0/file_formats/base'
4
+ require 'avm/eac_ruby_base1/rubocop'
5
+
6
+ module Avm
7
+ module EacRubyBase1
8
+ module FileFormats
9
+ class Base < ::Avm::EacGenericBase0::FileFormats::Base
10
+ class FileResourceName
11
+ enable_method_class
12
+ common_constructor :file_format, :path do
13
+ self.path = path.to_pathname
14
+ end
15
+
16
+ LIBRARY_PATTERNS = [%r{lib/((?!.*/lib/).+)\.rb\z},
17
+ %r{app/[^/]+/(.+)\.rb\z}].freeze
18
+ SPEC_PATTERNS = [%r{spec/[^/]+/(.+)_spec\.rb\z}].freeze
19
+
20
+ # @param path [Pathname]
21
+ # @return [Avm::FileFormats::FileWith]
22
+ def result
23
+ result_from_spec || result_from_library || result_from_superclass
24
+ end
25
+
26
+ private
27
+
28
+ def result_from_library
29
+ result_from_patterns(LIBRARY_PATTERNS) { |m| m[1].camelize }
30
+ end
31
+
32
+ def result_from_patterns(patterns)
33
+ patterns.lazy.map { |pattern| pattern.to_parser.parse(path.to_path) }
34
+ .find(&:present?).if_present { |v| yield(v) }
35
+ end
36
+
37
+ def result_from_spec
38
+ result_from_patterns(SPEC_PATTERNS) { |m| "RSpec.describe('#{m[1].camelize}')" }
39
+ end
40
+
41
+ def result_from_superclass
42
+ file_format.class.superclass.instance_method(:file_resource_name)
43
+ .bind_call(file_format, path)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -7,6 +7,8 @@ module Avm
7
7
  module EacRubyBase1
8
8
  module FileFormats
9
9
  class Base < ::Avm::EacGenericBase0::FileFormats::Base
10
+ require_sub __FILE__
11
+
10
12
  VALID_BASENAMES = %w[*.gemspec *.rake *.rb Gemfile Rakefile].freeze
11
13
  VALID_TYPES = ['x-ruby'].freeze
12
14
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRubyBase1
5
- VERSION = '0.27.3'
5
+ VERSION = '0.28.0'
6
6
  end
7
7
  end
@@ -4,4 +4,12 @@ require 'avm/eac_ruby_base1/file_formats/base'
4
4
 
5
5
  ::RSpec.describe ::Avm::EacRubyBase1::FileFormats::Base do
6
6
  include_examples 'avm_file_formats_with_fixtures', __FILE__
7
+ include_examples 'avm_file_format_file_resource_name', {
8
+ 'app/models/mynamespace/the_class.rb' => 'Mynamespace::TheClass',
9
+ 'lib/ruby/lib/cliutils/eac_redmine_base0/activity.rb' => 'Cliutils::EacRedmineBase0::Activity',
10
+ 'a_non_library_file.rb' => 'a_non_library_file.rb',
11
+ 'spec/lib/my_lib_spec.rb' => 'RSpec.describe(\'MyLib\')',
12
+ 'spec/lib/sub/my_lib_spec.rb' => 'RSpec.describe(\'Sub::MyLib\')',
13
+ 'spec/spec_helper.rb' => 'spec/spec_helper.rb'
14
+ }
7
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.50.0
4
+ version: 0.51.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.59'
19
+ version: '0.60'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.59'
26
+ version: '0.60'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: avm-eac_asciidoctor_base0
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -188,20 +188,14 @@ dependencies:
188
188
  requirements:
189
189
  - - "~>"
190
190
  - !ruby/object:Gem::Version
191
- version: '0.27'
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: 0.27.3
191
+ version: '0.28'
195
192
  type: :runtime
196
193
  prerelease: false
197
194
  version_requirements: !ruby/object:Gem::Requirement
198
195
  requirements:
199
196
  - - "~>"
200
197
  - !ruby/object:Gem::Version
201
- version: '0.27'
202
- - - ">="
203
- - !ruby/object:Gem::Version
204
- version: 0.27.3
198
+ version: '0.28'
205
199
  - !ruby/object:Gem::Dependency
206
200
  name: avm-eac_webapp_base0
207
201
  requirement: !ruby/object:Gem::Requirement
@@ -623,6 +617,7 @@ files:
623
617
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/version_requirement.rb
624
618
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats.rb
625
619
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base.rb
620
+ - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base/file_resource_name.rb
626
621
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher.rb
627
622
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher/gem.rb
628
623
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher/gem/build.rb
@@ -1131,6 +1126,7 @@ files:
1131
1126
  - sub/avm/lib/avm/rspec/setup.rb
1132
1127
  - sub/avm/lib/avm/rspec/setup/launcher.rb
1133
1128
  - sub/avm/lib/avm/rspec/setup/source_generator.rb
1129
+ - sub/avm/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb
1134
1130
  - sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb
1135
1131
  - sub/avm/lib/avm/rspec/shared_examples/avm_source_generated.rb
1136
1132
  - sub/avm/lib/avm/rspec/shared_examples/entries_values.rb
@@ -1140,7 +1136,6 @@ files:
1140
1136
  - sub/avm/lib/avm/scms.rb
1141
1137
  - sub/avm/lib/avm/scms/auto_commit.rb
1142
1138
  - sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb
1143
- - sub/avm/lib/avm/scms/auto_commit/file_resource_name/ruby.rb
1144
1139
  - sub/avm/lib/avm/scms/auto_commit/for_file.rb
1145
1140
  - sub/avm/lib/avm/scms/auto_commit/rules.rb
1146
1141
  - sub/avm/lib/avm/scms/auto_commit/rules/base.rb
@@ -1192,6 +1187,7 @@ files:
1192
1187
  - sub/avm/lib/avm/with/extra_subcommands.rb
1193
1188
  - sub/avm/spec/lib/avm/applications/base_spec.rb
1194
1189
  - sub/avm/spec/lib/avm/applications/base_spec_fixture.yml
1190
+ - sub/avm/spec/lib/avm/file_formats/base_spec.rb
1195
1191
  - sub/avm/spec/lib/avm/instances/base_spec.rb
1196
1192
  - sub/avm/spec/lib/avm/instances/base_spec_files/config.yml
1197
1193
  - sub/avm/spec/lib/avm/launcher/instances/base_spec.rb
@@ -1,23 +0,0 @@
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
- module Ruby
10
- RUBY_CLASS_NAME_PATTERNS = [%r{lib/((?!.*/lib/).+)\.rb\z},
11
- %r{app/[^/]+/(.+)\.rb\z}].freeze
12
-
13
- def ruby_class_name
14
- RUBY_CLASS_NAME_PATTERNS.each do |pattern|
15
- pattern.if_match(relative_path.to_path, false) { |m| return m[1].camelize }
16
- end
17
- nil
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end