Class: Camille::Types::Tuple

Inherits:
BasicType show all
Defined in:
lib/camille/types/tuple.rb

Instance Attribute Summary collapse

Attributes inherited from BasicType

#fingerprint

Instance Method Summary collapse

Methods inherited from BasicType

&, #&, #[], [], check_params, directly_instantiable?, inherited, instance, |, #|

Constructor Details

#initialize(elements) ⇒ Tuple

Returns a new instance of Tuple.



6
7
8
9
# File 'lib/camille/types/tuple.rb', line 6

def initialize elements
  @elements = elements.map{|e| Camille::Type.instance e}
  @fingerprint = Digest::MD5.hexdigest "#{self.class.name}#{@elements.map(&:fingerprint)}"
end

Instance Attribute Details

#elementsObject (readonly)

Returns the value of attribute elements.



4
5
6
# File 'lib/camille/types/tuple.rb', line 4

def elements
  @elements
end

Instance Method Details

#check(value) ⇒ Object



11
12
13
# File 'lib/camille/types/tuple.rb', line 11

def check value
  check_with_method(value, :check)
end

#check_params(value) ⇒ Object



15
16
17
# File 'lib/camille/types/tuple.rb', line 15

def check_params value
  check_with_method(value, :check_params)
end

#literalObject



19
20
21
# File 'lib/camille/types/tuple.rb', line 19

def literal
  "[#{elements.map(&:literal).join(', ')}]"
end