class Rubycritic::SourceControlSystem::Base

def self.create

def self.create
  supported_system = systems.detect(&:supported?)
  if supported_system
    supported_system.new
  else
    puts "Rubycritic requires a #{system_names} repository."
    Double.new
  end
end

def self.register_system

def self.register_system
  @@systems << self
end

def self.supported?

def self.supported?
  raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
end

def self.system_names

def self.system_names
  systems.join(", ")
end

def self.systems

def self.systems
  @@systems
end

def date_of_last_commit(path)

def date_of_last_commit(path)
  raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
end

def has_revision?

def has_revision?
  raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
end

def head_reference

def head_reference
  raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
end

def revisions_count(path)

def revisions_count(path)
  raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
end

def travel_to_head

def travel_to_head
  raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
end