class Moguro::Processors::EnumerableProcessor

Attributes

enumerate_validator[R]

Public Class Methods

new(klass) click to toggle source
Calls superclass method
# File lib/moguro/processors/enumerable_processor.rb, line 8
def initialize(klass)
  @current_arg = nil
  @klass = klass
  @enumerate_validator = nil
  super()
end

Private Class Methods

generate_type_validator(ast, klass) click to toggle source
# File lib/moguro/processors/enumerable_processor.rb, line 35
def generate_type_validator(ast, klass)
  processor = EnumerableProcessor.new(klass)
  processor.process(ast)
  processor.enumerate_validator
end

Public Instance Methods

on_const(node) click to toggle source
Calls superclass method
# File lib/moguro/processors/enumerable_processor.rb, line 15
def on_const(node)
  symbol = node.children.last
  type = @klass.const_get(symbol)
  if @enumerate_validator.nil?
    @enumerate_validator ||= Moguro::Types::Enumerable.new(type)
  else
    validator = Moguro::Types.get_type_validator_from_const(type)
    @enumerate_validator.add_content_type(validator)
  end
  super node
end
on_send(node) click to toggle source
Calls superclass method
# File lib/moguro/processors/enumerable_processor.rb, line 27
def on_send(node)
  @base_type = false if node.children[1] == :[]
  super node
end