Method: MethodSignatureMixin#initialize

Defined in:
lib/contract/integration.rb

#initialize(origin = nil, name = nil) ⇒ Object

:nodoc:



584
585
586
587
588
589
590
591
592
593
594
595
596
597
# File 'lib/contract/integration.rb', line 584

def initialize(origin = nil, name = nil) # :nodoc:
  @origin, @name = origin, name
  @signature = nil
  @has_signature = false
  signatures = origin.instance_variable_get(:@signatures)
  @signature = if signatures and signatures.include?(name) then
    @has_signature = true
    signatures[name].last[0, 2]
  elsif self.arity >= 0 then
    [[:any] * self.arity, {}]
  else
    [[:any] * ~self.arity, { :allow_trailing => true }]
  end
end