Module: ControllerResources::Extension::ClassMethods

Defined in:
lib/controller_resources/extension.rb

Instance Method Summary collapse

Instance Method Details

#resource(name = nil, &block) ⇒ Object

Initialize this controller as an authenticated resource.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/controller_resources/extension.rb', line 44

def resource(name=nil, &block)
  name = self.name.gsub(/Controller/, '').tableize if name.nil?
  self._singleton_resource = name.to_s.singularize.to_sym
  self._collection_resource = name.to_s.pluralize.to_sym

  class_eval <<-RUBY
    respond_to :html
    expose :#{model}, except: %w(index)
    expose :#{collection}, only: %w(index) do
      #{model_class}.where(search_params)
    end
    #{authenticate if defined? Devise}
  RUBY

  yield if block_given?
end