dockyard/ruby-destroyed_at

View on GitHub
lib/destroyed_at/routes.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'action_dispatch'

module DestroyedAt::Mapper
  module Routes
    def set_member_mappings_for_resource
      member do
        put :restore if parent_resource.actions.include?(:restore)
      end
      super
    end
  end

  module Resource
    def default_actions
      actions = super
      if self.singular.camelcase.constantize.included_modules.include?(DestroyedAt)
        actions << :restore
      end

      actions
    end
  end
end

ActionDispatch::Routing::Mapper.send(:prepend, DestroyedAt::Mapper::Routes)
ActionDispatch::Routing::Mapper::Resource.send(:prepend, DestroyedAt::Mapper::Resource)