Exclude Proc#source Enclosure
bryanp opened this issue · comments
Hit a case where I need the Proc source without the enclosure. For example:
p = Proc.new do
puts 'proc'
end
p.source
currently gives me all three lines, but I really want:
puts 'proc'
There doesn't appear to be a way to do this. Possible to add?
It'll be quite hard. The way we currently do this is find the first line of the method, and then extract one complete expression from ruby. To get it without the begin end, it might be sufficient to drop the last end
, and delete everything up to the first do
or {
; but there'll obviously be edge-cases.
Eh, that's what I was afraid of. I may work on a solution for easy cases. If so I'll be sure to send a PR along.
There's a crazy gem called sourcify which uses its own ragel scanner to do this accurately, you might get some mileague with that ;)
Tried sourcify before method_source. It failed anytime a string was defined with double quotes.
Simple is better, I think.