class TinCanApi::Context

Context Class Description

Attributes

context_activities[RW]
extensions[RW]
instructor[RW]
language[RW]
platform[RW]
registration[RW]
revision[RW]
statement[RW]
team[RW]

Public Class Methods

new(options={}, &block) click to toggle source
# File lib/tin_can_api/context.rb, line 9
def initialize(options={}, &block)
  json = options.fetch(:json, nil)
  if json
    attributes = JSON.parse(json)
    self.registration = attributes['registration'] if attributes['registration']
    self.instructor = TinCanApi::Agent.new(json: attributes['instructor'].to_json) if attributes['instructor']
    self.team = TinCanApi::Agent.new(json: attributes['team'].to_json) if attributes['team']
    self.context_activities = TinCanApi::ContextActivities.new(json: attributes['contextActivities'].to_json) if attributes['contextActivities']
    self.revision = attributes['revision'] if attributes['revision']
    self.platform = attributes['platform'] if attributes['platform']
    self.language = attributes['language'] if attributes['language']
    self.statement = TinCanApi::StatementRef.new(json: attributes['statement'].to_json) if attributes['statement']
    self.extensions = attributes['extensions'] if attributes['extensions']
  else
    self.registration = options.fetch(:registration, nil)
    self.instructor = options.fetch(:instructor, nil)
    self.team = options.fetch(:team, nil)
    self.context_activities = options.fetch(:context_activities, nil)
    self.revision = options.fetch(:revision, nil)
    self.platform = options.fetch(:platform, nil)
    self.language = options.fetch(:language, nil)
    self.extensions = options.fetch(:extensions, nil)

    if block_given?
      block[self]
    end
  end
end

Public Instance Methods

serialize(version) click to toggle source
# File lib/tin_can_api/context.rb, line 38
def serialize(version)
  node = {}
  node['registration'] = registration if registration
  node['instructor'] = instructor.serialize(version) if instructor
  node['team'] = team.serialize(version) if team
  node['contextActivities'] = context_activities.serialize(version) if context_activities
  node['revision'] = revision if revision
  node['platform'] = platform if platform
  node['language'] = language if language
  node['statement'] = statement.serialize(version) if statement
  node['extensions'] = extensions if extensions

  node
end