Sha256: aec8baf6d3cc5d8bd4b7e4e4ad40f135f72e277f115dd61015d000b668dc0f58
Contents?: true
Size: 832 Bytes
Versions: 2
Compression:
Stored size: 832 Bytes
Contents
# # Pervasives allows objects' method to be accessed in a pristine state, even # when some effort has been made to derride them # require 'pervasives' class OpenStruct instance_methods.each{|m| undef_method m unless m[%r/__/]} def initialize @table = {} end def method_missing m, *a, &b case m.to_s when %r/[=]$/ @table[m.to_s.delete('=')] = a.shift when %r/[?!]$/ !!@table[m.to_s.delete('?!')] else @table[m.to_s] end end def inspect @table.inspect end end os = OpenStruct.new os.object_id = 42 os.send = 42 os.instance_eval = 42 p os p os.object_id p Pervasives.object_id(os) p os.send p Pervasives.send(os, "key=", "value") p os.instance_eval p Pervasives.instance_eval(os){ @table }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pervasives-1.0.0 | samples/a.rb |
pervasives-0.0.1 | samples/a.rb |