class Pronto::Runner

def self.runners

def self.runners
  repository
end

def self.title

def self.title
  @runner_name ||= begin
    source_path, _line = instance_method(:run).source_location
    file_name, _extension = File.basename(source_path).split('.')
    file_name
  end
end

def initialize(patches, commit = nil)

def initialize(patches, commit = nil)
  @patches = patches
  @commit = commit
  @config = Config.new
end

def rake_file?(path)

def rake_file?(path)
  File.extname(path) == '.rake'
end

def rb_file?(path)

def rb_file?(path)
  File.extname(path) == '.rb'
end

def repo_path

def repo_path
  @patches.first.repo.path
end

def ruby_executable?(path)

def ruby_executable?(path)
  return false if File.directory?(path)
  line = File.open(path, &:readline)
  line =~ /#!.*ruby/
rescue ArgumentError, EOFError
  false
end

def ruby_file?(path)

def ruby_file?(path)
  rb_file?(path) || rake_file?(path) || ruby_executable?(path)
end

def ruby_patches

def ruby_patches
  return [] unless @patches
  @ruby_patches ||= @patches.select { |patch| patch.additions > 0 }
    .select { |patch| ruby_file?(patch.new_file_full_path) }
end