Sha256: 6f908d277449124da53eb6c1badbf39c778bf281d738e62c350e195abcf2c137
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
module PandaPal class Session < PandaPalRecord belongs_to :panda_pal_organization, class_name: 'PandaPal::Organization', optional: true after_initialize do self.session_key ||= SecureRandom.urlsafe_base64(60) end def lti_platform return nil unless data[:lti_platform].present? @lti_platform ||= Platform.deserialize(data[:lti_platform]) end class DataSerializer def self.load(str) return {} unless str.present? begin parsed = JSON.parse(str) rescue JSON::ParserError parsed = yaml_load(str) end parsed.is_a?(Hash) ? HashWithIndifferentAccess.new(parsed) : parsed end def self.dump(obj) JSON.dump(obj) end private if YAML.respond_to?(:unsafe_load) def self.yaml_load(payload) YAML.unsafe_load(payload) end else def self.yaml_load(payload) YAML.load(payload) end end end serialize :data, DataSerializer end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
panda_pal-5.7.0.beta2 | app/models/panda_pal/session.rb |
panda_pal-5.7.0.beta1 | app/models/panda_pal/session.rb |