mj 0.2.0 → 0.3.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 +1 -1
- data/lib/mj/alternative_file/candidate.rb +27 -1
- data/lib/mj/alternative_file/resolvers/base.rb +3 -1
- data/lib/mj/alternative_file/resolvers/ruby/rails_resolver.rb +3 -0
- data/lib/mj/alternative_file/resolvers/ruby/ruby_file.rb +1 -0
- data/lib/mj/alternative_file/thor_command.rb +11 -2
- data/lib/mj/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45d956a04733940240dd116cbd23f2bce4f7489d98954b6eebf4bef7ad650265
|
4
|
+
data.tar.gz: bfd4982a65d4794f54c662fb62aed6952f35af192708984462aa286522a273df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f7d3cbda48c13aa55f08da78e2d072c7c70322c2d53fd6048e68885acda47b969bf36634c4e41d8fcd98f809821fcd0ab6c3f8a0e8b5d2be35d1bbca4c3e141
|
7
|
+
data.tar.gz: 3e51c76e04d0dafed9c49ec6a548dbc6647727cde8fe930e74cff81eca818a67d8bf9b657717be1b55f9979eb29f814dfdd533c8b919492ffe188d9fcc9cd036
|
data/Gemfile.lock
CHANGED
@@ -6,9 +6,10 @@ module Mj
|
|
6
6
|
attr_reader :path
|
7
7
|
attr_reader :type
|
8
8
|
|
9
|
-
def initialize(path:, type:)
|
9
|
+
def initialize(path:, type:, metadata: {})
|
10
10
|
@path = path
|
11
11
|
@type = type
|
12
|
+
@metadata = metadata || {}
|
12
13
|
end
|
13
14
|
|
14
15
|
def exist?
|
@@ -22,6 +23,31 @@ module Mj
|
|
22
23
|
|
23
24
|
other.path == path && other.type == type
|
24
25
|
end
|
26
|
+
|
27
|
+
def to_s(debug: false)
|
28
|
+
parts = [path]
|
29
|
+
|
30
|
+
if debug
|
31
|
+
parts.push("(#{metadata})")
|
32
|
+
end
|
33
|
+
|
34
|
+
parts.join
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def metadata
|
40
|
+
data = {
|
41
|
+
type: type,
|
42
|
+
exists: exist?
|
43
|
+
}
|
44
|
+
|
45
|
+
@metadata.keys.sort.each do |key|
|
46
|
+
data[key] = @metadata[key]
|
47
|
+
end
|
48
|
+
|
49
|
+
data.map { |k, v| "#{k}:#{v}" }.join(",")
|
50
|
+
end
|
25
51
|
end
|
26
52
|
end
|
27
53
|
end
|
@@ -15,7 +15,9 @@ module Mj
|
|
15
15
|
private
|
16
16
|
|
17
17
|
def create_candidate(path, type)
|
18
|
-
AlternativeFile::Candidate.new(path: path, type: type
|
18
|
+
AlternativeFile::Candidate.new(path: path, type: type, metadata: {
|
19
|
+
resolved_by: self.class.name
|
20
|
+
})
|
19
21
|
end
|
20
22
|
|
21
23
|
def apply_to?(_file)
|
@@ -16,6 +16,9 @@ module Mj
|
|
16
16
|
alternatives.push(create_candidate("app/#{ruby_file.class_path}.rb", "model"))
|
17
17
|
alternatives.push(create_candidate("spec/#{ruby_file.class_path}_spec.rb", "spec"))
|
18
18
|
alternatives.push(create_candidate("test/#{ruby_file.class_path}_test.rb", "minitest"))
|
19
|
+
|
20
|
+
# lib files
|
21
|
+
alternatives.push(create_candidate("lib/#{ruby_file.class_path}.rb", "lib"))
|
19
22
|
end
|
20
23
|
end
|
21
24
|
end
|
@@ -16,6 +16,7 @@ module Mj
|
|
16
16
|
desc "list <reference-file>", "List all alternative files"
|
17
17
|
option :types, type: :string, banner: "<comma-separated-types>", aliases: :t
|
18
18
|
option :exists, type: :boolean, banner: "files that exist", aliases: :e
|
19
|
+
option :debug, type: :boolean, banner: "print debug information", aliases: :d
|
19
20
|
def list(reference_file)
|
20
21
|
file = CurrentFile.new(reference_file)
|
21
22
|
print_candidates(resolve(file))
|
@@ -24,6 +25,7 @@ module Mj
|
|
24
25
|
desc "next <reference-file>", "Next alternative file"
|
25
26
|
option :types, type: :string, banner: "<comma-separated-types>", aliases: :t
|
26
27
|
option :exists, type: :boolean, banner: "files that exist", aliases: :e
|
28
|
+
option :debug, type: :boolean, banner: "print debug information", aliases: :d
|
27
29
|
def next(reference_file)
|
28
30
|
file = CurrentFile.new(reference_file)
|
29
31
|
candidate = resolve(file).after(file)
|
@@ -33,6 +35,7 @@ module Mj
|
|
33
35
|
desc "prev <reference-file>", "Previous alternative file"
|
34
36
|
option :types, type: :string, banner: "<comma-separated-types>", aliases: :t
|
35
37
|
option :exists, type: :boolean, banner: "files that exist", aliases: :e
|
38
|
+
option :debug, type: :boolean, banner: "print debug information", aliases: :d
|
36
39
|
def prev(reference_file)
|
37
40
|
file = CurrentFile.new(reference_file)
|
38
41
|
candidate = resolve(file).before(file)
|
@@ -49,9 +52,10 @@ module Mj
|
|
49
52
|
private
|
50
53
|
|
51
54
|
def print_candidates(candidates)
|
52
|
-
$stdout.puts candidates.map(
|
55
|
+
$stdout.puts candidates.map { |i| i.to_s(debug: options[:debug]) }.join(" ")
|
53
56
|
end
|
54
57
|
|
58
|
+
# rubocop:disable Metrics/MethodLength
|
55
59
|
def resolve(file)
|
56
60
|
candidates = self.class.resolvers.resolve(file)
|
57
61
|
|
@@ -63,8 +67,13 @@ module Mj
|
|
63
67
|
candidates = candidates.existing
|
64
68
|
end
|
65
69
|
|
66
|
-
|
70
|
+
unless options[:debug]
|
71
|
+
candidates = candidates.unique
|
72
|
+
end
|
73
|
+
|
74
|
+
candidates
|
67
75
|
end
|
76
|
+
# rubocop:enable Metrics/MethodLength
|
68
77
|
end
|
69
78
|
end
|
70
79
|
end
|
data/lib/mj/version.rb
CHANGED
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.
|
4
|
+
version: 0.3.0
|
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-
|
11
|
+
date: 2022-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|