class Cucumber::FeatureFile

def initialize(uri, source=nil)

or a path:line1:line2 etc. If +source+ is passed, +uri+ is ignored.
The +uri+ argument is the location of the source. It can ba a path
def initialize(uri, source=nil)
  @source = source
  _, @path, @lines = *FILE_COLON_LINE_PATTERN.match(uri)
  if @path
    @lines = @lines.split(':').map { |line| line.to_i }
  else
    @path = uri
  end
end