From b1f078bddfecd40cce47b7db738620f2df2219c9 Mon Sep 17 00:00:00 2001 From: Yehuda Katz Date: Tue, 24 Feb 2009 17:25:21 -0800 Subject: First, very early, AbstractController code. More to come --- actionpack/lib/action_controller/abstract/base.rb | 23 ++++++++++++++++++++ .../lib/action_controller/abstract/renderer.rb | 25 ++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 actionpack/lib/action_controller/abstract/base.rb create mode 100644 actionpack/lib/action_controller/abstract/renderer.rb (limited to 'actionpack/lib/action_controller') diff --git a/actionpack/lib/action_controller/abstract/base.rb b/actionpack/lib/action_controller/abstract/base.rb new file mode 100644 index 0000000000..c139531956 --- /dev/null +++ b/actionpack/lib/action_controller/abstract/base.rb @@ -0,0 +1,23 @@ +module AbstractController + class Base + + attr_internal :response_body + attr_internal :response_obj + cattr_accessor :logger + + def self.process(action) + new.process(action) + end + + def initialize + self.response_obj = {} + end + + def process(action) + send(action) + self.response_obj[:body] = self.response_body + self + end + + end +end \ No newline at end of file diff --git a/actionpack/lib/action_controller/abstract/renderer.rb b/actionpack/lib/action_controller/abstract/renderer.rb new file mode 100644 index 0000000000..7999bc1b70 --- /dev/null +++ b/actionpack/lib/action_controller/abstract/renderer.rb @@ -0,0 +1,25 @@ +module AbstractController + module Renderer + + def self.included(klass) + klass.extend ClassMethods + klass.extlib_inheritable_accessor :view_paths + klass.view_paths ||= ActionView::PathSet.new + end + + def _action_view + @_action_view ||= ActionView::Base.new(self.class.view_paths, {}, self) + end + + def render(template) + tmp = view_paths.find_by_parts(template) + self.response_body = _action_view._render_template_with_layout(tmp) + end + + module ClassMethods + def append_view_path(path) + self.view_paths << path + end + end + end +end \ No newline at end of file -- cgit v1.2.3