lib/hazard.rb in hazard-1.0.3 vs lib/hazard.rb in hazard-1.0.4
- old
+ new
@@ -5,36 +5,33 @@
def self.method_missing( method_name )
# Transform the method_name to string
method_name = method_name.to_s
- # If first character is 's'
- if method_name[0] == 's'
- method_name = method_name[1..-1]
- # Then we will return a splitted result
- splitted_result = true
- end
-
# Parse the method name to get how many dice and what size of dice was required
- dice_match = method_name.to_s.match( /(\d*)d(\d+)/ )
+ dice_match = method_name.to_s.match( /(d|r|m|s)?(\d*)d(\d+)/ )
# Raise an error if match fail
raise "Method mising : #{method_name}" unless dice_match
+ # Get the roll type
+ roll_type = dice_match[1]
+ splited_result = true if roll_type == 's'
+
# Get the dice amount
- dice_amount = dice_match[1].to_i
+ dice_amount = dice_match[2].to_i
# If no amount is given then the amount is 1
dice_amount = 1 if dice_amount == 0
# Get the type of dice
- dice_type = dice_match[2].to_i
+ dice_type = dice_match[3].to_i
# Rolls the dice
- rolls = (1..dice_amount).map{ Kernel.rand( 1..dice_type ) }
+ rolls = ( 1..dice_amount ).map{ Kernel.rand( 1..dice_type ) }
# Unless splitted_result was requested, return the sum of the rolled dice
- return rolls.reduce(:+) unless splitted_result
+ return rolls.reduce(:+) unless splited_result
# Return a RolledDice otherwise
- RolledDice.new(rolls )
+ RolledDice.new( rolls )
end
-end
\ No newline at end of file
+end