ruby-lsp-shoulda-context 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/Readme.md +6 -0
- data/lib/ruby_lsp/ruby-lsp-shoulda-context/addon.rb +6 -15
- data/lib/ruby_lsp/ruby-lsp-shoulda-context/code_lens.rb +20 -10
- data/lib/ruby_lsp/shoulda_context/version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 567715719f531b65148d1045d77587e2541367cff87d1725f637d89a3044d850
|
4
|
+
data.tar.gz: 6961db9e727610bb2290389de35892142e5f9d3c8828fa02f077d7de6f48176e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44194a81d42a9bdfa82ad4afca221d2449ad06bb9521b23cea37a8c832baa1ed11fe8ec7f46998b85f15644852c5d55b325a3c291f20d3535fc3692300bee581
|
7
|
+
data.tar.gz: 78b0f20fa728fadab0bb716dea23c6e91d0788f67c34f1b43bd72b45c2c1ed2b1b68820f47fdaf716b93e227ddd02f2c47635f365259246d12f24a2a07587700
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.2.2
|
data/Readme.md
CHANGED
@@ -19,6 +19,12 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
19
19
|
|
20
20
|
Just enjoy the magic of LSP with shoulda context tests!.
|
21
21
|
|
22
|
+
The extension can be enabled or disabled passing the `RUBY_LSP_SHOULDA_CONTEXT=[true|false]` enviroment variable. This enviroment variable is loaded automatially from in a `.env` file with priority
|
23
|
+
|
24
|
+
`.env > .env.development > .env.development.local`
|
25
|
+
|
26
|
+
If not set it defaults to `true`
|
27
|
+
|
22
28
|
## Development
|
23
29
|
|
24
30
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -9,13 +9,13 @@ require_relative "code_lens"
|
|
9
9
|
|
10
10
|
module RubyLsp
|
11
11
|
module ShouldaContext
|
12
|
-
# frozen_string_literal: true
|
13
|
-
|
14
12
|
class Addon < ::RubyLsp::Addon
|
15
13
|
extend T::Sig
|
16
14
|
|
17
|
-
sig { override.params(message_queue: Thread::Queue).void }
|
18
|
-
def activate(message_queue)
|
15
|
+
sig { override.params(global_state: GlobalState, message_queue: Thread::Queue).void }
|
16
|
+
def activate(global_state, message_queue)
|
17
|
+
@message_queue = message_queue
|
18
|
+
@global_state = global_state
|
19
19
|
Dotenv.load(".env.development.local", ".env.development")
|
20
20
|
end
|
21
21
|
|
@@ -27,17 +27,8 @@ module RubyLsp
|
|
27
27
|
"Ruby LSP My Gem"
|
28
28
|
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
override.params(
|
33
|
-
uri: URI::Generic,
|
34
|
-
emitter: Prism::Dispatcher,
|
35
|
-
).returns(T.nilable(Listener[T::Array[Interface::CodeLens]]))
|
36
|
-
end
|
37
|
-
def create_code_lens_listener(uri, emitter)
|
38
|
-
return unless uri.to_standardized_path&.end_with?("_test.rb") || uri.to_standardized_path&.end_with?("_spec.rb")
|
39
|
-
|
40
|
-
CodeLens.new(uri, emitter)
|
30
|
+
def create_code_lens_listener(response_builder, uri, dispatcher)
|
31
|
+
CodeLens.new(response_builder, uri, dispatcher, @global_state)
|
41
32
|
end
|
42
33
|
end
|
43
34
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
module RubyLsp
|
5
5
|
module ShouldaContext
|
6
|
-
class CodeLens
|
6
|
+
class CodeLens
|
7
7
|
extend T::Sig
|
8
8
|
extend T::Generic
|
9
9
|
|
@@ -27,11 +27,19 @@ module RubyLsp
|
|
27
27
|
sig { override.returns(ResponseType) }
|
28
28
|
attr_reader :_response
|
29
29
|
|
30
|
-
sig
|
31
|
-
|
30
|
+
sig do
|
31
|
+
params(
|
32
|
+
response_builder: RubyLsp::ResponseBuilders::CollectionResponseBuilder[Interface::CodeLens],
|
33
|
+
uri: URI::Generic,
|
34
|
+
dispatcher: Prism::Dispatcher,
|
35
|
+
global_state: RubyLsp::GlobalState,
|
36
|
+
).void
|
37
|
+
end
|
38
|
+
def initialize(response_builder, uri, dispatcher, global_state)
|
39
|
+
@response_builder = response_builder
|
40
|
+
@global_state = global_state
|
32
41
|
return if ENV["RUBY_LSP_SHOULDA_CONTEXT"] == "false"
|
33
42
|
|
34
|
-
@_response = T.let([], ResponseType)
|
35
43
|
# Listener is only initialized if uri.to_standardized_path is valid
|
36
44
|
@path = T.let(T.must(uri.to_standardized_path), String)
|
37
45
|
@class_name = T.let("", String)
|
@@ -41,8 +49,6 @@ module RubyLsp
|
|
41
49
|
dispatcher.register(self, :on_call_node_enter, :on_call_node_leave, :on_class_node_enter, :on_class_node_leave)
|
42
50
|
|
43
51
|
@base_command = BASE_COMMAND
|
44
|
-
|
45
|
-
super(dispatcher)
|
46
52
|
end
|
47
53
|
|
48
54
|
sig { params(node: Prism::CallNode).void }
|
@@ -148,7 +154,7 @@ module RubyLsp
|
|
148
154
|
|
149
155
|
sig { params(node: Prism::Node, name: String, kind: Symbol).void }
|
150
156
|
def add_test_code_lens(node, name:, kind:)
|
151
|
-
return unless
|
157
|
+
return unless are_required_libraries_installed?
|
152
158
|
|
153
159
|
if kind == :class
|
154
160
|
pattern = "#{@class_name}Test"
|
@@ -173,7 +179,7 @@ module RubyLsp
|
|
173
179
|
},
|
174
180
|
]
|
175
181
|
|
176
|
-
@
|
182
|
+
@response_builder << create_code_lens(
|
177
183
|
node,
|
178
184
|
title: "Run",
|
179
185
|
command_name: "rubyLsp.runTest",
|
@@ -181,7 +187,7 @@ module RubyLsp
|
|
181
187
|
data: { type: "test", **grouping_data },
|
182
188
|
)
|
183
189
|
|
184
|
-
@
|
190
|
+
@response_builder << create_code_lens(
|
185
191
|
node,
|
186
192
|
title: "Run In Terminal",
|
187
193
|
command_name: "rubyLsp.runTestInTerminal",
|
@@ -189,7 +195,7 @@ module RubyLsp
|
|
189
195
|
data: { type: "test_in_terminal", **grouping_data },
|
190
196
|
)
|
191
197
|
|
192
|
-
@
|
198
|
+
@response_builder << create_code_lens(
|
193
199
|
node,
|
194
200
|
title: "Debug",
|
195
201
|
command_name: "rubyLsp.debugTest",
|
@@ -197,6 +203,10 @@ module RubyLsp
|
|
197
203
|
data: { type: "debug", **grouping_data },
|
198
204
|
)
|
199
205
|
end
|
206
|
+
|
207
|
+
def are_required_libraries_installed?
|
208
|
+
Bundler.locked_gems.dependencies.keys.include?(REQUIRED_LIBRARY)
|
209
|
+
end
|
200
210
|
end
|
201
211
|
end
|
202
212
|
end
|
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-lsp-shoulda-context
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Domingo Edwards
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-lsp
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
20
|
-
- - "
|
19
|
+
version: 0.16.6
|
20
|
+
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.
|
22
|
+
version: 0.16.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "
|
27
|
+
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
30
|
-
- - "
|
29
|
+
version: 0.16.6
|
30
|
+
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.
|
32
|
+
version: 0.16.0
|
33
33
|
description: An addon for the Ruby LSP that enables shoulda-context testing
|
34
34
|
email:
|
35
35
|
- domingo.edwards@uc.cl
|
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: '0'
|
74
74
|
requirements: []
|
75
|
-
rubygems_version: 3.
|
75
|
+
rubygems_version: 3.4.10
|
76
76
|
signing_key:
|
77
77
|
specification_version: 4
|
78
78
|
summary: Ruby LSP shoulda-context
|