diff options
author | Stormwind <stormwind@stormwinds-page.de> | 2012-11-23 18:10:27 +0100 |
---|---|---|
committer | Stormwind <stormwind@stormwinds-page.de> | 2012-11-23 18:10:27 +0100 |
commit | 1b96ebb36d4cb41e33e877b15b865332aaca8fa5 (patch) | |
tree | 06577d14c7757f0d0abb810184b81c72cad36077 /lib | |
parent | a2e6c299cd15b8335441e3b5ba07fe95256f3a2d (diff) | |
parent | 495d8f650302d5226cd677b062891ea9021483d5 (diff) |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'lib')
-rw-r--r-- | lib/zero/controller.rb | 14 | ||||
-rw-r--r-- | lib/zero/renderer.rb | 52 |
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 |