lib/dynamic_controller/responder.rb in dynamic_controller-0.0.8 vs lib/dynamic_controller/responder.rb in dynamic_controller-0.0.9
- old
+ new
@@ -1,71 +1,71 @@
-module DynamicController
- class Responder
-
- def initialize(controller)
- @controller = controller
- end
-
- def index
- action :index,
- html: Proc.new {},
- json: Proc.new { render json: collection }
- end
-
- def show
- action :show,
- html: Proc.new {},
- json: Proc.new { render json: model }
- end
-
- def new
- action :new,
- html: Proc.new {}
- end
-
- def edit
- action :edit,
- html: Proc.new {}
- end
-
- def create
- action :create,
- html: Proc.new { redirect_to action: :show, id: model.id },
- json: Proc.new { render json: model, status: :created }
- end
-
- def update
- action :update,
- html: Proc.new { redirect_to action: :show, id: model.id },
- json: Proc.new { head :no_content }
- end
-
- def destroy
- action :destroy,
- html: Proc.new { redirect_to action: :index },
- json: Proc.new { head :no_content }
- end
-
- private
-
- def action(name, blocks={})
- @controller.instance_eval do
- if self.class.redefined_responder_to?(name)
- respond_to do |format|
- self.instance_exec format, &self.class.redefined_responder_to(name)
- end
- else
- respond_to do |format|
- self.class.responder_formats.each do |mime|
- if self.class.redefined_responder_to?(name, mime)
- format.send(mime) { self.instance_eval &self.class.redefined_responder_to(name, mime) }
- elsif blocks[mime]
- format.send(mime) { self.instance_eval &blocks[mime] }
- end
- end
- end
- end
- end
- end
-
- end
+module DynamicController
+ class Responder
+
+ def initialize(controller)
+ @controller = controller
+ end
+
+ def index
+ action :index,
+ html: Proc.new {},
+ json: Proc.new { render json: collection }
+ end
+
+ def show
+ action :show,
+ html: Proc.new {},
+ json: Proc.new { render json: model }
+ end
+
+ def new
+ action :new,
+ html: Proc.new {}
+ end
+
+ def edit
+ action :edit,
+ html: Proc.new {}
+ end
+
+ def create
+ action :create,
+ html: Proc.new { redirect_to action: :show, id: model.id },
+ json: Proc.new { render json: model, status: :created }
+ end
+
+ def update
+ action :update,
+ html: Proc.new { redirect_to action: :show, id: model.id },
+ json: Proc.new { head :no_content }
+ end
+
+ def destroy
+ action :destroy,
+ html: Proc.new { redirect_to action: :index },
+ json: Proc.new { head :no_content }
+ end
+
+ private
+
+ def action(name, blocks={})
+ @controller.instance_eval do
+ if self.class.redefined_responder_to?(name)
+ respond_to do |format|
+ self.instance_exec format, &self.class.redefined_responder_to(name)
+ end
+ else
+ respond_to do |format|
+ self.class.responder_formats.each do |mime|
+ if self.class.redefined_responder_to?(name, mime)
+ format.send(mime) { self.instance_eval &self.class.redefined_responder_to(name, mime) }
+ elsif blocks[mime]
+ format.send(mime) { self.instance_eval &blocks[mime] }
+ end
+ end
+ end
+ end
+ end
+ end
+
+ end
end
\ No newline at end of file