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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6583a62465b44fe817143c7e85884ca62a6bc4f4e63a9ccaf03afcf155fc4827
4
- data.tar.gz: 6d3f10bd9c19408ced1f2abb805706a4d541bbe04c460a6873cd3a966856dc28
3
+ metadata.gz: 2f89c9ac3a6637941f847045e1193a19016d649672b78fbe68d1a20bf28956eb
4
+ data.tar.gz: 3e99ba262697cc27a4c425cd4ee7d827072387d3ea2b66e202e478806aba412b
5
5
  SHA512:
6
- metadata.gz: c55c82e2b4fb3109bfdaf26a01732c6ab8dc29a0cfc38e70ba523d21f3ee329af1350ae76f96d4985857075d73934be02549b8277dacf28a9a4f02e3544037a3
7
- data.tar.gz: 8f9e60a82573651ebdbac9c91caed0879763850b7412fee7503f667211a49952e8a4cbb7ee84cafa6372a0f7c3cd42a46b062ebc73dda89dae9876a6884dc4e2
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
@@ -1,5 +1,5 @@
1
1
  module SpreeDevTools
2
- VERSION = '0.4.1'
2
+ VERSION = '0.5.0'
3
3
 
4
4
  # Returns the version of the currently loaded SpreeDevTools as a
5
5
  # <tt>Gem::Version</tt>.
@@ -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.1
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