Class: Helena::Session
- Inherits:
-
Object
- Object
- Helena::Session
- Includes:
- Concerns::ApplicationModel
- Defined in:
- app/models/helena/session.rb
Class Method Summary collapse
Instance Method Summary collapse
- #answers_as_hash ⇒ Object
- #answers_as_yaml ⇒ Object
- #answers_as_yaml=(yaml) ⇒ Object
- #as_json(options) ⇒ Object
- #reset_tokens ⇒ Object
Class Method Details
.answer_codes ⇒ Object
49 50 51 52 53 54 55 |
# File 'app/models/helena/session.rb', line 49 def self.answer_codes answer_codes = [] all.each do |session| answer_codes += session.answers.map(&:code) - answer_codes end answer_codes end |
Instance Method Details
#answers_as_hash ⇒ Object
45 46 47 |
# File 'app/models/helena/session.rb', line 45 def answers_as_hash Hash[*answers.map { |answer| [answer[:code], answer[:value]] }.flatten] end |
#answers_as_yaml ⇒ Object
22 23 24 |
# File 'app/models/helena/session.rb', line 22 def answers_as_yaml Hash[answers.map { |answer| [answer.code, answer.value] }.sort].to_yaml end |
#answers_as_yaml=(yaml) ⇒ Object
26 27 28 29 30 |
# File 'app/models/helena/session.rb', line 26 def answers_as_yaml=(yaml) parsed_answers = YAML.safe_load yaml update_answers parsed_answers remove_unparsed_answers parsed_answers end |
#as_json(options) ⇒ Object
39 40 41 42 43 |
# File 'app/models/helena/session.rb', line 39 def as_json() session = super() session[:answer] = answers_as_hash session end |
#reset_tokens ⇒ Object
32 33 34 35 36 37 |
# File 'app/models/helena/session.rb', line 32 def reset_tokens # NOTE: there are (2*26+10)^k tokens available # To not run into performance issues we could pregenerate unique tokens in the future self.token = generate_token(5) until unique_token_for? self.view_token = generate_token(25) until unique_token_for?(:view_token) end |