Sha256: 46e318bef04622d1cfcacb85e02e25bf024c0ef604f78d503c057802838bba50

Contents?: true

Size: 820 Bytes

Versions: 21

Compression:

Stored size: 820 Bytes

Contents

module ResourceController
  module ClassMethods

    # Use this method in your controller to specify which actions you'd like it to respond to.
    #
    #   class PostsController < ResourceController::Base
    #     actions :all, :except => :create
    #   end
    def actions(*opts)
      config = {}
      config.merge!(opts.pop) if opts.last.is_a?(Hash)

      all_actions = (singleton? ? ResourceController::SINGLETON_ACTIONS : ResourceController::ACTIONS) - [:new_action] + [:new]
      
      actions_to_remove = []
      actions_to_remove += all_actions - opts unless opts.first == :all                
      actions_to_remove += [*config[:except]] if config[:except]
      actions_to_remove.uniq!

      actions_to_remove.each { |action| undef_method(action) if method_defined?(action) }
    end
    
  end
end

Version data entries

21 entries across 21 versions & 12 rubygems

Version Path
akitaonrails-resource_controller-0.5.3 lib/resource_controller/class_methods.rb
csmosx-resource_controller-0.6.6 lib/resource_controller/class_methods.rb
csmosx-resource_controller-0.6.7 lib/resource_controller/class_methods.rb
dkubb-resource_controller-0.6.5 lib/resource_controller/class_methods.rb
giraffesoft-resource_controller-0.5.5 lib/resource_controller/class_methods.rb
giraffesoft-resource_controller-0.5.6 lib/resource_controller/class_methods.rb
giraffesoft-resource_controller-0.6.0 lib/resource_controller/class_methods.rb
giraffesoft-resource_controller-0.6.1 lib/resource_controller/class_methods.rb
giraffesoft-resource_controller-0.6.5 lib/resource_controller/class_methods.rb
maser-resource_controller-0.6.6 lib/resource_controller/class_methods.rb
nileshtrivedi-safe_resource-0.5.3 lib/resource_controller/class_methods.rb
radar-resource_controller-0.6.6 lib/resource_controller/class_methods.rb
strikeroff-resource_controller-0.6.6 lib/resource_controller/class_methods.rb
viva-resource_controller-0.6.5.1 lib/resource_controller/class_methods.rb
viva-resource_controller-0.6.5.2 lib/resource_controller/class_methods.rb
viva-resource_controller-0.6.5 lib/resource_controller/class_methods.rb
resource_controller_views-0.6.6.views2 lib/resource_controller/class_methods.rb
resource_controller_views-0.6.6 lib/resource_controller/class_methods.rb
resource_controller-0.6.6 lib/resource_controller/class_methods.rb
Pr0d1r2-resource_controller-0.6.6 lib/resource_controller/class_methods.rb