Module: Paramix::Parametric::Extensions

Defined in:
lib/paramix.rb

Instance Method Summary collapse

Instance Method Details

#[](parameters = {}) ⇒ Object



41
42
43
# File 'lib/paramix.rb', line 41

def [](parameters={})
  Mixin.new(self, parameters)
end

#append_features(base) ⇒ Object



55
56
57
58
59
60
61
62
63
64
# File 'lib/paramix.rb', line 55

def append_features(base)
  return super(base) if Mixin === base || Mixin === self

  base.extend(Extensions)

  anc = ancestors.find{ |a| a.respond_to?(:parameterized) }
  base.parameterized.concat(anc.parameterized)

  super(base)
end

#extend_object(base) ⇒ Object



67
68
69
70
71
72
73
74
75
76
# File 'lib/paramix.rb', line 67

def extend_object(base)
  return super(base) if Mixin === base || Mixin === self

  base.extend(Extensions)

  anc = ancestors.find{ |a| a.respond_to?(:parameterized) }
  base.parameterized.concat(anc.parameterized)

  super(base)
end

#parameterized(&code) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/paramix.rb', line 46

def parameterized(&code)
  @code ||= []
  if block_given?
    @code << code
  else
    @code
  end
end