Si j'ai un OpenStruct:méthode de get-all getter sur openstruct?
require 'ostruct'
open_struct = OpenStruct.new
Je peux remplacer []
qui fonctionne dans certains cas
open_struct.define_singleton_method(:[]) do |*args|
puts args.map(&:class)
puts args
end
open_struct.a = 1
open_struct[:a]
# => Symbol
# a
Mais cette méthode []
n'est pas appelée lorsque vous utilisez la syntaxe dot-méthode:
open_struct.a
# => 1
J'essaie de faire une classe qui hérite d'OpenStruct et qui fonctionne plutôt comme un objet Javascript (en gros je suis t rying pour éliminer la nécessité d'exécuter call
sur un proc qui est stocké en tant que valeur)