Spectro

Specs driven social meta-programming

Gem Version Gitter Build Status Code Climate Test Coverage YARD Docs

Prototype

Spectro will fetch an algorithm to cover the given spec form its DB and will then define the #hello method using it.

require 'spectro'

class Sample

  include Spectro

  implements \
    hello: [:name]

end

__END__
sample = Sample.new

sample.hello 'Eddie' #=> 'Say Hello to Eddie'

Working with Mocks

Scenarios

  • Keep coding while waiting for an algorithm that covers your specs
  • Using Spectro just to mock stuff
require 'spectro'

class EmailValidator

  include Spectro

  implements \
    valid?: [:email]

end

__END__
require 'email_validator' #=> Spectro::Exception::UndefinedMethodDefinition
Spectro.configure do |config|
  config.enable_mocks!
end

require 'email_validator'

email_validator = EmailValidator.new

email_validator.valid?("[email protected]") #=> true 
email_validator.valid?("invalidATemail.com") #=> false 
email_validator.valid?("[email protected]") #=> raise Spectro::Exception::UnkwnonMockResponse