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