mj 0.4.2 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79b064c1e86b2c881657f35989e852b5000e4677a1abf4636b2473974a5e115f
4
- data.tar.gz: 165f134cfe2c427d6d96314f0bda0c73dfce38d93fd777cdd60740c65314438f
3
+ metadata.gz: 68281e38b6bf810bb52d6c06082ceb22eceb434da732156830d1c437c477e1f8
4
+ data.tar.gz: c6f3d7e407bfb9851c0cd956dd25d2e8d07b2ce366dfe41e81605affa3cfd21a
5
5
  SHA512:
6
- metadata.gz: e8337127e6a696efca4c24b673e3e1f5fea79886a9946ef37173683315701c7bb2c6644a1ae77d3cd55efc7717eb36efb80a1312c5db274fdfe8abe66aba289e
7
- data.tar.gz: 538a81a2d58fe8bdfa85ec60409868526479cb6b6016b965f264a105b467ec9120d87c58efdf0260e1de9f6ae3ac3102c01eb432e0c098cc8ef7ee9bdf2982ff
6
+ metadata.gz: 3d9fad09f14ca8496a5392ba46ae2e1fdc46a1585717dae55704ae840f788ea530a8c1e0a8313a562de724ec05d41441dbb6d0012938824727fa0b4b0a7b14fe
7
+ data.tar.gz: aac5ab59bd4fb6ffde7043091cd9c99955e6822364ac4f6e18efbde343dbd17fa464be7aec701f98fa9efd51c765b3727e5b6e3325501bcc75674ef66b16e46c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mj (0.4.2)
4
+ mj (0.5.2)
5
5
  thor (~> 1.2.1)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -25,9 +25,76 @@ Or install it yourself as:
25
25
  ## Usage
26
26
 
27
27
  ```bash
28
- mj --help
28
+ mj help
29
29
  ```
30
30
 
31
+ ### Alternative file
32
+
33
+ Examples:
34
+
35
+ ```
36
+ $ mj alternative_file list app/components/attribute_component.rb
37
+ app/components/attribute_component.html.erb
38
+ app/components/attribute_component.rb
39
+ lib/components/attribute_component.rb
40
+ spec/components/attribute_component_spec.rb
41
+ test/components/attribute_component_test.rb
42
+
43
+ $ mj alternative_file list app/components/attribute_component.rb --exists
44
+ app/components/attribute_component.html.erb
45
+ app/components/attribute_component.rb
46
+ spec/components/attribute_component_spec.rb
47
+
48
+ $ mj alternative_file list app/components/attribute_component.rb --types=spec
49
+ spec/components/attribute_component_spec.rb
50
+
51
+ $ mj alternative_file next app/components/attribute_component.rb
52
+ lib/components/attribute_component.rb
53
+
54
+ $ mj alternative_file prev app/components/attribute_component.rb
55
+ app/components/attribute_component.html.erb
56
+ ```
57
+
58
+ Why? Because you can integrate that command with your IDE/Text Editor. For instance, here's my [neovim integration](https://github.com/mjacobus/dotfiles/blob/d8ceda659dc9b587ab22b05fc15eac2fa5b477d7/neovim/.config/nvim/init.lua#L31-L63):
59
+
60
+ ```lua
61
+ vimp.nnoremap('<leader>ak', function()
62
+ open_mj_alternative_file('next', '--exists')
63
+ end)
64
+
65
+ vimp.nnoremap('<leader>aj', function()
66
+ open_mj_alternative_file('prev', '--exists')
67
+ end)
68
+
69
+ function open_mj_alternative_file(subcommand, options)
70
+ file_path = vim.fn.expand('%')
71
+ files = mj_alternative_file(file_path, subcommand, options)
72
+ files = vim.split(files, ' ')
73
+ file = files[1]
74
+
75
+
76
+ if file ~= '' then
77
+ vim.api.nvim_command('e ' .. file)
78
+ end
79
+ end
80
+
81
+ function mj_alternative_file(file, subcommand, options)
82
+ local cmd = 'mj alternative_file ' .. subcommand .. ' ' .. file .. ' ' .. options
83
+ return execute_command(cmd)
84
+ end
85
+
86
+ function execute_command(cmd)
87
+ print("cmd: " .. cmd)
88
+ local f = io.popen(cmd)
89
+ local s = f:read('*a')
90
+ f:close()
91
+ return s
92
+ end
93
+ ```
94
+
95
+ This way I can use `<leader>a{direction}`, where `k` is `next`, and `j` is `previous` alternative file.
96
+
97
+
31
98
  ## Development
32
99
 
33
100
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -19,6 +19,9 @@ 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)
23
+ add_candidate("spec/lib/#{ruby_file.class_path}_spec.rb", :spec, to: candidates)
24
+ add_candidate("test/lib/#{ruby_file.class_path}_test.rb", :minitest, to: candidates)
22
25
  end
23
26
  end
24
27
  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
@@ -62,7 +62,7 @@ module Mj
62
62
  private
63
63
 
64
64
  def print_candidates(candidates)
65
- $stdout.puts candidates.map { |i| i.to_s(debug: options[:debug]) }.join(" ")
65
+ $stdout.puts candidates.map { |i| i.to_s(debug: options[:debug]) }.join("\n")
66
66
  end
67
67
  end
68
68
  end
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.4.2"
4
+ VERSION = "0.5.2"
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.4.2
4
+ version: 0.5.2
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-14 00:00:00.000000000 Z
11
+ date: 2022-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor