class Knocker::Parser

Public Class Methods

new(config) click to toggle source
# File lib/knocker/parser.rb, line 3
def initialize(config)
  @config = config.lines.reject { |line|
    line.start_with? "#"
  }.join("")
end

Public Instance Methods

find(name) click to toggle source
# File lib/knocker/parser.rb, line 9
def find(name)
  has_pattern! name
  Pattern.new name, extract(name)
end

Private Instance Methods

extract(name) click to toggle source
# File lib/knocker/parser.rb, line 21
def extract(name)
  start = @config.split("\n").index("pattern #{name}")
  start+= 1
  
  @config.split("\n")[start..-1].collect { |line|
    break if line.empty?
    line
  }.join("\n")
end
has_pattern!(name) click to toggle source
# File lib/knocker/parser.rb, line 16
def has_pattern!(name)
  raise Knocker::Errors::PatternNotFound unless 
    @config.include? "pattern #{name}"
end