module Sinatra::JSON

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/sinatra-active-model-serializers/json.rb, line 5
def initialize
  files_required
  super
end

Public Instance Methods

files_required() click to toggle source
# File lib/sinatra-active-model-serializers/json.rb, line 31
def files_required
  return unless settings.serializers_path
  Dir["#{ settings.serializers_path }/**/*.rb"].flatten.sort.each do |file|
    require file
  end
end
get_serializer(resource) click to toggle source
# File lib/sinatra-active-model-serializers/json.rb, line 20
def get_serializer(resource)
  _serializer ||= @_options.delete(:serializer)
  _serializer ||= ActiveModel::Serializer.serializer_for(resource)

  if @_options.key?(:each_serializer)
    @_options[:serializer] = @_options.fetch(:each_serializer)
  end

  _serializer
end
json(resource, options = {}) click to toggle source
# File lib/sinatra-active-model-serializers/json.rb, line 10
def json(resource, options = {})
  @_options = settings.active_model_serializers.merge(options)

  if serializer = get_serializer(resource)
    serializer.new(resource, @_options).to_json
  else
    resource.to_json(@_options)
  end
end