class IMS::LTI::Serializers::Base

Public Class Methods

as_json(obj) click to toggle source
# File lib/ims/lti/serializers/base.rb, line 101
def self.as_json(obj)
  @filter.filter(base_hash(obj))
end
attributes() click to toggle source
# File lib/ims/lti/serializers/base.rb, line 113
def self.attributes
  @attributes
end
has_list_of_serializables(name, opts={}) click to toggle source
# File lib/ims/lti/serializers/base.rb, line 95
def self.has_list_of_serializables(name, opts={})
  opts[:list_of_serializables] = true
  opts[:serializable] = false
  set_attribute(name, opts)
end
has_serializable(name, opts={}) click to toggle source
# File lib/ims/lti/serializers/base.rb, line 89
def self.has_serializable(name, opts={})
  opts[:serializable] = true
  opts[:list_of_serializables] = false
  set_attribute(name, opts)
end
inherited(subclass) click to toggle source
# File lib/ims/lti/serializers/base.rb, line 75
def self.inherited(subclass)
  subclass.instance_variable_set(:@filter, Filter.new)
  subclass.instance_variable_set(:@attributes, Set.new)
end
options_for_attribute(attribute) click to toggle source
# File lib/ims/lti/serializers/base.rb, line 109
def self.options_for_attribute(attribute)
  @filter.options_for_attribute(attribute)
end
set_attribute(name, opts={}) click to toggle source
# File lib/ims/lti/serializers/base.rb, line 80
def self.set_attribute(name, opts={})
  @attributes.add(name)
  @filter.add_filter(name, opts)
end
set_attributes(*names) click to toggle source
# File lib/ims/lti/serializers/base.rb, line 85
def self.set_attributes(*names)
  names.each { |name| set_attribute(name) }
end
to_json(obj) click to toggle source
# File lib/ims/lti/serializers/base.rb, line 105
def self.to_json(obj)
  as_json(obj).to_json
end

Private Class Methods

base_hash(obj) click to toggle source
# File lib/ims/lti/serializers/base.rb, line 119
def self.base_hash(obj)
  h = {}
  @attributes.each { |attribute| h[attribute] = obj.send(attribute) }
  h
end