Class: Sashite::Ggn::Ruleset
- Inherits:
-
Object
- Object
- Sashite::Ggn::Ruleset
- Defined in:
- lib/sashite/ggn/ruleset.rb,
lib/sashite/ggn/ruleset/source.rb,
lib/sashite/ggn/ruleset/source/destination.rb,
lib/sashite/ggn/ruleset/source/destination/engine.rb
Overview
Note:
Instances are created through parse, which handles validation. The constructor itself does not validate.
Immutable container for GGN movement rules
Defined Under Namespace
Classes: Source
Instance Method Summary collapse
-
#initialize(data) ⇒ Ruleset
constructor
Create a new Ruleset from GGN data structure.
-
#piece?(piece) ⇒ Boolean
Check if ruleset contains movement rules for specified piece.
-
#pieces ⇒ Array<String>
Return all piece identifiers in ruleset.
-
#select(piece) ⇒ Source
Select movement rules for a specific piece type.
Constructor Details
#initialize(data) ⇒ Ruleset
Note:
This constructor does not validate the data structure. Use Sashite::Ggn.parse or Sashite::Ggn.valid? for validation.
Create a new Ruleset from GGN data structure
24 25 26 27 28 |
# File 'lib/sashite/ggn/ruleset.rb', line 24 def initialize(data) @data = data freeze end |
Instance Method Details
#piece?(piece) ⇒ Boolean
Check if ruleset contains movement rules for specified piece
51 52 53 |
# File 'lib/sashite/ggn/ruleset.rb', line 51 def piece?(piece) @data.key?(piece) end |
#pieces ⇒ Array<String>
Return all piece identifiers in ruleset
61 62 63 |
# File 'lib/sashite/ggn/ruleset.rb', line 61 def pieces @data.keys end |