class ActionDispatch::Routing::Mapper

Constants

ROUTE_OPTIONS

routing namepace arguments, for using a path other than the default

Public Instance Methods

curation_concerns_basic_routes(&block) click to toggle source

@yield If a block is passed it is yielded for each curation_concern @example

curation_concerns_basic_routes do
  concerns :exportable
end
# File lib/curation_concerns/rails/routes.rb, line 8
def curation_concerns_basic_routes(&block)
  resources :downloads, only: :show
  resources :upload_sets, only: [:edit, :update]

  namespace :curation_concerns, path: :concern do
    namespaced_resources 'workflow_actions', only: [:update]
    concerns_to_route.each do |curation_concern_name|
      namespaced_resources curation_concern_name, except: [:index], &block
      namespaced_resources curation_concern_name, only: [] do
        member do
          get :file_manager
          get :inspect_work
        end
      end
    end

    resources :parent, only: [] do
      concerns_to_route.each do |curation_concern_name|
        namespaced_resources curation_concern_name, except: [:index], &block
      end
    end

    resources :parent, only: [] do
      resources :file_sets, only: [:show]
    end

    resources :permissions, only: [] do
      member do
        get :confirm
        post :copy
      end
    end
    resources :file_sets, only: [:new, :create], path: 'container/:parent_id/file_sets'
    resources :file_sets, only: [:show, :edit, :update, :destroy] do
      member do
        get :versions
        put :rollback
      end
    end
  end
end
curation_concerns_collections() click to toggle source

Adds routes for doing paginated searches within a collection's contents @example in routes.rb:

curation_concerns_collections
# File lib/curation_concerns/rails/routes.rb, line 53
def curation_concerns_collections
  resources :collections do
    member do
      get 'page/:page', action: :index
      get 'facet/:id', action: :facet, as: :dashboard_facet
    end
    collection do
      put '', action: :update
      put :remove_member
    end
  end
end
curation_concerns_embargo_management() click to toggle source

kmr added :show to make tests pass

# File lib/curation_concerns/rails/routes.rb, line 67
def curation_concerns_embargo_management
  resources :embargoes, only: [:index, :edit, :destroy] do
    collection do
      patch :update
    end
  end
  resources :leases, only: [:index, :edit, :destroy] do
    collection do
      patch :update
    end
  end
end

Private Instance Methods

concerns_to_route() click to toggle source

@return [Array<String>] the list of works to build routes for

# File lib/curation_concerns/rails/routes.rb, line 105
def concerns_to_route
  CurationConcerns.config.registered_curation_concern_types.map(&:tableize)
end
namespaced_resources(target, opts = {}) { || ... } click to toggle source

Namespaces routes appropriately @example namespaced_resources(“curation_concerns/my_work”) is equivalent to

namespace "curation_concerns", path: :concern do
  resources "my_work", except: [:index]
end
# File lib/curation_concerns/rails/routes.rb, line 90
def namespaced_resources(target, opts = {}, &block)
  if target.include?('/')
    the_namespace = target[0..target.index('/') - 1]
    new_target = target[target.index('/') + 1..-1]
    namespace the_namespace, ROUTE_OPTIONS.fetch(the_namespace, nil) do
      namespaced_resources(new_target, opts, &block)
    end
  else
    resources target, opts do
      yield if block_given?
    end
  end
end