Sha256: 7b7ed2f01bc84ffac39f437919cd3e36061f1c06365ca49fa26a3edf3a8542cf

Contents?: true

Size: 758 Bytes

Versions: 1

Compression:

Stored size: 758 Bytes

Contents

require 'active_support'
require 'active_support/all'

class Sinclair
  require 'sinclair/options_parser'

  autoload :VERSION,          'sinclair/version'
  autoload :MethodDefinition, 'sinclair/method_definition'
  autoload :Matchers,         'sinclair/matchers'

  include OptionsParser

  attr_reader :clazz

  def initialize(clazz, options = {})
    @clazz = clazz
    @options = options
  end

  def build
    definitions.each do |definition|
      definition.build(clazz)
    end
  end

  def add_method(name, code = nil, &block)
    definitions << MethodDefinition.new(name, code, &block)
  end

  def eval_and_add_method(name, &block)
    add_method(name, instance_eval(&block))
  end

  private

  def definitions
    @definitions ||= []
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sinclair-1.1.0 lib/sinclair.rb