module Sashite::CGN::Gameplay

Constants

PATTERN

Public Class Methods

dump(io) click to toggle source
# File lib/sashite/cgn/gameplay.rb, line 26
def self.dump io
  raise ArgumentError unless dumpable? io

  patterns = io.map {|a| Pattern.dump a }
  patterns.join('. ').concat('.')
end
dumpable?(io) click to toggle source
# File lib/sashite/cgn/gameplay.rb, line 20
def self.dumpable? io
  io.is_a?(Array) &&
  io.length == io.uniq.length &&
  io.all? {|p| Pattern.dumpable? p }
end
load(io) click to toggle source
# File lib/sashite/cgn/gameplay.rb, line 14
def self.load io
  raise ArgumentError unless loadable? io

  io[0..-2].split('. ').map { |s| Pattern.load s }
end
loadable?(io) click to toggle source
# File lib/sashite/cgn/gameplay.rb, line 8
def self.loadable? io
  io.match("^#{PATTERN}$") &&
  io.split('. ').sort.join('. ') == io &&
  io[0..-2].split('. ').uniq.join('. ').concat('.') == io
end