spree_dev_tools 0.4.1 → 0.5.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/lib/ruby_lsp/spree_dev_tools/addon.rb +82 -0
- data/lib/spree_dev_tools/version.rb +1 -1
- data/spree_dev_tools.gemspec +1 -0
- metadata +16 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2f89c9ac3a6637941f847045e1193a19016d649672b78fbe68d1a20bf28956eb
|
|
4
|
+
data.tar.gz: 3e99ba262697cc27a4c425cd4ee7d827072387d3ea2b66e202e478806aba412b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fb3b4080b126a72791064d74a057d918436b332c20a73329a82dc8e4f69fe7b58e23bbfa3b136f7d696200cddee84fcc14290bafcae7cfc33e6138075b195f24
|
|
7
|
+
data.tar.gz: 41e5ccb2cbdef31b66c80c649fefa4b2785577714570fa46282d6fda3b50327c34e10d5bd2449ac953cc00ad92a7f1c0ef2f275071214673ecfd3581d2044169
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "ruby_lsp/addon"
|
|
4
|
+
|
|
5
|
+
module RubyLsp
|
|
6
|
+
module SpreeDevTools
|
|
7
|
+
class Addon < ::RubyLsp::Addon
|
|
8
|
+
SPREE_GEMS = %w[
|
|
9
|
+
spree_core
|
|
10
|
+
spree_api
|
|
11
|
+
spree_admin
|
|
12
|
+
spree_storefront
|
|
13
|
+
spree_emails
|
|
14
|
+
].freeze
|
|
15
|
+
|
|
16
|
+
def activate(global_state, outgoing_queue)
|
|
17
|
+
@global_state = global_state
|
|
18
|
+
@outgoing_queue = outgoing_queue
|
|
19
|
+
@index = global_state.index
|
|
20
|
+
|
|
21
|
+
# Index Spree app directories in a background thread
|
|
22
|
+
Thread.new { index_spree_app_directories }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def deactivate; end
|
|
26
|
+
|
|
27
|
+
def name
|
|
28
|
+
"Ruby LSP Spree"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def version
|
|
32
|
+
::SpreeDevTools::VERSION
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
def log(message)
|
|
38
|
+
return unless @outgoing_queue
|
|
39
|
+
|
|
40
|
+
@outgoing_queue << RubyLsp::Notification.window_log_message(message)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def index_spree_app_directories
|
|
44
|
+
log("[Spree] Starting to index app/ directories from Spree gems...")
|
|
45
|
+
|
|
46
|
+
indexed_count = 0
|
|
47
|
+
|
|
48
|
+
SPREE_GEMS.each do |gem_name|
|
|
49
|
+
count = index_gem_app_directory(gem_name)
|
|
50
|
+
indexed_count += count if count
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
log("[Spree] Finished indexing #{indexed_count} files from Spree app/ directories")
|
|
54
|
+
rescue => e
|
|
55
|
+
log("[Spree] Error during indexing: #{e.message}")
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def index_gem_app_directory(gem_name)
|
|
59
|
+
spec = Gem::Specification.find_by_name(gem_name)
|
|
60
|
+
app_path = File.join(spec.full_gem_path, "app")
|
|
61
|
+
|
|
62
|
+
return 0 unless File.directory?(app_path)
|
|
63
|
+
|
|
64
|
+
files = Dir.glob(File.join(app_path, "**", "*.rb"))
|
|
65
|
+
log("[Spree] Indexing #{files.size} files from #{gem_name}/app/")
|
|
66
|
+
|
|
67
|
+
files.each do |file_path|
|
|
68
|
+
uri = URI::Generic.from_path(path: file_path)
|
|
69
|
+
@index.index_file(uri, collect_comments: true)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
files.size
|
|
73
|
+
rescue Gem::MissingSpecError
|
|
74
|
+
log("[Spree] Gem #{gem_name} not found, skipping")
|
|
75
|
+
0
|
|
76
|
+
rescue => e
|
|
77
|
+
log("[Spree] Error indexing #{gem_name}: #{e.message}")
|
|
78
|
+
0
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
data/spree_dev_tools.gemspec
CHANGED
|
@@ -41,6 +41,7 @@ Gem::Specification.new do |s|
|
|
|
41
41
|
s.add_dependency 'rspec_junit_formatter'
|
|
42
42
|
s.add_dependency 'rspec-rails'
|
|
43
43
|
s.add_dependency 'rspec-retry'
|
|
44
|
+
s.add_dependency 'ruby-lsp', '>= 0.23.0'
|
|
44
45
|
s.add_dependency 'selenium-webdriver', '>= 4.10'
|
|
45
46
|
s.add_dependency 'simplecov'
|
|
46
47
|
s.add_dependency 'spree', '>= 5.0'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spree_dev_tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Spark Solutions
|
|
@@ -289,6 +289,20 @@ dependencies:
|
|
|
289
289
|
- - ">="
|
|
290
290
|
- !ruby/object:Gem::Version
|
|
291
291
|
version: '0'
|
|
292
|
+
- !ruby/object:Gem::Dependency
|
|
293
|
+
name: ruby-lsp
|
|
294
|
+
requirement: !ruby/object:Gem::Requirement
|
|
295
|
+
requirements:
|
|
296
|
+
- - ">="
|
|
297
|
+
- !ruby/object:Gem::Version
|
|
298
|
+
version: 0.23.0
|
|
299
|
+
type: :runtime
|
|
300
|
+
prerelease: false
|
|
301
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
302
|
+
requirements:
|
|
303
|
+
- - ">="
|
|
304
|
+
- !ruby/object:Gem::Version
|
|
305
|
+
version: 0.23.0
|
|
292
306
|
- !ruby/object:Gem::Dependency
|
|
293
307
|
name: selenium-webdriver
|
|
294
308
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -371,6 +385,7 @@ files:
|
|
|
371
385
|
- Gemfile
|
|
372
386
|
- LICENSE
|
|
373
387
|
- README.md
|
|
388
|
+
- lib/ruby_lsp/spree_dev_tools/addon.rb
|
|
374
389
|
- lib/spree_dev_tools.rb
|
|
375
390
|
- lib/spree_dev_tools/engine.rb
|
|
376
391
|
- lib/spree_dev_tools/generators/install/install_generator.rb
|