dice_controller.rb 910 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. class DiceController
  2. def self.roll(die)
  3. case die
  4. when Hash
  5. # If number of die isn't specified, set it to 1
  6. die[:number] = die[:number] || 1
  7. # Create array to save each roll
  8. results = []
  9. die[:number].times do
  10. results.push(rand(1 .. die[:sides]))
  11. end
  12. # Return results array
  13. die[:results] = results
  14. die
  15. when Array
  16. { sides: die, results: [die.sample] }
  17. end
  18. end
  19. def self.edit_die(die_array, die, array)
  20. if die_array.nil?
  21. # Create
  22. DieArray.create(name: die, sides: array)
  23. success_embed("Created #{die}: #{array.join(", ")}")
  24. elsif array.include?(/delete/i)
  25. # Destroy
  26. die_array.destroy
  27. success_embed("Deleted #{die}!")
  28. else
  29. # Update
  30. die_array.update(sides: array)
  31. die_array.reload
  32. success_embed("Updated #{die}: #{array.join(", ")}")
  33. end
  34. end
  35. end