Module: StorytimeAdmin::Concerns::PolymorphicRouteGeneration

Included in:
ApplicationController
Defined in:
app/controllers/storytime_admin/concerns/polymorphic_route_generation.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



4
5
6
# File 'app/controllers/storytime_admin/concerns/polymorphic_route_generation.rb', line 4

def self.included(base)
  base.helper_method :polymorphic_route_components
end

Instance Method Details

#polymorphic_route_components(object_or_class_name) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/controllers/storytime_admin/concerns/polymorphic_route_generation.rb', line 8

def polymorphic_route_components(object_or_class_name)
  object = nil

  class_name = if object_or_class_name.is_a?(String)
    object = object_or_class_name.constantize
    object_or_class_name
  elsif object_or_class_name.is_a?(Class)
    object = object_or_class_name
    object_or_class_name.name
  else
    object = object_or_class_name
    object_or_class_name.class.name
  end
  
  pieces = class_name.split("::").map{|part| part.underscore.to_sym } 
  pieces.pop 
  pieces << object
end