Class Teeth::ScannerDefinitionGroup
In: lib/scanner_definition.rb
Parent: Array

Methods

Constants

DEFAULT_DEFINITIONS = {}

Public Instance methods

[Source]

# File lib/scanner_definition.rb, line 80
    def add(name, regex, options={})
      assert_defn_has_unique_name(name)
      push ScannerDefinition.new(name, regex, options)
    end

[Source]

# File lib/scanner_definition.rb, line 85
    def assert_defn_has_unique_name(name)
      if defn_names.include?(name.to_s)
        raise DuplicateDefinitionError, "a definition for #{name.to_s} has already been defined"
      end
    end

[Source]

# File lib/scanner_definition.rb, line 100
    def defaults_for(*default_types)
      default_types.each do |default_type|
        unless default_definitions = DEFAULT_DEFINITIONS[default_type]
          raise InvalidDefaultDefinitionName, "no default definitions found for #{default_type.to_s}"
        end
        default_definitions.each do |defn|
          begin
            add(defn.first, defn.last)
          rescue DuplicateDefinitionError
          end
        end
      end
    end

[Source]

# File lib/scanner_definition.rb, line 91
    def defn_names
      map { |defn_statement| defn_statement.name.to_s }
    end

[Source]

# File lib/scanner_definition.rb, line 95
    def method_missing(called_method_name, *args, &block)
      args[1] ||={}
      add(called_method_name, args[0], args[1])
    end

[Validate]