module Releaf::Content

Public Class Methods

configuration() click to toggle source
# File lib/releaf-content.rb, line 23
def self.configuration
  Releaf.application.config.content
end
configure_component() click to toggle source
# File lib/releaf-content.rb, line 27
def self.configure_component
  Releaf.application.config.add_configuration(
    Releaf::Content::Configuration.new(
      resources: { 'Node' => { controller: 'Releaf::Content::NodesController' } }
    )
  )
end
draw_component_routes(router) click to toggle source
# File lib/releaf-content.rb, line 43
def self.draw_component_routes(router)
  resources.each do |_model_name, options|
    draw_resource_routes(router, options)
  end
end
draw_resource_routes(router, options) click to toggle source
# File lib/releaf-content.rb, line 49
def self.draw_resource_routes router, options
  route_params = resource_route_params options

  router.releaf_resources(*route_params) do
    router.collection do
      router.get :content_type_dialog
      router.get :generate_url
    end

    router.member do
      router.get :copy_dialog
      router.post :copy
      router.get :move_dialog
      router.post :move
    end
  end
end
initialize_component() click to toggle source
# File lib/releaf-content.rb, line 35
def self.initialize_component
  Rails.application.config.middleware.use Releaf::Content::RoutesReloader

  ActiveSupport.on_load :action_controller do
    ActionDispatch::Routing::Mapper.send(:include, Releaf::Content::NodeMapper)
  end
end
resource_route_params(options) click to toggle source
# File lib/releaf-content.rb, line 67
def self.resource_route_params options
  # Releaf::Content::NodesController -> releaf/content/nodes
  controller_path = options[:controller].constantize.controller_path
  controller_path_parts = controller_path.split('/')

  resources_name = controller_path_parts.last

  route_options = {
    # releaf/content/nodes -> releaf/content
    module: controller_path_parts.slice(0...-1).join('/'),

    # releaf/content/nodes -> releaf_content_nodes
    as: controller_path.gsub(/\//, '_'),

    except: [:show]
  }

  [ resources_name, route_options ]
end