Sha256: 8a473a839442670e15a76fab9f3ff6e8e8f24087c9cfa0aab71b1c4ac536a32f

Contents?: true

Size: 1.51 KB

Versions: 33

Compression:

Stored size: 1.51 KB

Contents

module Releaf::ActionController::Resources
  extend ActiveSupport::Concern

  included do
    helper_method :resource_class,

    # Tries to return resource class.
    #
    # If it fails to return proper resource class for your controller, or your
    # controllers name has no relation to resource class name, then simply
    # override this method to return class that you want.
    #
    # @return class
    def self.resource_class
      self.name.split('::', 2).last.sub(/Controller$/, '').classify.constantize
    end
  end

  def resource_params
    required_params.permit(*permitted_params)
  end

  # It sets various instance variables, that are later used in views and # controllers
  def resources_per_page
    40
  end

  # Returns which resource attributes can be updated with mass assignment.
  #
  # The resulting array will be passed to strong_parameters ``permit``
  def permitted_params
    Releaf::ResourceParams.new(resource_class).values
  end

  def new_resource
    @resource = resource_class.new
  end

  def load_resource
    begin
      @resource = resource_class.find(params[:id])
    rescue ActiveRecord::RecordNotFound
      raise Releaf::RecordNotFound
    end
  end

  # Returns true if @resource is assigned (even if it's nil)
  def resource_given?
    !!defined? @resource
  end

  # Return ActiveRecord::Relation used in index
  #
  # @return ActiveRecord::Relation
  def resources
    resource_class.all
  end

  # @return class
  def resource_class
    @resource_class ||= self.class.resource_class
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
releaf-core-3.1.0 app/lib/releaf/action_controller/resources.rb
releaf-core-3.0.3 app/lib/releaf/action_controller/resources.rb
releaf-core-3.0.2 app/lib/releaf/action_controller/resources.rb
releaf-core-3.0.1 app/lib/releaf/action_controller/resources.rb
releaf-core-3.0.0 app/lib/releaf/action_controller/resources.rb
releaf-core-2.2.1 app/lib/releaf/action_controller/resources.rb
releaf-core-2.2.0 app/lib/releaf/action_controller/resources.rb
releaf-core-2.1.2 app/lib/releaf/action_controller/resources.rb
releaf-core-2.1.1 app/lib/releaf/action_controller/resources.rb
releaf-core-2.1.0 app/lib/releaf/action_controller/resources.rb
releaf-core-2.0.1 app/lib/releaf/action_controller/resources.rb
releaf-core-2.0.0 app/lib/releaf/action_controller/resources.rb
releaf-core-1.1.22 app/lib/releaf/action_controller/resources.rb
releaf-core-1.1.21 app/lib/releaf/action_controller/resources.rb
releaf-core-1.1.20 app/lib/releaf/action_controller/resources.rb
releaf-core-1.1.19 app/lib/releaf/action_controller/resources.rb
releaf-core-1.1.18 app/lib/releaf/action_controller/resources.rb
releaf-core-1.1.17 app/lib/releaf/action_controller/resources.rb
releaf-core-1.1.16 app/lib/releaf/action_controller/resources.rb
releaf-core-1.1.15 app/lib/releaf/action_controller/resources.rb