Module: Cruddy::Controller::InstanceMethods

Defined in:
lib/cruddy/controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject

create action



84
85
86
87
88
89
90
91
92
93
94
# File 'lib/cruddy/controller.rb', line 84

def create
  self.resource = resource_class.new(resource_params)

  if resource.save
    redirect_to resource_path(resource)
  else
    respond_with(resource) do |format|
      format.html { render :new }
    end
  end
end

#destroyObject

destroy action



116
117
118
119
120
# File 'lib/cruddy/controller.rb', line 116

def destroy
  find_resource_instance
  resource.destroy
  redirect_to resources_path
end

#editObject

edit action



97
98
99
100
# File 'lib/cruddy/controller.rb', line 97

def edit
  find_resource_instance
  respond_with resource
end

#find_resource_collectionObject



61
62
63
# File 'lib/cruddy/controller.rb', line 61

def find_resource_collection
  self.resources = resource_class.all
end

#find_resource_instanceObject



57
58
59
# File 'lib/cruddy/controller.rb', line 57

def find_resource_instance
  self.resource = resource_class.find(params[:id])
end

#indexObject

index action



66
67
68
69
# File 'lib/cruddy/controller.rb', line 66

def index
  find_resource_collection
  respond_with resources
end

#newObject

new action



78
79
80
81
# File 'lib/cruddy/controller.rb', line 78

def new
  self.resource = resource_class.new
  respond_with resource
end

#resourceObject

get instance variable for singluar resource instance



23
24
25
# File 'lib/cruddy/controller.rb', line 23

def resource
  instance_variable_get("@#{resource_instance_name}")
end

#resource=(resource) ⇒ Object

set instance variable for singluar resource instance



28
29
30
# File 'lib/cruddy/controller.rb', line 28

def resource=(resource)
  instance_variable_set("@#{resource_instance_name}", resource)
end

#resource_classObject

the class this controller manages



8
9
10
# File 'lib/cruddy/controller.rb', line 8

def resource_class
  controller_name.classify.constantize
end

#resource_collection_nameObject

the name of the resource collection



13
14
15
# File 'lib/cruddy/controller.rb', line 13

def resource_collection_name
  controller_name
end

#resource_instance_nameObject

the name of the singular resource



18
19
20
# File 'lib/cruddy/controller.rb', line 18

def resource_instance_name
  controller_name.singularize
end

#resource_paramsObject

require the resource and permit all params by default



43
44
45
# File 'lib/cruddy/controller.rb', line 43

def resource_params
  params.require(resource_instance_name).permit!
end

#resource_path(resource) ⇒ Object

get the path to a singular resource



48
49
50
# File 'lib/cruddy/controller.rb', line 48

def resource_path(resource)
  send("#{resource_instance_name}_path", resource)
end

#resourcesObject

get instance variable for collection of resource instances



33
34
35
# File 'lib/cruddy/controller.rb', line 33

def resources
  instance_variable_get("@#{resource_collection_name}")
end

#resources=(collection) ⇒ Object

set instance variable for collection of resource instances



38
39
40
# File 'lib/cruddy/controller.rb', line 38

def resources=(collection)
  instance_variable_set("@#{resource_collection_name}", collection)
end

#resources_pathObject

get the path to index resources



53
54
55
# File 'lib/cruddy/controller.rb', line 53

def resources_path
  send("#{resource_collection_name}_path")
end

#showObject

show action



72
73
74
75
# File 'lib/cruddy/controller.rb', line 72

def show
  find_resource_instance
  respond_with resource
end

#updateObject

update action



103
104
105
106
107
108
109
110
111
112
113
# File 'lib/cruddy/controller.rb', line 103

def update
  find_resource_instance

  if resource.update_attributes(resource_params)
    redirect_to resource_path(resource)
  else
    respond_with(resource) do |format|
      format.html { render :edit }
    end
  end
end