strict_ivars 1.0.0.rc1 → 1.0.0.rc2

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: b910c7decefccc4495a320886042153d9178c12f76cda7ccb549c304be2b6725
4
- data.tar.gz: 8af1c060ed4ad3b1eef1b306c336a5bac415018f19bc73954e056bb47f9d86ce
3
+ metadata.gz: 90b5528983c6d543ba4627e4dd9dfc64d6baaed6e8ce22c52c7b466f0b7e2d1c
4
+ data.tar.gz: a6efa7d8319281a69623ee389e1df6b2b8ce723ccd98b97416d5e1f15fc5182c
5
5
  SHA512:
6
- metadata.gz: 957162900af7f34fe4e111065f8af1886327a3a3ae5ebdc8de4529869b02d4d71b1d2b27fdbf21ac5aba316e150463d990bdb4c065658b7381d599c520026a9b
7
- data.tar.gz: 7748495c8e7a2e7cdddbd39b46bcb4e4d217db9b1f4f070fb810445f17b2fcd260356376ee5a7e936790410f83017dc0fdc232a69bdd1da8515204d39e8401ff
6
+ metadata.gz: a837cbaee1cb1a1171abb41cb291d4e90e243a244bd87933ae7f05f655299112256945e671c37c4eb1b58144295a236602b773d2f217db7756c7c5a9297d6a39
7
+ data.tar.gz: 6a1a5a7bf454c4d3d04f5220291ea17ce4c87d009fa737453acffe029153767ba719fb2cb123874169e33cb24229313a3524b79b6957b20f9674ce318c2cc25f
@@ -34,6 +34,12 @@ class StrictIvars::BaseProcessor < Prism::Visitor
34
34
  if EVAL_METHODS.include?(name) && (arguments = node.arguments)
35
35
  location = arguments.location
36
36
 
37
+ closing = if arguments.contains_forwarding?
38
+ ")), &(::StrictIvars.__eval_block_from_forwarding__(...))"
39
+ else
40
+ "))"
41
+ end
42
+
37
43
  if node.receiver
38
44
  receiver_local = "__eval_receiver_#{SecureRandom.hex(8)}__"
39
45
  receiver_location = node.receiver.location
@@ -42,12 +48,12 @@ class StrictIvars::BaseProcessor < Prism::Visitor
42
48
  [receiver_location.start_character_offset, "(#{receiver_local} = "],
43
49
  [receiver_location.end_character_offset, ")"],
44
50
  [location.start_character_offset, "*(::StrictIvars.__process_eval_args__(#{receiver_local}, :#{name}, "],
45
- [location.end_character_offset, "))"]
51
+ [location.end_character_offset, closing]
46
52
  )
47
53
  else
48
54
  @annotations.push(
49
55
  [location.start_character_offset, "*(::StrictIvars.__process_eval_args__(self, :#{name}, "],
50
- [location.end_character_offset, "))"]
56
+ [location.end_character_offset, closing]
51
57
  )
52
58
  end
53
59
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StrictIvars
4
- VERSION = "1.0.0.rc1"
4
+ VERSION = "1.0.0.rc2"
5
5
  end
data/lib/strict_ivars.rb CHANGED
@@ -82,4 +82,8 @@ module StrictIvars
82
82
 
83
83
  args
84
84
  end
85
+
86
+ def self.__eval_block_from_forwarding__(*, &block)
87
+ block
88
+ end
85
89
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strict_ivars
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc1
4
+ version: 1.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Drapper