Sha256: 3cdb0030b0fac60f0e9f0ed1e3a8552b9a51b3e191f8e540b61d4f355354227f

Contents?: true

Size: 960 Bytes

Versions: 6

Compression:

Stored size: 960 Bytes

Contents

require 'spectus/expectation_target'

module Fix
  # Wraps the target of an expectation.
  #
  # @api private
  #
  class It < Spectus::ExpectationTarget
    # Create a new expection target
    #
    # @param subject    [BasicObject] The front object.
    # @param challenges [Array]       The list of challenges.
    # @param helpers    [Hash]        The list of helpers.
    def initialize(subject, challenges, helpers)
      @subject    = subject
      @challenges = challenges
      @helpers    = helpers
    end

    # @!attribute [r] helpers
    #
    # @return [Hash] The list of helpers.
    attr_reader :helpers

    private

    # Override Ruby's method_missing in order to provide `On#let` interface.
    #
    # @api private
    #
    # @since 0.11.0
    #
    # @raise [NoMethodError] If doesn't respond to the given method.
    def method_missing(name, *args, &block)
      helpers.key?(name) ? helpers.fetch(name).call : super
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fix-0.15.2 lib/fix/it.rb
fix-0.15.1 lib/fix/it.rb
fix-0.15.0 lib/fix/it.rb
fix-0.14.1 lib/fix/it.rb
fix-0.14.0 lib/fix/it.rb
fix-0.13.0 lib/fix/it.rb