Sha256: 437f3e1c43919d98967d3e1fc59290bec0aa2e3093810cfca898b5a175cce1d0

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

require 'elocal_api_support/actions/create'
require 'elocal_api_support/actions/destroy'
require 'elocal_api_support/actions/index'
require 'elocal_api_support/actions/show'
require 'elocal_api_support/actions/update'

module ElocalApiSupport
  module Actions
    extend ActiveSupport::Concern

    included do
      include ElocalApiSupport::Actions::Common
      include ElocalApiSupport::Actions::Create
      include ElocalApiSupport::Actions::Destroy
      include ElocalApiSupport::Actions::Index
      include ElocalApiSupport::Actions::Show
      include ElocalApiSupport::Actions::Update
    end

    module Common

      protected

      def filtered_objects_for_json

        if associated_model_serializer
          filtered_objects.map{|r| associated_model_serializer.new(r)}
        else
          filtered_objects
        end
      end

      def associated_model_serializer
        unless @associated_model_serializer_lookup_complete
          c = "#{associated_model}Serializer"
          @associated_model_serializer = if Object.const_defined?(c)
            Rails.logger.debug("Using #{c}")
            c.constantize
          else
            Rails.logger.debug("No serializer #{c}")
            nil
          end
          @associated_model_serializer_lookup_complete = true
        end
        @associated_model_serializer
      end

      def associated_model_name
        @model_name ||= controller_name.singularize
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
elocal_api_support-0.1.2 lib/elocal_api_support/actions.rb