Class: CTioga2::Data::Backends::TextBackend
- Includes:
- Dobjects
- Defined in:
- lib/ctioga2/data/backends/backends/text.rb
Instance Method Summary collapse
-
#expand_sets(spec) ⇒ Object
Expands specifications into few sets.
- #extend(mod) ⇒ Object
-
#initialize ⇒ TextBackend
constructor
A new instance of TextBackend.
Methods inherited from Backend
#dataset, describe, #description, #has_set?, list_backends, #set_param_from_string, #sets_available
Methods included from BackendDescriptionExtend
#base_description, #create_factory, #describe, #description, #factory_class, #factory_description, #factory_description_hash, #factory_description_list, #has_factory?, #inherit_parameters, #param, #param_accessor, #param_reader, #param_writer, #register_class, #set_description
Methods included from Log
context, counts, debug, error, fatal, #format_exception, #identify, info, init_logger, log_to, logger, set_level, #spawn, warn
Constructor Details
#initialize ⇒ TextBackend
Returns a new instance of TextBackend.
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/ctioga2/data/backends/backends/text.rb', line 87 def initialize @dummy = nil @current = nil # Current is the name of the last file used. Necessary for '' specs. @current_data = nil # The data of the last file used. @skip = 0 @included_modules = [NaN] # to make sure we give them to # Dvector.compute_formula @default_column_spec = "1:2" @separator = /\s+/ # We don't split data by default. @split = false @param_regex = nil @header_line_regex = /^\#\#\s*/ super() # Override Backend's cache - for now. @cache = {} # A cache file_name -> data @param_cache = {} # Same thing as cache, but for parameters @headers_cache = {} # Same thing as cache, but for header # lines. end |
Instance Method Details
#expand_sets(spec) ⇒ Object
Expands specifications into few sets. This function will separate the set into a file spec and a col spec. Within the col spec, the 2##6 keyword is used to expand to 2,3,4,5,6. 2## followed by a non-digit expands to 2,…,last column in the file. For now, the expansions stops on the first occurence found, and the second form doesn’t work yet. But soon…
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/ctioga2/data/backends/backends/text.rb', line 129 def (spec) if m = /(\d+)##(\D|$)/.match(spec) a = m[1].to_i trail = m[2] b = read_file(spec) b = (b.length - 1) ret = [] a.upto(b) do |i| ret << m.pre_match + i.to_s + trail + m.post_match end return ret else m = Dir::glob(spec) if m.size > 0 m.sort! return m else return super end end end |
#extend(mod) ⇒ Object
118 119 120 121 |
# File 'lib/ctioga2/data/backends/backends/text.rb', line 118 def extend(mod) super @included_modules << mod end |