Sha256: 47f791ff33372a2312d6cd531f9b06bd84b5e41ae074ba4ed18438c8629cacb9

Contents?: true

Size: 1009 Bytes

Versions: 8

Compression:

Stored size: 1009 Bytes

Contents

module JSONAPIonify::Api
  module Resource::Definitions::Hooks
    def self.extended(klass)
      klass.class_eval do
        define_callbacks(
          :request,
          :exception,
          :response,
          :list,    :commit_list,
          :create,  :commit_create,
          :read,    :commit_read,
          :update,  :commit_update,
          :delete,  :commit_delete,
          :show,    :commit_show,
          :add,     :commit_add,
          :remove,  :commit_remove,
          :replace, :commit_replace
        )
        class << klass
          alias_method :on_exception, :before_exception
          remove_method :before_exception
          remove_method :after_exception
        end
      end
    end

    %i{before after}.each do |cb|
      define_method(cb) do |*action_names, &block|
        return send(:"#{cb}_request", &block) if action_names.blank?
        action_names.each do |action_name|
          send("#{cb}_#{action_name}", &block)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
jsonapionify-0.12.10 lib/jsonapionify/api/resource/definitions/hooks.rb
jsonapionify-0.12.9 lib/jsonapionify/api/resource/definitions/hooks.rb
jsonapionify-0.12.8 lib/jsonapionify/api/resource/definitions/hooks.rb
jsonapionify-0.12.7 lib/jsonapionify/api/resource/definitions/hooks.rb
jsonapionify-0.12.5 lib/jsonapionify/api/resource/definitions/hooks.rb
jsonapionify-0.12.4 lib/jsonapionify/api/resource/definitions/hooks.rb
jsonapionify-0.12.3 lib/jsonapionify/api/resource/definitions/hooks.rb
jsonapionify-0.12.2 lib/jsonapionify/api/resource/definitions/hooks.rb