Class: ScavengerHunt::Game

Inherits:
ApplicationRecord show all
Includes:
MetumAttr
Defined in:
lib/scavenger_hunt/app/models/scavenger_hunt/game.rb

Constant Summary collapse

ANSWER_METUM_NAME =
"Scavenger Hunt: Answer".freeze
CLUE_METUM_NAME =
"Scavenger Hunt: Clue".freeze
CLUE_POSITION_METUM_NAME =
"Scavenger Hunt: Clue Position".freeze
HINT_METUM_NAME =
"Scavenger Hunt: Hint".freeze
QUESTION_METUM_NAME =
"Scavenger Hunt: Question".freeze
ARCHIVE_ON_REPRESENTATION_CHANGE_META =
[
  ANSWER_METUM_NAME,
  CLUE_METUM_NAME,
  HINT_METUM_NAME,
  QUESTION_METUM_NAME
].freeze

Instance Method Summary collapse

Methods included from MetumAttr

#metum_attr

Methods inherited from ApplicationRecord

hook, position_scope

Instance Method Details

#elapsed_timeObject



51
52
53
# File 'lib/scavenger_hunt/app/models/scavenger_hunt/game.rb', line 51

def elapsed_time
  ScavengerHunt::Time.new((ended_at || Time.now) - (created_at || Time.now))
end

#finished?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/scavenger_hunt/app/models/scavenger_hunt/game.rb', line 47

def finished?
  clues.answered.count == clues.count
end

#penalty_timeObject



55
56
57
# File 'lib/scavenger_hunt/app/models/scavenger_hunt/game.rb', line 55

def penalty_time
  ScavengerHunt::Time.new(penalty_time_in_seconds)
end

#total_timeObject



59
60
61
# File 'lib/scavenger_hunt/app/models/scavenger_hunt/game.rb', line 59

def total_time
  elapsed_time + penalty_time
end