Class: BeesService
- Inherits:
-
Object
- Object
- BeesService
- Defined in:
- app/services/bees_service.rb
Overview
Handles logic of spelling bee
Class Method Summary collapse
-
.guess(word, sbwords = [], sbscore = 0) ⇒ Array<String>, ...
This method validates a guess.
-
.set_day_bee(date = Date.today) ⇒ nil
This method generates a random game.
-
.set_week_bee ⇒ nil
This method sets the upcoming 7 bee games.
Class Method Details
.guess(word, sbwords = [], sbscore = 0) ⇒ Array<String>, ...
Note:
This method updates session variables
This method validates a guess
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'app/services/bees_service.rb', line 39 def self.guess(word, sbwords = [], sbscore = 0) word = word.upcase = nil if sbwords.include?(word) = "You have already guessed that!" else = valid_word?(word) if == "valid" = "" sbwords << word sbscore += calculate_score(word) end end return sbwords, sbscore, end |
.set_day_bee(date = Date.today) ⇒ nil
This method generates a random game
19 20 21 22 23 24 25 26 27 28 |
# File 'app/services/bees_service.rb', line 19 def self.set_day_bee(date = Date.today) while Bee.find_by(play_date: date).nil? letters = ("A".."Z").to_a.shuffle[0, 7].join valid_words = WordsService.words(letters) if valid_words.length > 20 ranks = ranks(valid_words) Bee.create!(letters: letters, play_date: date, ranks: ranks) end end end |
.set_week_bee ⇒ nil
This method sets the upcoming 7 bee games
6 7 8 9 10 11 12 13 |
# File 'app/services/bees_service.rb', line 6 def self.set_week_bee tomorrow = Date.tomorrow bees = Bee.where(play_date: tomorrow...tomorrow + 7).order(:play_date) play_date = bees.any? ? bees.maximum(:play_date) : tomorrow (play_date..tomorrow + 6).each do |date| self.set_day_bee(date) end end |