Sha256: 049599c03a418c15afda871e620e3f2c89604d4b43ab008ad2efaf57512d7b87

Contents?: true

Size: 669 Bytes

Versions: 16

Compression:

Stored size: 669 Bytes

Contents

# frozen_string_literal: true

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

16 entries across 16 versions & 5 rubygems

Version Path
entitlements-app-1.2.0 lib/contracts-ruby3/lib/contracts/engine.rb
contracts-0.17.2 lib/contracts/engine.rb
contracts-0.17.1 lib/contracts/engine.rb
entitlements-app-1.1.0 lib/contracts-ruby3/lib/contracts/engine.rb
entitlements-app-1.0.0 lib/contracts-ruby3/lib/contracts/engine.rb
entitlements-app-0.3.4 lib/contracts-ruby3/lib/contracts/engine.rb
entitlements-app-0.3.1 lib/contracts-ruby3/lib/contracts/engine.rb
honeybadger-5.4.0 vendor/bundle/ruby/3.2.0/gems/contracts-0.17/lib/contracts/engine.rb
honeybadger-5.3.0 vendor/bundle/ruby/3.2.0/gems/contracts-0.17/lib/contracts/engine.rb
entitlements-app-0.3.0 lib/contracts-ruby3/lib/contracts/engine.rb
entitlements-0.2.1 lib/contracts-ruby3/lib/contracts/engine.rb
entitlements-app-0.2.1 lib/contracts-ruby3/lib/contracts/engine.rb
entitlements-0.2.0 lib/contracts-ruby3/lib/contracts/engine.rb
entitlements-app-0.2.0 lib/contracts-ruby3/lib/contracts/engine.rb
phillipug-foodie-0.1.0 .vendor/ruby/3.0.0/gems/contracts-0.17/lib/contracts/engine.rb
contracts-0.17 lib/contracts/engine.rb