mj 0.5.1 → 0.5.4

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: 040511b6ef46ad0760a5958920e53ec8d00fa3f0697c9098004e649808c41f73
4
- data.tar.gz: b9eaa497531aa4856674cf0f5d80825769e0b431ee8c304cf052680f8d22ee2c
3
+ metadata.gz: 1c41690187e0bdc1673d0e3719ab6a01b7059459ec25a957228ac64435b72f6a
4
+ data.tar.gz: 59b806a25685ef0661da12675bc098863c28e6b2b0d5c3ba6ae3bdf524de24b3
5
5
  SHA512:
6
- metadata.gz: 1e0c951f24b70e6d25746e51f3cf0a37c9fd781818763e26115f6199a157da4cc3f6590cba8819f56d5ecbdb7de8523e509b3f29dd5362340cebc7d1646c3028
7
- data.tar.gz: 112bc4d98c34cd67f5ef1cae09646e06a920ab2b5ed27010130bbd926dc23d033bdf1a329d9fd0d4e56466dfb086747a40a3414200a5a441839f1a397dd90fdd
6
+ metadata.gz: 81c3559bc183377f40f99af130be362d1d39d3d68451ecbabff3cb084496bfe51d4cff9111771a9fe3449d2a890ea060ed4ba3847d1cad9d9cb52f3189a4fa79
7
+ data.tar.gz: 9a15946c97689290f26b32a89e06b0405384df0282d97b50766581ace012430c05ddddcf082892997658e100851bddbdb767dd0de58003e8176387aefac655ed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mj (0.5.1)
4
+ mj (0.5.4)
5
5
  thor (~> 1.2.1)
6
6
 
7
7
  GEM
@@ -78,4 +78,4 @@ DEPENDENCIES
78
78
  simplecov-lcov
79
79
 
80
80
  BUNDLED WITH
81
- 2.3.6
81
+ 2.3.16
@@ -24,6 +24,10 @@ module Mj
24
24
  other.path == path && other.type == type
25
25
  end
26
26
 
27
+ def inspect
28
+ "#{path}|#{type}"
29
+ end
30
+
27
31
  def to_s(debug: false)
28
32
  parts = [path]
29
33
 
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mj
4
+ module AlternativeFile
5
+ module Resolvers
6
+ module Ruby
7
+ class PackwerkResolver < Resolvers::Base
8
+ def initialize
9
+ @rails = RailsResolver.new
10
+ end
11
+
12
+ private
13
+
14
+ def apply_to?(file)
15
+ file.extension == "rb" && file.start_with?(
16
+ "packages",
17
+ "spec",
18
+ "test"
19
+ )
20
+ end
21
+
22
+ def add_candidates(file, candidates) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
23
+ parts = file.split("/")
24
+ prefix = []
25
+ prefix.push(parts.shift)
26
+ prefix.push(parts.shift)
27
+
28
+ file = parts.join("/")
29
+ file = CurrentFile.new(file)
30
+
31
+ @rails.resolve(file).each do |resolved|
32
+ file = [prefix, resolved].flatten.join("/")
33
+ file = file.sub("/spec/public/", "/spec/")
34
+ file = file.sub("/test/public/", "/test/")
35
+ add_candidate(file, resolved.type, to: candidates)
36
+ end
37
+
38
+ add_public(candidates)
39
+ end
40
+
41
+ def add_public(candidates)
42
+ public_candidates = candidates.reject do |file|
43
+ file.type == :spec || file.type == :minitest
44
+ end
45
+
46
+ public_candidates.each do |candidate|
47
+ parts = candidate.path.split("/app/")
48
+ public_candidate = [parts[0], "/app/public/", parts[1]].compact.join
49
+ add_candidate(public_candidate, candidate.type, to: candidates)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -4,6 +4,7 @@ module Mj
4
4
  module AlternativeFile
5
5
  module Resolvers
6
6
  module Ruby
7
+ # rubocop:disable Metrics/MethodLength
7
8
  class RailsControllerResolver < Resolvers::Base
8
9
  private
9
10
 
@@ -13,7 +14,11 @@ module Mj
13
14
  "spec/integration",
14
15
  "test/integration",
15
16
  "test/controllers",
16
- "spec/controllers"
17
+ "spec/controllers",
18
+ "spec/requests",
19
+ "test/requests",
20
+ "spec/system",
21
+ "test/system"
17
22
  )
18
23
  end
19
24
 
@@ -23,27 +28,53 @@ module Mj
23
28
  add_controller_test(file, candidates, "test")
24
29
  add_integration_test(file, candidates, "spec")
25
30
  add_integration_test(file, candidates, "test")
31
+ add_request_test(file, candidates, "spec")
32
+ add_request_test(file, candidates, "test")
33
+ add_system_test(file, candidates, "spec")
34
+ add_system_test(file, candidates, "test")
26
35
  return
27
36
  end
28
37
 
29
38
  resolve_controller(file, candidates)
30
39
  end
40
+ # rubocop:enable Metrics/MethodLength
31
41
 
32
42
  def add_integration_test(file, candidates, type)
33
43
  path = file.without_prefix("app/controllers").without_suffix(".rb").trim_slashes
34
44
  add_candidate("#{type}/integration/#{path}_#{type}.rb", "integration_#{type}", to: candidates)
35
45
  end
36
46
 
47
+ def add_request_test(file, candidates, type)
48
+ path = file.without_prefix("app/controllers").sub("_controller", "").without_suffix(".rb").trim_slashes
49
+ add_candidate("#{type}/requests/#{path}_#{type}.rb", "request_#{type}", to: candidates)
50
+ end
51
+
52
+ def add_system_test(file, candidates, type)
53
+ path = file.without_prefix("app/controllers").sub("_controller", "").without_suffix(".rb").trim_slashes
54
+ add_candidate("#{type}/system/#{path}_#{type}.rb", "system_#{type}", to: candidates)
55
+ end
56
+
37
57
  def add_controller_test(file, candidates, type)
38
58
  path = file.without_prefix("app/controllers").without_suffix(".rb").trim_slashes
39
59
  add_candidate("#{type}/controllers/#{path}_#{type}.rb", "controller_#{type}", to: candidates)
40
60
  end
41
61
 
62
+ # rubocop:disable Metrics/MethodLength
42
63
  def resolve_controller(file, candidates)
64
+ # requests|system tests don't usually have "request_{type}.rb" suffix
65
+ if file.start_with?(%r{(test|spec)/(system|request)})
66
+ file = file.sub("_spec.rb", "_controller_spec.rb")
67
+ .sub("_test.rb", "_controller_test.rb")
68
+ end
69
+
43
70
  controller_path = file.sub("test/integration", "app/controllers")
44
71
  .sub("spec/integration", "app/controllers")
45
72
  .sub("spec/controllers", "app/controllers")
46
73
  .sub("test/controllers", "app/controllers")
74
+ .sub("test/requests", "app/controllers")
75
+ .sub("test/system", "app/controllers")
76
+ .sub("spec/requests", "app/controllers")
77
+ .sub("spec/system", "app/controllers")
47
78
  .sub("_spec.rb", ".rb")
48
79
  .sub("_test.rb", ".rb")
49
80
  .to_s
@@ -51,6 +82,7 @@ module Mj
51
82
  add_candidate(controller_path, "controller", to: candidates)
52
83
  end
53
84
  end
85
+ # rubocop:enable Metrics/MethodLength
54
86
  end
55
87
  end
56
88
  end
@@ -19,6 +19,7 @@ module Mj
19
19
 
20
20
  # lib files
21
21
  add_candidate("lib/#{ruby_file.class_path}.rb", "lib", to: candidates)
22
+ add_candidate("#{ruby_file.class_path}.rb", "lib", to: candidates)
22
23
  add_candidate("spec/lib/#{ruby_file.class_path}_spec.rb", :spec, to: candidates)
23
24
  add_candidate("test/lib/#{ruby_file.class_path}_test.rb", :minitest, to: candidates)
24
25
  end
@@ -7,9 +7,10 @@ module Mj
7
7
  class RubyFile < AlternativeFile::CurrentFile
8
8
  def class_path
9
9
  path_without_extension
10
+ .without_prefix("spec")
11
+ .without_prefix("test")
10
12
  .without_prefix("app")
11
13
  .without_prefix("lib")
12
- .without_prefix("spec")
13
14
  .without_suffix("_spec")
14
15
  .without_suffix("_test")
15
16
  .trim_slashes
@@ -9,6 +9,7 @@ require_relative "resolvers/base"
9
9
  require_relative "resolvers/ruby/rails_resolver"
10
10
  require_relative "resolvers/ruby/rails_controller_resolver"
11
11
  require_relative "resolvers/ruby/view_component_resolver"
12
+ require_relative "resolvers/ruby/packwerk_resolver"
12
13
  require_relative "resolvers/ruby/ruby_file"
13
14
  require_relative "commands/list_command_handler"
14
15
  require_relative "commands/list_command"
@@ -56,6 +57,7 @@ module Mj
56
57
  resolvers.add(Resolvers::Ruby::RailsResolver.new)
57
58
  resolvers.add(Resolvers::Ruby::RailsControllerResolver.new)
58
59
  resolvers.add(Resolvers::Ruby::ViewComponentResolver.new)
60
+ resolvers.add(Resolvers::Ruby::PackwerkResolver.new)
59
61
  end
60
62
  end
61
63
 
data/lib/mj/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mj
4
- VERSION = "0.5.1"
4
+ VERSION = "0.5.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mj
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcelo Jacobus
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-16 00:00:00.000000000 Z
11
+ date: 2022-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -52,6 +52,7 @@ files:
52
52
  - lib/mj/alternative_file/current_file.rb
53
53
  - lib/mj/alternative_file/resolver.rb
54
54
  - lib/mj/alternative_file/resolvers/base.rb
55
+ - lib/mj/alternative_file/resolvers/ruby/packwerk_resolver.rb
55
56
  - lib/mj/alternative_file/resolvers/ruby/rails_controller_resolver.rb
56
57
  - lib/mj/alternative_file/resolvers/ruby/rails_resolver.rb
57
58
  - lib/mj/alternative_file/resolvers/ruby/ruby_file.rb
@@ -85,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
86
  - !ruby/object:Gem::Version
86
87
  version: '0'
87
88
  requirements: []
88
- rubygems_version: 3.2.22
89
+ rubygems_version: 3.2.33
89
90
  signing_key:
90
91
  specification_version: 4
91
92
  summary: My personal CLI