app/models/cdx/admin/resource.rb
module Cdx
module Admin
class Resource
def initialize(controller_path, controller_name, parent_model, object_name = nil)
@controller_path = controller_path
@controller_name = controller_name
@parent_model = parent_model
@object_name = object_name
end
def sub_namespace_parts
@controller_path.split('/')[2..-2]
end
def model_class
sub_namespace = sub_namespace_parts.map { |s| s.capitalize }.join('::')
sub_namespace = "#{sub_namespace}::" if sub_namespace.length > 0
"Cdx::#{sub_namespace}#{@controller_name.classify}".constantize
end
def model_name
sub_namespace = sub_namespace_parts.join('/')
sub_namespace = "#{sub_namespace}/" if sub_namespace.length > 0
@parent_model.gsub("cdx/#{sub_namespace}", '')
end
def object_name
return @object_name if @object_name
sub_namespace = sub_namespace_parts.join('/')
sub_namespace = "#{sub_namespace}_" if sub_namespace.length > 0
"#{sub_namespace}#{@controller_name.singularize}"
end
end
end
end