Sha256: 8bb665779cb8efc153a6e92ae31d03bfd23e2e0e722e180c0de5e961044bd905

Contents?: true

Size: 638 Bytes

Versions: 22

Compression:

Stored size: 638 Bytes

Contents

require "contracts/engine/base"
require "contracts/engine/target"
require "contracts/engine/eigenclass"

require "forwardable"

module Contracts
  # Engine facade, normally you shouldn't refer internals of Engine
  # module directly.
  module Engine
    class << self
      extend Forwardable

      # .apply(klass)      - enables contracts engine on klass
      # .applied?(klass)   - returns true if klass has contracts engine
      # .fetch_from(klass) - returns contracts engine for klass
      def_delegators :base_engine, :apply, :applied?, :fetch_from

      private

      def base_engine
        Base
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 6 rubygems

Version Path
contracts-0.10.1 lib/contracts/engine.rb
contracts-0.10 lib/contracts/engine.rb