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