Class: Recess::Inside::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/recess/inside.rb

Direct Known Subclasses

Game::Base, Game::Rules

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(instance, data_method = nil) ⇒ Base

Returns a new instance of Base.



103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/recess/inside.rb', line 103

def initialize(instance, data_method = nil)
  @instance = instance

  if data_method
    if data_method.is_a? Array
      @data_args = data_method
    else
      @data_args = [data_method]
    end
  else
    @data_args = nil
  end
end

Class Method Details

.alias_parent_instance(super_meth, meth) ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/recess/inside.rb', line 90

def self.alias_parent_instance super_meth, meth
  parent_instance_methods << meth.to_s
  the_alias = "#{meth}_before_recess"
  parent_aliased_instance_methods[meth.to_s] = the_alias
  define_method super_meth do |*args|
    if parent_data.respond_to?(the_alias)
      parent_data.send(the_alias, *args)
    else
      parent_data.send(meth, *args)
    end
  end
end

.all_parent_instance_methodsObject



71
72
73
# File 'lib/recess/inside.rb', line 71

def self.all_parent_instance_methods
  (parent_instance_methods + parent_aliased_instance_methods.keys).collect(&:to_s).uniq
end

.parent_aliased_instance_methodsObject



79
80
81
# File 'lib/recess/inside.rb', line 79

def self.parent_aliased_instance_methods
  @parent_aliased_instance_methods ||= {}
end

.parent_instance(meth) ⇒ Object



83
84
85
86
87
88
# File 'lib/recess/inside.rb', line 83

def self.parent_instance meth
  parent_instance_methods << meth.to_s
  define_method meth do |*args|
    parent_data.send(meth, *args)
  end
end

.parent_instance_methodsObject



75
76
77
# File 'lib/recess/inside.rb', line 75

def self.parent_instance_methods
  @parent_instance_methods ||= []
end