Wenn ich eine OpenStruct:catch-all getter-Methode auf openstruct?
require 'ostruct'
open_struct = OpenStruct.new
Ich kann []
überschreiben, die in einigen Fällen funktioniert
open_struct.define_singleton_method(:[]) do |*args|
puts args.map(&:class)
puts args
end
open_struct.a = 1
open_struct[:a]
# => Symbol
# a
Aber diese []
Methode wird nicht aufgerufen, wenn der Punkt-Methode Syntax:
open_struct.a
# => 1
Ich versuche, eine Klasse zu machen, die von OpenStruct erbt und mehr wie ein Javascript-Objekt funktioniert (im Grunde bin ich t rocknung die Notwendigkeit zu entfernen call
auf einem proc auszuführen, die als Wert)