class Cucumber::Core::Ast::Location

def self.of_caller

def self.of_caller
  file, raw_line = *caller[1].split(':')[0..1]
  new(file, raw_line.to_i)
end

def hash

def hash
  self.class.hash ^ to_s.hash
end

def initialize(filepath, raw_lines=WILDCARD)

def initialize(filepath, raw_lines=WILDCARD)
  filepath || raise(ArgumentError, "file is mandatory")
  super(FilePath.new(filepath), Lines.new(raw_lines))
end

def inspect

def inspect
  "<#{self.class}: #{to_s}>"
end

def match?(other)

def match?(other)
  other.same_as?(filepath) && other.include?(lines)
end

def on_line(new_line)

def on_line(new_line)
  Location.new(filepath.filename, new_line)
end

def to_s

def to_s
  [filepath.to_s, lines.to_s].reject { |v| v == WILDCARD.to_s }.join(":")
end

def to_str

def to_str
  to_s
end