Sha256: fc3a44c2c1bc5ed0a971a26816a083133633c6a64baad2bfed0f0f806216b7e4

Contents?: true

Size: 554 Bytes

Versions: 3

Compression:

Stored size: 554 Bytes

Contents

module HostsFile
  class Parser
    include Enumerable

    def initialize(data)
      @data = data
    end

    def each(&block)
      file_lines.each do |line|
        host = parse_line(line)
        yield(host) if host
      end
    end

private

    def parse_line(line)
      unless line.start_with? "#"
        parts = line.split(" ")
        return nil unless parts.length > 1
        Host.new(parts[0], parts[1], parts[2..-1])
      else
        nil
      end
    end

    def file_lines
      @file_lines ||= @data.split("\n")
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
hosts_file-1.0.3 lib/hosts_file/parser.rb
hosts_file-0.0.2 lib/hosts_file/parser.rb
hosts_file-0.0.1 lib/hosts_file/parser.rb