Module: ObjectExtender

Defined in:
lib/object_extender.rb,
lib/object_extender/version.rb

Defined Under Namespace

Classes: MultipleExtendedBlocks, MultipleExtendedClassBlocks

Constant Summary collapse

VERSION =
'1.0.0'

Instance Method Summary collapse

Instance Method Details

#extended(obj = nil, &block) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/object_extender.rb', line 36

def extended(obj = nil, &block)
  if obj.nil?
    fail MultipleExtendedBlocks if instance_variable_defined?(:@_extended_block)
    @_extended_block = block
  else
    if instance_variable_defined?(:@_extended_class_block)
      obj.singleton_class.class_eval(&@_extended_class_block)
    end
    if instance_variable_defined?(:@_extended_block)
      obj.instance_eval(&@_extended_block)
    end
  end
end

#extended_class(&block) ⇒ Object



50
51
52
53
# File 'lib/object_extender.rb', line 50

def extended_class(&block)
  fail MultipleExtendedClassBlocks if instance_variable_defined?(:@_extended_class_block)
  @_extended_class_block = block
end