Class: LineReader

Inherits:
Object
  • Object
show all
Defined in:
lib/worlddb/readers/line_reader.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger = nil, path) ⇒ LineReader

Returns a new instance of LineReader.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/worlddb/readers/line_reader.rb', line 5

def initialize( logger=nil, path )
  if logger.nil?
    @logger = Logger.new(STDOUT)
    @logger.level = Logger::INFO
  else
    @logger = logger
  end
  
  @path = path

  ## nb: assume/enfore utf-8 encoding (with or without BOM - byte order mark)
  ## - see worlddb/utils.rb
  @data = File.read_utf8( @path )
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



20
21
22
# File 'lib/worlddb/readers/line_reader.rb', line 20

def logger
  @logger
end

Instance Method Details

#each_lineObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/worlddb/readers/line_reader.rb', line 23

def each_line
  @data.each_line do |line|

    if line =~ /^\s*#/
      # skip komments and do NOT copy to result (keep comments secret!)
      logger.debug 'skipping comment line'
      next
    end
      
    if line =~ /^\s*$/ 
      # kommentar oder leerzeile überspringen 
      logger.debug 'skipping blank line'
      next
    end

    # remove leading and trailing whitespace
    line = line.strip
 
    yield( line )
  end # each lines
end