# gs-board Gobstones Board: A Polymer component that renders a board. ## install ``` npm install npm install -g grunt-cli bower install ``` ## run ``` # build and start live demo grunt # just build grunt dist ``` ## usage ### install ``` bower install --save gobstones/gs-board ``` ### one-file compiled version It is bundled every time `grunt` runs. See `test.html` for an example. ### import ```html <link rel="import" href="{BOWER_COMPONENTS}/gs-board/dist/components/gs-board.html"> ``` ### simple board (from GBB) ```html <gs-board> GBB/1.0 size 4 3 cell 1 2 Azul 0 Negro 0 Rojo 8 Verde 0 cell 3 2 Azul 2 Negro 0 Rojo 5 Verde 1 cell 2 1 Azul 0 Negro 6 Rojo 0 Verde 0 head 1 2 </gs-board> ``` ### initial board (editable) ```html <gs-board size='{ "x": 4, "y": 4 }' options='{ "editable": true }'></gs-board> ``` ### final board (fixed) ```html <template is="dom-if" if="{{finalState}}" restamp="true"> <gs-board table='{{finalState.table}}' header="{{finalState.header}}"></gs-board> </template> ``` ``` finalState.table = [[{}, { "red": 3 }], [{ "black": 1 }, {}]] ``` ### setting header position ```html <gs-board size='{ "x": 4, "y": 4 }' header='{ "x": 1, "y": 3 }'></gs-board> ``` ### with attire ```html <gs-board size='{ "x": 4, "y": 4 }' attire="{{attire}}"></gs-board> ``` #### Example of attire definition: ```json { "enabled": true, "rules": [ { "when": { "blue": "*", "black": "+", "red": 4, "green": "*" }, "image": "tnt.png" }, { "when": { "blue": 0, "black": 0, "red": 0, "green": 0 }, "image": "back.png" }, { "when": { "blue": 0, "black": 0, "red": 0, "green": 1 }, "image": "green.png" }, { "when": { "blue": 1, "black": 0, "red": 0, "green": 0 }, "image": "blue.png" }, { "when": { "blue": 0, "black": 1, "red": 0, "green": 0 }, "image": "black.png" }, { "when": { "blue": 0, "black": 0, "red": 1, "green": 0 }, "image": "red.png" } ] } ``` ## considerations - To update the board, don't mutate the properties directly. **You must use the `update(table, header)` method**. ## Gem wrapper This module can also be deployed a ruby gem. `gobstones-board` works with Ruby 2.3.1 ```bash cd gem rake wrapper:wrap bundle install bundle exec rspec ``` ## Tagging and releasing ```bash ./tag.sh ```