Module: Suture

Defined in:
lib/suture.rb,
lib/suture/version.rb,
lib/suture/comparator.rb,
lib/suture/builds_plan.rb,
lib/suture/tests_patient.rb,
lib/suture/chooses_surgeon.rb,
lib/suture/performs_surgery.rb,
lib/suture/interprets_results.rb,
lib/suture/prescribes_test_plan.rb

Defined Under Namespace

Modules: Adapter, Error, Surgeon, Util, Value, Wrap Classes: BuildsPlan, ChoosesSurgeon, Comparator, InterpretsResults, PerformsSurgery, PrescribesTestPlan, TestsPatient

Constant Summary collapse

DEFAULT_OPTIONS =
{
  :database_path => "db/suture.sqlite3",
  :comparator => Comparator.new,
  :log_level => "INFO",
  :log_file => nil,
  :log_stdout => true
}
VERSION =
"0.3.1"

Class Method Summary collapse

Class Method Details

.config(config = {}) ⇒ Object



42
43
44
45
# File 'lib/suture.rb', line 42

def self.config(config = {})
  @config ||= DEFAULT_OPTIONS.dup
  @config.merge!(config)
end

.create(name, options) ⇒ Object



23
24
25
26
27
# File 'lib/suture.rb', line 23

def self.create(name, options)
  plan = BuildsPlan.new.build(name, options)
  surgeon = ChoosesSurgeon.new.choose(plan)
  PerformsSurgery.new.perform(plan, surgeon)
end

.delete(id, options = {}) ⇒ Object



37
38
39
40
# File 'lib/suture.rb', line 37

def self.delete(id, options = {})
  plan = BuildsPlan.new.build(name, options)
  Suture::Adapter::Dictaphone.new(plan).delete(id)
end

.reset!Object



47
48
49
50
# File 'lib/suture.rb', line 47

def self.reset!
  @config = nil
  Adapter::Log.reset!
end

.verify(name, options) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/suture.rb', line 29

def self.verify(name, options)
  test_plan = Suture::PrescribesTestPlan.new.prescribe(name, options)
  test_results = Suture::TestsPatient.new.test(test_plan)
  if test_results.failed?
    Suture::InterpretsResults.new.interpret(test_plan, test_results)
  end
end