katakata_irb 0.1.6 → 0.1.7

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: df817c7e7806e6ea21aa82e14a694130b0db5dd68c74ea84790b90ad3b895fb7
4
- data.tar.gz: 9faa1d72b27f35bccc5b4d2dcc5c9f50b4dd9946ba5d63374d3083e933e62c38
3
+ metadata.gz: d50fd34032f33c722cce1adc7118a354b2fdc31736f6d00d9557b9b72b361b65
4
+ data.tar.gz: b874b7a2b3f65a91eebd447df6df55ae931d8050418942fd07b453611d8ff509
5
5
  SHA512:
6
- metadata.gz: 9bec77d0fd1f9484278541e48a964c683ef2546b8a5b107e731d7979b634c4c8fb9ce2b68261603fc5f4ad8eb83cfb3018e11881a2ecd4096d268e7be0e97405
7
- data.tar.gz: b6520a88ad8644423f24e7c02e783bf1cb388b3a00d2c16151b97e08598f1fd80f55f8346562d00c9d2ec0e2b619d4f4db23eeba5834c39b9ebfc72ce765cbdb
6
+ metadata.gz: c1d44c271e5ef109670345b8c85022553ab7618ffa30e4f979743912b30677fd8e9925d0b36c933d79f8aa0e7dc2be298e06db6f0a56cff442acb59b22ebc383
7
+ data.tar.gz: e64e94002296f792a6bdd9b5637f0bf065c4366de653eb15161b3bc9c7aca1598e880344f393106c0ce0e92497cd2d13ee1f604619b70ebe986090a8fa1e74a2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- katakata_irb (0.1.6)
4
+ katakata_irb (0.1.7)
5
5
  irb (>= 1.4.0)
6
6
  rbs
7
7
 
@@ -9,12 +9,12 @@ GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
11
  io-console (0.6.0)
12
- irb (1.6.2)
12
+ irb (1.6.4)
13
13
  reline (>= 0.3.0)
14
- minitest (5.16.3)
14
+ minitest (5.18.0)
15
15
  rake (13.0.6)
16
- rbs (2.7.0)
17
- reline (0.3.2)
16
+ rbs (3.1.0)
17
+ reline (0.3.3)
18
18
  io-console (~> 0.5)
19
19
 
20
20
  PLATFORMS
data/README.md CHANGED
@@ -10,8 +10,10 @@ gem install katakata_irb
10
10
  ## Usage
11
11
 
12
12
  Just require katakata_irb or write it to your `.irbrc` file.
13
+
13
14
  ```ruby
14
- require 'katakata_irb'
15
+ # .irbrc
16
+ require 'katakata_irb' rescue nil
15
17
  ```
16
18
 
17
19
  ```
@@ -120,10 +120,9 @@ module KatakataIrb::Completor
120
120
  contents = types.filter_map do |type|
121
121
  case type
122
122
  when KatakataIrb::Types::InstanceType
123
- KatakataIrb::Types.class_name_of type.klass
124
- when KatakataIrb::Types::SingletonType
125
- module_name = KatakataIrb::Types.class_name_of type.module_or_class
126
- "#{module_name}.itself" if module_name
123
+ type.inspect_without_params
124
+ else
125
+ type.inspect
127
126
  end
128
127
  end.uniq
129
128
  return if contents.empty?
@@ -247,7 +246,7 @@ module KatakataIrb::Completor
247
246
  # `require 'target'`
248
247
  return [require_method.to_sym, name.rstrip]
249
248
  end
250
- if (target in [:@ident,]) && (expression in [:symbol,]) && (parents[-2] in [:args_add_block, Array => args, [:symbol_literal, ^expression]])
249
+ if (target in [:@ident,]) && (expression in [:symbol,]) && (parents[-2] in [:args_add_block, Array => _args, [:symbol_literal, ^expression]])
251
250
  # `method(&:target)`
252
251
  receiver_ref = [:var_ref, [:@ident, '_1', [0, 0]]]
253
252
  block_statements = [receiver_ref]
@@ -77,7 +77,12 @@ module KatakataIrb
77
77
  when :lvar
78
78
  @local_variables.include? name
79
79
  when :const
80
- @binding.eval("#{name};true") rescue false
80
+ begin
81
+ @binding.eval(name)
82
+ true
83
+ rescue
84
+ false
85
+ end
81
86
  when :gvar, :cvar, :ivar
82
87
  true
83
88
  when :internal
@@ -707,13 +707,12 @@ class KatakataIrb::TypeSimulator
707
707
 
708
708
  def evaluate_massign(sexp, values, scope)
709
709
  values = sized_splat values, :to_ary, sexp.size unless values.is_a? Array
710
-
711
710
  rest_index = sexp.find_index { _1 in [:rest_param, ]}
712
711
  if rest_index
713
712
  pre = rest_index ? sexp[0...rest_index] : sexp
714
713
  post = rest_index ? sexp[rest_index + 1..] : []
715
714
  sexp[rest_index] in [:rest_param, rest_field]
716
- rest_values = values[pre.size...-post.size] || []
715
+ rest_values = values[pre.size...values.size - post.size] || []
717
716
  rest_type = KatakataIrb::Types::InstanceType.new Array, Elem: KatakataIrb::Types::UnionType[*rest_values]
718
717
  pairs = pre.zip(values.first(pre.size)) + [[rest_field, rest_type]] + post.zip(values.last(post.size))
719
718
  else
@@ -12,7 +12,7 @@ module KatakataIrb::Types
12
12
  loader.add path: Pathname('sig')
13
13
  RBS::DefinitionBuilder.new env: RBS::Environment.from_loader(loader).resolve_type_names
14
14
  rescue => e
15
- puts "\nKatakataIRB failed to initialize RBS::DefinitionBuild\n#{e}"
15
+ puts "\r\nKatakataIRB failed to initialize RBS::DefinitionBuilder\r\n#{e}\r\n"
16
16
  Object.new
17
17
  end
18
18
 
@@ -196,16 +196,22 @@ module KatakataIrb::Types
196
196
  def nillable?() = (@klass == NilClass)
197
197
  def nonnillable() = self
198
198
  def inspect
199
- case klass
200
- when NilClass
199
+ if params.empty?
200
+ inspect_without_params
201
+ else
202
+ params_string = "[#{params.map { "#{_1}: #{_2.inspect}" }.join(', ')}]"
203
+ "#{inspect_without_params}#{params_string}"
204
+ end
205
+ end
206
+ def inspect_without_params
207
+ if klass == NilClass
201
208
  'nil'
202
- when TrueClass
209
+ elsif klass == TrueClass
203
210
  'true'
204
- when FalseClass
211
+ elsif klass == FalseClass
205
212
  'false'
206
213
  else
207
- params_string = "[#{params.map { "#{_1}: #{_2.inspect}" }.join(', ')}]" unless params.empty?
208
- "#{klass.name}#{params_string}"
214
+ klass.singleton_class? ? klass.superclass.to_s : klass.to_s
209
215
  end
210
216
  end
211
217
  end
@@ -327,18 +333,10 @@ module KatakataIrb::Types
327
333
  BOOLEAN
328
334
  when RBS::Types::Bases::Instance
329
335
  self_type.transform do |type|
330
- case type
331
- in SingletonClass
332
- InstanceType.new type.klass
333
- in InstanceType
334
- case type.klass
335
- in Class
336
- InstanceType.new Class
337
- in Module
338
- InstanceType.new Module
339
- else
340
- OBJECT
341
- end
336
+ if type.is_a?(SingletonType) && type.module_or_class.is_a?(Class)
337
+ InstanceType.new type.module_or_class
338
+ else
339
+ OBJECT
342
340
  end
343
341
  end
344
342
  when RBS::Types::Union
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KatakataIrb
4
- VERSION = "0.1.6"
4
+ VERSION = "0.1.7"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katakata_irb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - tompng
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-23 00:00:00.000000000 Z
11
+ date: 2023-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: irb