Sha256: d06ea6a3873aa06f7a8ba4e13a4a25146a41d87302a72a22d0588d85e4fb8463

Contents?: true

Size: 795 Bytes

Versions: 3

Compression:

Stored size: 795 Bytes

Contents

# frozen string literal: true

require 'dry-struct'
require 'game_validator/validator/validate_to_action'
require 'spy_alley_application/validator/move'

module SpyAlleyApplication
  module Models
    module Validator
      class Moving < Dry::Struct
        attribute :name, ::Types.Value('move')
        attribute :options, ::Types::ArrayOfStrictInteger.constrained(size: 2)
        attribute :wrap_result, ::Types::Callable

        def build(options={})
          @validate_to_action ||= GameValidator::Validator::ValidateToAction::new(
            validate: validate,
            wrap: wrap_result)
          @validate_to_action
        end

        private
        def validate
          SpyAlleyApplication::Validator::Move::new(options: options)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spy_alley_application-0.3.2 lib/spy_alley_application/models/validator/moving.rb
spy_alley_application-0.3.1 lib/spy_alley_application/models/validator/moving.rb
spy_alley_application-0.3.0 lib/spy_alley_application/models/validator/moving.rb