Class: GamesDice::Parser
- Inherits:
-
Parslet::Parser
- Object
- Parslet::Parser
- GamesDice::Parser
- Defined in:
- lib/games_dice/parser.rb
Overview
Based on the parslet gem, this class defines the dice mini-language used by GamesDice.create
An instance of this class is a parser for the language. There are no user-definable instance variables.
Instance Method Summary collapse
-
#parse(dice_description) ⇒ Hash
Parses a string description in the dice mini-language, and returns data for feeding into GamesDice::Dice constructor.
Instance Method Details
#parse(dice_description) ⇒ Hash
Parses a string description in the dice mini-language, and returns data for feeding into GamesDice::Dice constructor.
74 75 76 77 78 79 80 |
# File 'lib/games_dice/parser.rb', line 74 def parse dice_description dice_description = dice_description.to_s.strip # Force first item to start '+' for simpler parse rules dice_description = '+' + dice_description unless dice_description =~ /\A[+-]/ dice_expressions = super( dice_description ) { :bunches => collect_bunches( dice_expressions ), :offset => collect_offset( dice_expressions ) } end |