repl_type_completor 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 201cdeb4768937fdb0d5639e6547ec9d6bcf57ac10ea7eb031059b41dea1ac00
4
- data.tar.gz: d4dcf563c39cfe91cbb6a74a155b384eaf61048c09e809b473830075be73df18
3
+ metadata.gz: 02b61fbd6e1a07730d36e2d557e481fc0093d0fc92b8db6ac587f88d28740758
4
+ data.tar.gz: ccbb7cc65c1c6b9e7a5dcb7183411142088d26eb3f4217b94e4593c3517ad18f
5
5
  SHA512:
6
- metadata.gz: 824b42a6ea9408e8be0f10605f25f8435593bf275d4d0e4d024e0c41ffa449212597f79e55a178bf55b70290a51b99baff426aa134eba3a597d3e251ac8f10c4
7
- data.tar.gz: 243b30a33e778cf36d9573af2a1c9deb862960d312a49476d9745d0f64031e30b1d632042545ab471b062a49f1ff056e5734f3eeaf69e9eb568304ceb2637636
6
+ metadata.gz: b6f760b64fd597e6604f299515d49e3f308e15f09ec4d968b4792ca36898a3d3d97faa33ccd8e896baa1ec9cc3d4869d01ffad63b8c5f72fa25680aab531418c
7
+ data.tar.gz: c555ca2648c4c1ca898e4aa7c1e74ab9c1aae56916acfe8cb8819fda4fe74ab03e90bbc50d804e08ac14995b44317c692c1faec5d104c2854ecda2d5e4e57b02
@@ -8,11 +8,14 @@ module ReplTypeCompletor
8
8
  target ||= ''
9
9
  paths = with_cache [:require_completions, dir] do
10
10
  gem_and_system_load_paths.flat_map do |load_path|
11
+ reject_prefixes = gem_and_system_load_paths.filter_map do |lp|
12
+ lp.delete_prefix(load_path).delete_prefix('/').delete_suffix('/') + '/' if lp.start_with? load_path
13
+ end.reject(&:empty?)
11
14
  base_dir = File.absolute_path(File.join(load_path, *dir))
12
15
  with_cache [:requireable_paths, base_dir] do
13
- requireable_paths(base_dir)
16
+ requireable_paths(base_dir, reject_prefixes: reject_prefixes)
14
17
  end
15
- end.sort
18
+ end.uniq.sort
16
19
  end
17
20
  paths.filter_map do |path|
18
21
  [*dir, path].join('/') if path.start_with?(target)
@@ -59,14 +62,16 @@ module ReplTypeCompletor
59
62
  end.sort
60
63
  end
61
64
 
62
- def requireable_paths(base_dir)
65
+ def requireable_paths(base_dir, reject_prefixes: [])
63
66
  ext = ".{rb,#{RbConfig::CONFIG['DLEXT']}}"
64
67
  ext_regexp = /\.(rb|#{RbConfig::CONFIG['DLEXT']})\z/
65
68
  files = Dir.glob(["*#{ext}", "*/*#{ext}"], base: base_dir).map { |p| p.sub(ext_regexp, '') }
66
69
  dirs = Dir.glob('*/*', base: base_dir).filter_map do |path|
67
70
  "#{path}/" if File.directory?(File.join(base_dir, path))
68
71
  end
69
- (files + dirs).sort
72
+ (files + dirs).sort.reject do |path|
73
+ reject_prefixes.any? { path.start_with?(_1) }
74
+ end
70
75
  rescue Errno::EPERM
71
76
  []
72
77
  end
@@ -162,7 +162,7 @@ module ReplTypeCompletor
162
162
  end
163
163
  def transform() = yield(self)
164
164
  def methods() = @module_or_class.methods
165
- def all_methods() = methods | Kernel.methods
165
+ def all_methods() = methods | @module_or_class.private_methods
166
166
  def constants() = @module_or_class.constants
167
167
  def types() = [self]
168
168
  def nillable?() = false
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReplTypeCompletor
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
@@ -79,7 +79,7 @@ module ReplTypeCompletor
79
79
  [call_node.name, target_node.content]
80
80
  end
81
81
  when Prism::SymbolNode
82
- return unless !target_node.closing || target_node.empty?
82
+ return unless !target_node.closing || target_node.closing.empty?
83
83
 
84
84
  name = target_node.value.to_s
85
85
  if parents.last.is_a? Prism::BlockArgumentNode # method(&:target)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: repl_type_completor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - tompng
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-17 00:00:00.000000000 Z
11
+ date: 2023-12-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prism