mikehogan
(me@mikehogan.net)
1
Hi there,
If I have a module and class like this:
module VisitMemory
def mark_visited(method)
@methods_visited << method.my_declaration_signature
end
def already_visited?(method)
@methods_visited.include?(method.my_declaration_signature)
end
end
module Guff
module JavaSource
class Class
include VisitMemory
end
end
end
How can i ensure that all instances of Guff::JavaSource::Class is
going to have the instance variable @methods_visited ?
So that this will work:
Guff::JavaSource::Class.new.already_visited?(something)
Thanks very much,
Mike.
mikehogan
(me@mikehogan.net)
2
FWIW, this is the best I could do:
module VisitMemory
def mark_visited(method)
methods_visited << method.my_declaration_signature
end
def already_visited?(method)
methods_visited.include?(method.my_declaration_signature)
end
def methods_visited
@methods_visited ||= []
end
end
module Guff
module JavaSource
class Class
include VisitMemory
end
end
end
Robert_K1
(Robert K.)
3
Hi there,
If I have a module and class like this:
module VisitMemory
def mark_visited(method)
@methods_visited << method.my_declaration_signature
end
def already_visited?(method)
@methods_visited.include?(method.my_declaration_signature)
end
end
module Guff
module JavaSource
class Class
include VisitMemory
end
end
end
How can i ensure that all instances of Guff::JavaSource::Class is
going to have the instance variable @methods_visited ?
require 'set'
module VisitMemory
def mark_visited(method)
(@methods_visited ||= Set.new) << method.my_declaration_signature
end
def already_visited?(method)
@methods_visited and
@methods_visited.include?(method.my_declaration_signature)
end
end
So that this will work:
Guff::JavaSource::Class.new.already_visited?(something)
Cheers
robert
···
2008/1/28, me@mikehogan.net <me@mikehogan.net>:
--
use.inject do |as, often| as.you_can - without end