Permalink
36 lines (31 sloc) 1.11 KB
module Spree
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
"Spree::#{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("spree/#{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