katakata_irb 0.1.6 → 0.1.7

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: 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