diff options
| author | Jon Leighton <j@jonathanleighton.com> | 2010-10-14 10:25:43 +0100 | 
|---|---|---|
| committer | Jon Leighton <j@jonathanleighton.com> | 2010-10-14 10:25:43 +0100 | 
| commit | 3fb493c2b037ffbdda5c91d66334ec6f79faa2d1 (patch) | |
| tree | e49b072103bbfe6fb6159954c786a31f44099325 /actionpack/lib/action_view/renderer/abstract_renderer.rb | |
| parent | 212fdd8ba9624f61421a7a950283537a3d39ac18 (diff) | |
| parent | 01ab6f961bff150d50c99f03fa3946f48ac29b17 (diff) | |
| download | rails-3fb493c2b037ffbdda5c91d66334ec6f79faa2d1.tar.gz rails-3fb493c2b037ffbdda5c91d66334ec6f79faa2d1.tar.bz2 rails-3fb493c2b037ffbdda5c91d66334ec6f79faa2d1.zip | |
Merge branch 'master' into nested_has_many_through
Conflicts:
	activerecord/lib/active_record/associations.rb
	activerecord/test/cases/associations/cascaded_eager_loading_test.rb
Diffstat (limited to 'actionpack/lib/action_view/renderer/abstract_renderer.rb')
| -rw-r--r-- | actionpack/lib/action_view/renderer/abstract_renderer.rb | 36 | 
1 files changed, 36 insertions, 0 deletions
| diff --git a/actionpack/lib/action_view/renderer/abstract_renderer.rb b/actionpack/lib/action_view/renderer/abstract_renderer.rb new file mode 100644 index 0000000000..77cfa51dff --- /dev/null +++ b/actionpack/lib/action_view/renderer/abstract_renderer.rb @@ -0,0 +1,36 @@ +module ActionView +  class AbstractRenderer #:nodoc: +    attr_reader :vew, :lookup_context + +    delegate :find_template, :template_exists?, :with_fallbacks, :update_details, +      :with_layout_format, :formats, :to => :lookup_context + +    def initialize(view) +      @view = view +      @lookup_context = view.lookup_context +    end + +    def render +      raise NotImplementedError +    end + +    # Checks if the given path contains a format and if so, change +    # the lookup context to take this new format into account. +    def wrap_formats(value) +      return yield unless value.is_a?(String) +      @@formats_regexp ||= /\.(#{Mime::SET.symbols.join('|')})$/ + +      if value.sub!(@@formats_regexp, "") +        update_details(:formats => [$1.to_sym]){ yield } +      else +        yield +      end +    end + +    protected + +    def instrument(name, options={}) +      ActiveSupport::Notifications.instrument("render_#{name}.action_view", options){ yield } +    end +  end +end
\ No newline at end of file | 
