zed-test-toggle 0.0.2
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 +7 -0
- data/exe/zed-test-toggle +8 -0
- data/lib/zed-test-toggle.rb +1 -0
- data/lib/zed_test_toggle/cli/cli.rb +27 -0
- data/lib/zed_test_toggle/project.rb +57 -0
- data/lib/zed_test_toggle/source_file.rb +55 -0
- data/lib/zed_test_toggle/version.rb +5 -0
- data/lib/zed_test_toggle.rb +12 -0
- metadata +165 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f592d4259104fe7a805cd103aa2d8cb148fd2823e82c8a92007cf0e99a3e602a
|
4
|
+
data.tar.gz: 8f77898f639a06860b91a6296849d456cb4cefcb85f52fb3ebe779ed0f9a919f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 329a515ceacc368b9360e31cea48a0f05f44c825dbe2ebbd1be02497a41ae5bb812f9e0716984e6df06ab583c9dc55dcfac01c574f79b1d9c8a8b493e062a87c
|
7
|
+
data.tar.gz: 3922ce921b61856813b8795921926273fbd803bc6da5762823c6085b2f4fd0a1d7f246ab1cdc3881d3c0782eee8005a0653e6240fe42568fe79abdde0da5710d
|
data/exe/zed-test-toggle
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "zed_test_toggle"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "thor"
|
4
|
+
|
5
|
+
module ZedTestToggle
|
6
|
+
# CLI class for ontology translator
|
7
|
+
class CLI < Thor
|
8
|
+
def self.start(*)
|
9
|
+
super
|
10
|
+
rescue Thor::InvocationError, ArgumentError, Errno::ENOENT, IOError => exc
|
11
|
+
warn String(exc)
|
12
|
+
exit(1)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.exit_on_failure?
|
16
|
+
true
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "lookup", "Find the alternate file"
|
20
|
+
method_option :root, type: :string, aliases: "-r", desc: "Project root directory", default: Dir.pwd
|
21
|
+
method_option :path, type: :string, aliases: "-p", desc: "Path to file", default: ""
|
22
|
+
def lookup
|
23
|
+
alternate_file = SourceFile.new(options[:path], root: options[:root]).alternate_file
|
24
|
+
system("zed", alternate_file) unless alternate_file.nil?
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ZedTestToggle
|
4
|
+
class Project
|
5
|
+
attr_reader :root
|
6
|
+
|
7
|
+
def initialize(root)
|
8
|
+
@root = root.delete_suffix("/")
|
9
|
+
end
|
10
|
+
|
11
|
+
def src_paths
|
12
|
+
if gem?
|
13
|
+
["lib", ""]
|
14
|
+
else
|
15
|
+
["app", "lib"]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_paths
|
20
|
+
[test_anchor, File.join(test_anchor, "lib")]
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_anchor
|
24
|
+
spec? ? "spec" : "test"
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_regexes
|
28
|
+
if spec?
|
29
|
+
[/_spec\.rb$/]
|
30
|
+
else
|
31
|
+
[/_test\.rb$/, /test_[a-zA-Z0-9_]*\.rb$/]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def testify(path)
|
36
|
+
path.gsub(/\.rb$/, test_suffix)
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def test_suffix
|
42
|
+
spec? ? "_spec.rb" : "_test.rb"
|
43
|
+
end
|
44
|
+
|
45
|
+
def gem?
|
46
|
+
Dir.glob(File.join(root, "*.gemspec")).any?
|
47
|
+
end
|
48
|
+
|
49
|
+
def spec?
|
50
|
+
Dir.glob(spec_clues).any?
|
51
|
+
end
|
52
|
+
|
53
|
+
def spec_clues
|
54
|
+
[File.join(root, "spec", "spec_helper.rb"), File.join(root, ".rspec"), File.join(root, "**", "spec", "spec_helper.rb")]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ZedTestToggle
|
4
|
+
class SourceFile
|
5
|
+
extend Forwardable
|
6
|
+
|
7
|
+
def initialize(filename, root:)
|
8
|
+
@filename = filename
|
9
|
+
@project = Project.new(root)
|
10
|
+
end
|
11
|
+
|
12
|
+
def_delegators :@project, :src_paths, :test_paths, :root, :test_regexes, :testify
|
13
|
+
|
14
|
+
def alternate_file
|
15
|
+
test_file? ? find_alternate_src : find_alternate_test
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
attr_reader :filename, :project
|
21
|
+
|
22
|
+
def test_file?
|
23
|
+
test_regexes.any? do |regex|
|
24
|
+
filename.match?(regex)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def find_alternate_src
|
29
|
+
src_paths.each do |path|
|
30
|
+
test_paths.each do |test_path|
|
31
|
+
test_regexes.each do |regex|
|
32
|
+
target = File.join(root, filename.sub(test_path, path).gsub(regex, ".rb"))
|
33
|
+
next unless File.exist?(target)
|
34
|
+
|
35
|
+
return target
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
nil
|
40
|
+
end
|
41
|
+
|
42
|
+
def find_alternate_test
|
43
|
+
test_paths.each do |path|
|
44
|
+
src_paths.each do |src_path|
|
45
|
+
next if src_path == ""
|
46
|
+
target = File.join(root, testify(filename.gsub(src_path, path)))
|
47
|
+
next unless File.exist?(target)
|
48
|
+
|
49
|
+
return target
|
50
|
+
end
|
51
|
+
end
|
52
|
+
nil
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "forwardable"
|
4
|
+
require "thor"
|
5
|
+
|
6
|
+
require_relative "zed_test_toggle/version"
|
7
|
+
require_relative "zed_test_toggle/cli/cli"
|
8
|
+
|
9
|
+
module ZedTestToggle
|
10
|
+
autoload :Project, "zed_test_toggle/project"
|
11
|
+
autoload :SourceFile, "zed_test_toggle/source_file"
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: zed-test-toggle
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Cédric Delalande
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-04-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.13'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.13'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: standard
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.49'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.49'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubocop-rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.5'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.5'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: debug
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.10'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.10'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.22'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.22'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: yard
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.9'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.9'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rake
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '13.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '13.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: thor
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.3'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.3'
|
125
|
+
description: A small gem to toggle between source and test in the Zed editor
|
126
|
+
email:
|
127
|
+
- cedric
|
128
|
+
executables:
|
129
|
+
- zed-test-toggle
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files: []
|
132
|
+
files:
|
133
|
+
- exe/zed-test-toggle
|
134
|
+
- lib/zed-test-toggle.rb
|
135
|
+
- lib/zed_test_toggle.rb
|
136
|
+
- lib/zed_test_toggle/cli/cli.rb
|
137
|
+
- lib/zed_test_toggle/project.rb
|
138
|
+
- lib/zed_test_toggle/source_file.rb
|
139
|
+
- lib/zed_test_toggle/version.rb
|
140
|
+
homepage: https://github.com/MoskitoHero/zed-test-toggle
|
141
|
+
licenses: []
|
142
|
+
metadata: {}
|
143
|
+
post_install_message:
|
144
|
+
rdoc_options: []
|
145
|
+
require_paths:
|
146
|
+
- lib
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '3.0'
|
152
|
+
- - "<"
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '3.5'
|
155
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
requirements: []
|
161
|
+
rubygems_version: 3.3.27
|
162
|
+
signing_key:
|
163
|
+
specification_version: 4
|
164
|
+
summary: A small gem to toggle between source and test in the Zed editor
|
165
|
+
test_files: []
|