Sha256: 92d827f7eaca9117a7d90a7c6dfd19673ef529cfd1a633fa8fb5fcab0175ce88
Contents?: true
Size: 1.02 KB
Versions: 7
Compression:
Stored size: 1.02 KB
Contents
module PandaPal class Session < ActiveRecord::Base 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
7 entries across 7 versions & 1 rubygems