Module: Ame::Types

Defined in:
lib/ame/types.rb

Defined Under Namespace

Modules: Boolean, Integer, String Classes: Array

Class Method Summary collapse

Class Method Details

.[](class_or_value) ⇒ Object

Raises:

  • (ArgumentError)


11
12
13
14
15
16
# File 'lib/ame/types.rb', line 11

def [](class_or_value)
  type = types[class_or_value] and return type
  pair = types.find{ |c, t| class_or_value.is_a? c } and return pair.last
  class_or_value.respond_to? :parse and return class_or_value
  raise ArgumentError, 'unknown type: %p' % class_or_value
end

.register(type, *classes) ⇒ Object



5
6
7
8
9
# File 'lib/ame/types.rb', line 5

def register(type, *classes)
  classes.each do |c|
    types[c] = type
  end
end