Sha256: f6e5a0557a46ab6955679ea5f48bcda0e58f9d7382662aee38d37d0c19d2119e

Contents?: true

Size: 1.19 KB

Versions: 4

Compression:

Stored size: 1.19 KB

Contents

require 'responders'

module RailsStuff
  # InheritedResources on diet.
  # Tiny and simple implementation. Feel free to change/extend it right in you
  # application. Or just use separate modules.
  module ResourcesController
    extend ActiveSupport::Autoload

    class << self
      delegate :kaminari!, to: 'RailsStuff::ResourcesController::BasicHelpers'
    end

    autoload :Actions
    autoload :BasicHelpers
    autoload :Responder
    autoload :StiHelpers
    autoload :ResourceHelper

    # Setups basic actions and helpers in resources controller.
    #
    # #### Options
    #
    # - `sti` - include STI helpers
    # - `after_save_action` - action to use for `after_save_url`
    # - `source_relation` - override `source_relation`
    def resources_controller(**options)
      include BasicHelpers
      include StiHelpers if options[:sti]
      include Actions
      extend ResourceHelper

      respond_to :html
      self.responder = Responder
      self.after_save_action = options[:after_save_action] || after_save_action

      if options[:source_relation] # rubocop:disable GuardClause
        protected define_method(:source_relation, &options[:source_relation])
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_stuff-0.4.0 lib/rails_stuff/resources_controller.rb
rails_stuff-0.3.0 lib/rails_stuff/resources_controller.rb
rails_stuff-0.2.0 lib/rails_stuff/resources_controller.rb
rails_stuff-0.1.0 lib/rails_stuff/resources_controller.rb