module Sashite::CGN::Square
Constants
- PATTERN
Public Class Methods
dump(io)
click to toggle source
# File lib/sashite/cgn/square.rb, line 36 def self.dump io raise ArgumentError unless dumpable? io Attacked.dump(io.fetch(:'...attacked?')) + '@' + Occupied.dump(io.fetch(:'...occupied!')) + '+' + Area.dump(io.fetch(:area)) end
dumpable?(io)
click to toggle source
# File lib/sashite/cgn/square.rb, line 28 def self.dumpable? io io.is_a?(Hash) && io.keys.sort == %i(...attacked? ...occupied! area) && Attacked.dumpable?(io.fetch(:'...attacked?')) && Occupied.dumpable?(io.fetch(:'...occupied!')) && Area.dumpable?(io.fetch(:'area')) end
load(io)
click to toggle source
# File lib/sashite/cgn/square.rb, line 14 def self.load io raise ArgumentError unless loadable? io attacked = Attacked.load io.split('@').fetch(0) occupied = Occupied.load io.split('@').fetch(1).split('+').fetch(0) area = Area.load io.split('+').fetch(1) { :"...attacked?" => attacked, :"...occupied!" => occupied, :"area" => area } end
loadable?(io)
click to toggle source
# File lib/sashite/cgn/square.rb, line 10 def self.loadable? io !!io.match("^#{PATTERN}$") end