Sha256: 05b1552a1a8159509ff5828645a2757592eff0e74c520e674d3f1f9cf0f25864

Contents?: true

Size: 1.11 KB

Versions: 20

Compression:

Stored size: 1.11 KB

Contents

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(&:capitalize).join('::')
        sub_namespace = "#{sub_namespace}::" unless sub_namespace.empty?
        "Spree::#{sub_namespace}#{@controller_name.classify}".constantize
      end

      def model_name
        sub_namespace = sub_namespace_parts.join('/')
        sub_namespace = "#{sub_namespace}/" unless sub_namespace.empty?
        @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}_" unless sub_namespace.empty?
        "#{sub_namespace}#{@controller_name.singularize}"
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
spree_backend-3.4.6 app/models/spree/admin/resource.rb
spree_backend-3.6.6 app/models/spree/admin/resource.rb
spree_backend-3.6.5 app/models/spree/admin/resource.rb
spree_backend-3.6.4 app/models/spree/admin/resource.rb
spree_backend-3.6.3 app/models/spree/admin/resource.rb
spree_backend-3.6.2 app/models/spree/admin/resource.rb
spree_backend-3.6.1 app/models/spree/admin/resource.rb
spree_backend-3.6.0 app/models/spree/admin/resource.rb
spree_backend-3.5.0 app/models/spree/admin/resource.rb
spree_backend-3.6.0.rc1 app/models/spree/admin/resource.rb
spree_backend-3.5.0.rc2 app/models/spree/admin/resource.rb
spree_backend-3.5.0.rc1 app/models/spree/admin/resource.rb
spree_backend-3.4.5 app/models/spree/admin/resource.rb
spree_backend-3.4.4 app/models/spree/admin/resource.rb
spree_backend-3.4.3 app/models/spree/admin/resource.rb
spree_backend-3.4.2 app/models/spree/admin/resource.rb
spree_backend-3.4.1 app/models/spree/admin/resource.rb
spree_backend-3.4.0 app/models/spree/admin/resource.rb
spree_backend-3.4.0.rc2 app/models/spree/admin/resource.rb
spree_backend-3.4.0.rc1 app/models/spree/admin/resource.rb