Module: MerbResourceScope::Controller::Actions

Included in:
SingletonActions
Defined in:
lib/merb-resource-scope/controller/actions.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
9
# File 'lib/merb-resource-scope/controller/actions.rb', line 5

def self.included(base)
  unless base == MerbResourceScope::Controller::SingletonActions
    base.show_action(:show, :index, :new, :edit, :update, :create, :destroy)
  end
end

Instance Method Details

#createObject

Raises:

  • (::Merb::ControllerExceptions::BadRequest)


35
36
37
38
39
40
41
42
43
# File 'lib/merb-resource-scope/controller/actions.rb', line 35

def create
  raise ::Merb::ControllerExceptions::BadRequest, "No params passed to create a new object, check your new action view!" if params[@_current_specification.resource_name].nil?
  self.current_resource = new_resource
  if current_resource.save
    redirect current_resources_url
  else
    render :new
  end
end

#destroyObject

Raises:

  • (::Merb::ControllerExceptions::NotFound)


55
56
57
58
59
60
61
62
63
# File 'lib/merb-resource-scope/controller/actions.rb', line 55

def destroy
 self.current_resource = find_resource
 raise ::Merb::ControllerExceptions::NotFound unless current_resource
 if current_resource.destroy
   redirect current_resources_url
 else
   raise ::Merb::ControllerExceptions::BadRequest
 end
end

#editObject

Raises:

  • (::Merb::ControllerExceptions::NotFound)


28
29
30
31
32
33
# File 'lib/merb-resource-scope/controller/actions.rb', line 28

def edit
  only_provides :html
  self.current_resource = find_resource
  raise ::Merb::ControllerExceptions::NotFound  unless current_resource
  render
end

#indexObject



11
12
13
14
# File 'lib/merb-resource-scope/controller/actions.rb', line 11

def index
  self.current_resources = find_resources
  display current_resources
end

#newObject



22
23
24
25
26
# File 'lib/merb-resource-scope/controller/actions.rb', line 22

def new
  only_provides :html
  self.current_resource = new_resource
  render
end

#showObject

Raises:

  • (::Merb::ControllerExceptions::NotFound)


16
17
18
19
20
# File 'lib/merb-resource-scope/controller/actions.rb', line 16

def show
  self.current_resource = find_resource
  raise ::Merb::ControllerExceptions::NotFound unless current_resource
  display current_resource
end

#updateObject

Raises:

  • (::Merb::ControllerExceptions::NotFound)


45
46
47
48
49
50
51
52
53
# File 'lib/merb-resource-scope/controller/actions.rb', line 45

def update
  self.current_resource = find_resource
  raise ::Merb::ControllerExceptions::NotFound unless current_resource
  if current_resource.update_attributes(params[_current_specification.resource_name]) || !current_resource.dirty?
    redirect current_resource_url(current_resource)
  else
    raise ::Merb::ControllerExceptions::BadRequest
  end
end