Sha256: 3793033a05aedc8c9e43bf3fa093e56c15f20e1b12c982afea35f4f42ae48bec

Contents?: true

Size: 841 Bytes

Versions: 9

Compression:

Stored size: 841 Bytes

Contents

# frozen-string-literal: true

# 角落ちで "33角(22)" とすると下の player.board.fetch(v) でエラーになる
# なので move_hand があるときは同時に origin_soldier のチェックも必要になる
#
# しかし、このチェックをやりつづけるとバリデーションが爆発する
# ここだけではく Piece.fetch などでも例外は出るかもしれない
# 他の部分でひっかかるならそれは普通に例外を出させて
# abstract_adapter.rb の perform_validations で例外を捕まえる
# この方がシンプルで良い

module Bioshogi
  module InputAdapter
    concern :OriginSoldierMethods do
      def origin_soldier
        @origin_soldier ||= yield_self do
          if v = place_from
            player.board.fetch(v)
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
bioshogi-0.0.15 lib/bioshogi/input_adapter/origin_soldier_methods.rb
bioshogi-0.0.14 lib/bioshogi/input_adapter/origin_soldier_methods.rb
bioshogi-0.0.10 lib/bioshogi/input_adapter/origin_soldier_methods.rb
bioshogi-0.0.9 lib/bioshogi/input_adapter/origin_soldier_methods.rb
bioshogi-0.0.8 lib/bioshogi/input_adapter/origin_soldier_methods.rb
bioshogi-0.0.7 lib/bioshogi/input_adapter/origin_soldier_methods.rb
bioshogi-0.0.5 lib/bioshogi/input_adapter/origin_soldier_methods.rb
bioshogi-0.0.4 lib/bioshogi/input_adapter/origin_soldier_methods.rb
bioshogi-0.0.3 lib/bioshogi/input_adapter/origin_soldier_methods.rb