module EdgycircleToolbox::Sonapi::Resource::ClassMethods

Public Instance Methods

attribute(attribute_name) click to toggle source
# File lib/edgycircle_toolbox/sonapi/resource.rb, line 39
def attribute(attribute_name)
  @blueprint.add_attribute attribute_name.to_s
end
deserialize(parameters) click to toggle source
# File lib/edgycircle_toolbox/sonapi/resource.rb, line 35
def deserialize(parameters)
  Deserializer.new(@blueprint).call(parameters)
end
dynamic_attributes(callable) click to toggle source
# File lib/edgycircle_toolbox/sonapi/resource.rb, line 43
def dynamic_attributes(callable)
  @blueprint.dynamic_attributes = callable
end
parameter_filter(callable) click to toggle source
# File lib/edgycircle_toolbox/sonapi/resource.rb, line 47
def parameter_filter(callable)
  @blueprint.parameter_filter = callable
end
serialize(object, options = {}) click to toggle source
# File lib/edgycircle_toolbox/sonapi/resource.rb, line 17
def serialize(object, options = {})
  if object.respond_to?(:map)
    data = object.map { |item| serialize_resource(item) }
  else
    data = serialize_resource(object)
  end

  result = {
    "data" => data
  }

  if options[:included_resources]
    result.merge!({ "included" => options[:included_resources] })
  end

  result
end
serialize_resource(object) click to toggle source
# File lib/edgycircle_toolbox/sonapi/resource.rb, line 13
def serialize_resource(object)
  Serializer.new(@blueprint).call(object)
end
type(type) click to toggle source
# File lib/edgycircle_toolbox/sonapi/resource.rb, line 9
def type(type)
  @blueprint = Blueprint.new(type)
end