aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorStormwind <stormwind@stormwinds-page.de>2012-11-23 18:10:27 +0100
committerStormwind <stormwind@stormwinds-page.de>2012-11-23 18:10:27 +0100
commit1b96ebb36d4cb41e33e877b15b865332aaca8fa5 (patch)
tree06577d14c7757f0d0abb810184b81c72cad36077 /lib
parenta2e6c299cd15b8335441e3b5ba07fe95256f3a2d (diff)
parent495d8f650302d5226cd677b062891ea9021483d5 (diff)
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'lib')
-rw-r--r--lib/zero/controller.rb14
-rw-r--r--lib/zero/renderer.rb52
2 files changed, 42 insertions, 24 deletions
diff --git a/lib/zero/controller.rb b/lib/zero/controller.rb
index 3c3af8c..5784aa0 100644
--- a/lib/zero/controller.rb
+++ b/lib/zero/controller.rb
@@ -7,7 +7,7 @@ module Zero
class Controller
# initialize a new instance of the controller and call response on it
def self.call(env)
- new(Rack::Request.new(env)).response
+ new(Zero::Request.new(env)).response
end
# initialize the controller
@@ -20,7 +20,17 @@ module Zero
# build the response and return it
# @return Response a rack conform response
def response
- raise NotImplementedError.new("Not Implemented in ${__FILE__}")
+ process if respond_to?(:process)
+ render
+ @response
+ end
+
+ def process
+ raise NotImplementedError.new("'render' not implemented in #{self.class}")
+ end
+
+ def process
+ raise NotImplementedError.new("'render' not implemented in #{self.class}")
end
end
end
diff --git a/lib/zero/renderer.rb b/lib/zero/renderer.rb
index 740d156..40a9bed 100644
--- a/lib/zero/renderer.rb
+++ b/lib/zero/renderer.rb
@@ -14,30 +14,32 @@ module Zero
# The call to #render will return the String representation of the template
# with all data given.
class Renderer
- # set a base path for template search
- # @param path [String] the path to the template base dir
- def self.template_path=(path)
- @@path = path + '/'
- end
+ class << self
+ # set a base path for template search
+ # @param path [String] the path to the template base dir
+ def template_path=(path)
+ @@path = path + '/'
+ end
- # save a mapping hash for the type
- #
- # With that it is possible to map long and complex contant types to simpler
- # representations. These get then used in the finding process for the best
- # fitting template.
- #
- # @example
- # Zero::Renderer.map = {'text/html' => 'html'}
- #
- # @param map [Hash] maps the content type to a simple representation
- def self.type_map=(map)
- @@map = map
- end
+ # save a mapping hash for the type
+ #
+ # With that it is possible to map long and complex contant types to simpler
+ # representations. These get then used in the finding process for the best
+ # fitting template.
+ #
+ # @example
+ # Zero::Renderer.map = {'text/html' => 'html'}
+ #
+ # @param map [Hash] maps the content type to a simple representation
+ def type_map=(map)
+ @@map = map
+ end
- # returns the type map
- # @return [Hash] the mapping for types
- def self.type_map
- @@map ||= {}
+ # returns the type map
+ # @return [Hash] the mapping for types
+ def type_map
+ @@map ||= {}
+ end
end
# take the path and render the template within the context
@@ -72,6 +74,12 @@ module Zero
raise FileNotFoundError.new("Template '#{template_path}' not found!")
end
+ # @see transform
+ # @api private
+ def transform(string)
+ self.class.transform(string)
+ end
+
# transform a type into a simpler representation
# @api private
# @param string [String] the original type name