Module: Releaf::Content

Defined in:
app/builders/releaf/content/copy_dialog_builder.rb,
app/builders/releaf/content/move_dialog_builder.rb,
app/services/releaf/content/build_route_objects.rb,
app/builders/releaf/content/content_type_dialog_builder.rb,
lib/releaf/content/routes_reloader.rb,
lib/releaf/content/configuration.rb,
lib/releaf/content/router_proxy.rb,
lib/releaf/content/node_mapper.rb,
lib/releaf/content/engine.rb,
lib/releaf/content/route.rb,
lib/releaf/content/node.rb,
lib/releaf-content.rb

Defined Under Namespace

Modules: Builders, Node, NodeMapper, Nodes Classes: BuildRouteObjects, Configuration, ContentTypeDialogBuilder, CopyDialogBuilder, Engine, MoveDialogBuilder, NodesController, Route, RouterProxy, RoutesReloader

Class Method Summary collapse

Class Method Details

.configurationObject



24
25
26
# File 'lib/releaf-content.rb', line 24

def self.configuration
  Releaf.application.config.content
end

.configure_componentObject



28
29
30
31
32
33
34
# File 'lib/releaf-content.rb', line 28

def self.configure_component
  Releaf.application.config.add_configuration(
    Releaf::Content::Configuration.new(
      resources: { 'Node' => { controller: 'Releaf::Content::NodesController' } }
    )
  )
end

.draw_component_routes(router) ⇒ Object



44
45
46
47
48
# File 'lib/releaf-content.rb', line 44

def self.draw_component_routes(router)
  resources.each do |_model_name, options|
    draw_resource_routes(router, options)
  end
end

.draw_resource_routes(router, options) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/releaf-content.rb', line 50

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_componentObject



36
37
38
39
40
41
42
# File 'lib/releaf-content.rb', line 36

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) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/releaf-content.rb', line 68

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