ruby-lsp-factory_bot 0.3.1 → 0.4.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c4ec9b8d3a45f3e55dce6c1de8a44e4e91c35b5a2d4ebb05fe43017a44f4e4d
|
4
|
+
data.tar.gz: 82ff80b589abd172eb92e97e7afe0ad518864c397dd74eff0318961f57f1247a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d6cb00fb7ef0aa59a48cd818ab406a864d6457d363c7bd6ccb16161dcd8d634e8c503161adf67a5e9464ed761456184996dfd265e11a0622c5dd87df7a7f548
|
7
|
+
data.tar.gz: 448f83767509d07f38ea4e2f3c11504bde4104b9175e20b2a52910e4e3c23e26f80d87a933ac9e7e9c7d22c63a0656198733570e9773d5ac980f010337de9b44
|
@@ -28,7 +28,6 @@ module RubyLsp
|
|
28
28
|
case call_node.name
|
29
29
|
when *FACTORY_BOT_STRATEGIES then factory_or_trait_location_for(call_node, node)
|
30
30
|
when :generate then sequence_location_for(node.value)
|
31
|
-
when :factory then target_class_location_for(node)
|
32
31
|
end
|
33
32
|
end
|
34
33
|
|
@@ -79,56 +78,6 @@ module RubyLsp
|
|
79
78
|
)
|
80
79
|
end
|
81
80
|
end
|
82
|
-
|
83
|
-
def target_class_location_for(node)
|
84
|
-
call_node = @node_context.call_node
|
85
|
-
return unless call_node&.message == "factory"
|
86
|
-
return unless inside_factory_bot_define?
|
87
|
-
|
88
|
-
class_name = resolve_target_class_name_for_factory(call_node, node)
|
89
|
-
|
90
|
-
@index[class_name]&.each do |entry|
|
91
|
-
@response_builder << Interface::LocationLink.new(
|
92
|
-
target_uri: URI::Generic.from_path(path: entry.file_path).to_s,
|
93
|
-
target_range: range_from_location(entry.location),
|
94
|
-
target_selection_range: range_from_location(entry.name_location)
|
95
|
-
)
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
def inside_factory_bot_define?
|
100
|
-
nesting_nodes = @node_context.instance_variable_get :@nesting_nodes
|
101
|
-
body_statements = nesting_nodes.find { |node| node.is_a?(Prism::ProgramNode) }&.statements&.body
|
102
|
-
|
103
|
-
factory_bot_define = body_statements.find do |statement_body|
|
104
|
-
statement_body.is_a?(Prism::CallNode) && statement_body.message == "define"
|
105
|
-
end
|
106
|
-
|
107
|
-
factory_bot_define.block&.body&.body&.any? do |node|
|
108
|
-
node.is_a?(Prism::CallNode) && node == @node_context.call_node
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
def resolve_target_class_name_for_factory(call_node, node)
|
113
|
-
kwargs_node = call_node&.arguments&.arguments&.find do |argument|
|
114
|
-
argument.type == :keyword_hash_node || argument.type == :hash_node
|
115
|
-
end
|
116
|
-
|
117
|
-
class_name_value = kwargs_node&.elements&.find do |element|
|
118
|
-
Utils.name_from_node(element.key) == "class_name"
|
119
|
-
end&.value
|
120
|
-
|
121
|
-
case class_name_value
|
122
|
-
when Prism::StringNode then return class_name_value.content
|
123
|
-
when Prism::SymbolNode then return class_name_value.value.to_s
|
124
|
-
when Prism::ConstantReadNode then return class_name_value.name.to_s
|
125
|
-
end
|
126
|
-
|
127
|
-
factory_name = Utils.name_from_node(node)
|
128
|
-
return unless factory_name
|
129
|
-
|
130
|
-
Utils.snake_to_camel(factory_name)
|
131
|
-
end
|
132
81
|
end
|
133
82
|
end
|
134
83
|
end
|
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
|
|
40
40
|
|
41
41
|
# Uncomment to register a new dependency of your gem
|
42
42
|
# spec.add_dependency "example-gem", "~> 1.0"
|
43
|
-
spec.add_dependency("ruby-lsp", ">= 0.
|
43
|
+
spec.add_dependency("ruby-lsp", ">= 0.24.0", "< 0.25.0")
|
44
44
|
|
45
45
|
# For more information and examples about making a new gem, check out our
|
46
46
|
# guide at: https://bundler.io/guides/creating_gem.html
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-lsp-factory_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- donny741
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-06-24 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: ruby-lsp
|
@@ -15,20 +15,20 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 0.
|
18
|
+
version: 0.24.0
|
19
19
|
- - "<"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.25.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 0.
|
28
|
+
version: 0.24.0
|
29
29
|
- - "<"
|
30
30
|
- !ruby/object:Gem::Version
|
31
|
-
version: 0.
|
31
|
+
version: 0.25.0
|
32
32
|
description: Provides go to definition and completion for FactoryBot attributes in
|
33
33
|
Ruby LSP
|
34
34
|
executables: []
|