Class: Bio::FlatFile::AutoDetect::RuleTemplate

Inherits:
Object
  • Object
show all
Defined in:
lib/bio/io/flatfile/autodetection.rb

Overview

Template of a single rule of autodetection

Direct Known Subclasses

RuleDebug, RuleProc, RuleRegexp, RuleSpecial

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRuleTemplate

Creates a new element.


43
44
45
46
47
# File 'lib/bio/io/flatfile/autodetection.rb', line 43

def initialize
  @higher_priority_elements = RulesArray.new
  @lower_priority_elements  = RulesArray.new
  @name = nil
end

Instance Attribute Details

#dbclassesObject (readonly)

database classes


63
64
65
# File 'lib/bio/io/flatfile/autodetection.rb', line 63

def dbclasses
  @dbclasses
end

#higher_priority_elementsObject (readonly)

higher priority elements


58
59
60
# File 'lib/bio/io/flatfile/autodetection.rb', line 58

def higher_priority_elements
  @higher_priority_elements
end

#lower_priority_elementsObject (readonly)

lower priority elements


60
61
62
# File 'lib/bio/io/flatfile/autodetection.rb', line 60

def lower_priority_elements
  @lower_priority_elements
end

#nameObject

unique name of the element


66
67
68
# File 'lib/bio/io/flatfile/autodetection.rb', line 66

def name
  @name
end

Class Method Details

.[](*arg) ⇒ Object

Creates a new element.


38
39
40
# File 'lib/bio/io/flatfile/autodetection.rb', line 38

def self.[](*arg)
  self.new(*arg)
end

Instance Method Details

#guess(text, meta) ⇒ Object

If given text (and/or meta information) is known, returns the database class. Otherwise, returns nil or false.

text will be a String. meta will be a Hash. meta may contain following keys. :path => pathname, filename or uri.


76
77
78
# File 'lib/bio/io/flatfile/autodetection.rb', line 76

def guess(text, meta)
  nil
end

#is_prior_to(elem) ⇒ Object

self is prior to the elem.


50
51
52
53
54
55
# File 'lib/bio/io/flatfile/autodetection.rb', line 50

def is_prior_to(elem)
  return nil if self == elem
  elem.higher_priority_elements << self
  self.lower_priority_elements << elem
  true
end