module Contender::CopyOnWriteStructure::ClassMethods
Attributes
delegated_type[R]
Public Instance Methods
accessors(*args)
click to toggle source
# File lib/contender/copy_on_write_structure.rb, line 12 def accessors(*args) @accessors ||= Set.new args.each do |method| @accessors.add method def_delegator :current_reference, method end end
Also aliased as: accessor
accessors!()
click to toggle source
# File lib/contender/copy_on_write_structure.rb, line 22 def accessors! methods = Set.new(delegated_type.instance_methods(false)) methods = methods - @accessors if @accessors methods = methods - @mutators if @mutators methods.each do |method| def_delegator :current_reference, method end end
delegate_to(type)
click to toggle source
# File lib/contender/copy_on_write_structure.rb, line 52 def delegate_to(type) @delegated_type = type end
mutators(*args)
click to toggle source
# File lib/contender/copy_on_write_structure.rb, line 33 def mutators(*args) @mutators ||= Set.new args.each do |method| @mutators.add method class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1 def #{method}(*args, &block) update_reference do |current| current.#{method}(*args, &block) end end RUBY_EVAL end end
Also aliased as: mutator