module JsonapiSerializer

Constants

TRANSFORMS
VERSION

Public Class Methods

key_transform(key) click to toggle source
# File lib/jsonapi_serializer.rb, line 20
def self.key_transform(key)
  @@key_transform.call(key)
end
set_key_transform(name = nil, &block) click to toggle source
# File lib/jsonapi_serializer.rb, line 33
def self.set_key_transform(name = nil, &block)
  if name.nil? && block_given?
    @@key_transform = block
  elsif name.is_a?(Symbol) && !block_given?
    @@key_transform = TRANSFORMS[name]
  else
    raise ArgumentError, "set_key_transform accepts either a standard transform symbol (:dasherize, :underscore or :camelize) or a block"
  end
end
set_type_namespace_separator(separator) click to toggle source
# File lib/jsonapi_serializer.rb, line 43
def self.set_type_namespace_separator(separator)
  @@type_namespace_separator = separator
end
set_type_transform(name = nil, &block) click to toggle source
# File lib/jsonapi_serializer.rb, line 47
def self.set_type_transform(name = nil, &block)
  if name.nil? && block_given?
    @@type_transform = block
  elsif name.is_a?(Symbol) && !block_given?
    @@type_transform = TRANSFORMS[name]
  else
    raise ArgumentError, "set_type_transform accepts either a standard transform symbol (:dasherize, :underscore or :camelize) or a block"
  end
end
type_transform(klass) click to toggle source
# File lib/jsonapi_serializer.rb, line 24
def self.type_transform(klass)
  segments = klass.split("::").map { |segment| @@type_transform.call(segment) }
  if @@type_namespace_separator == :ignore
    segments.last
  else
    segments.join(@@type_namespace_separator)
  end.to_sym
end