Sha256: eb078cb285baaec8650852015eb29a44e74f9296e03bd8a8e8064b9da1706052

Contents?: true

Size: 642 Bytes

Versions: 4

Compression:

Stored size: 642 Bytes

Contents

# frozen_string_literal: true

require_relative '../core/goal'
require_relative '../core/relation'

module MiniKraken
  module Rela
    # A specialization of a relation that accepts only goal(s)
    # as its arguments.
    class GoalRelation < Core::Relation
      protected

      # Validate that actuals
      def validated_args(actuals)
        actuals.each do |arg|
          unless arg.kind_of?(Core::Goal)
            prefix = "#{name} expects goal as argument, found a "
            raise StandardError, prefix + "'#{arg.class}': #{arg}"
          end
        end

        actuals
      end
    end # class
  end # module
end # module

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mini_kraken-0.3.03 lib/mini_kraken/rela/goal_relation.rb
mini_kraken-0.3.02 lib/mini_kraken/rela/goal_relation.rb
mini_kraken-0.3.01 lib/mini_kraken/rela/goal_relation.rb
mini_kraken-0.3.00 lib/mini_kraken/rela/goal_relation.rb