Module: ActionView::Helpers::CaptureHelper
- Defined in:
- lib/dry_views/rails3_two.rb,
lib/dry_views/rails3_zero.rb
Instance Method Summary collapse
- #content_for_with_default(name, *args, &block) ⇒ Object
-
#content_for_with_empty_check(name, content = nil, &block) ⇒ Object
Override file actionpack/lib/action_view/helpers/capture_helper.rb, line 136 If the empty check has already been performed (as content_for_with_default), you can call content_for_without_empty_check to bypass a duplicate check.
-
#content_for_with_empty_check?(name) ⇒ Boolean
Override file actionpack/lib/action_view/helpers/capture_helper.rb, line 175.
-
#no_content_for(name) ⇒ Object
Custom method (not overriding anything in Rails).
Instance Method Details
#content_for_with_default(name, *args, &block) ⇒ Object
Reference: api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html
Custom method (not overriding anything in Rails)
In a template/layout
= content_for_with_default :my_default_content, :partial => 'layouts/my_default_content'
Override in a nested layout/template/partial:
= content_for :my_default_content do
= render :partial => 'layouts/my_custom_content', :collection => my_stuff, :as => :stuff
All params after the first will be used as options for the default render
= content_for_with_default :my_default_content, :partial => 'some/partial', :locals => {:variable => 'Some Text'}
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/dry_views/rails3_two.rb', line 22 def content_for_with_default(name, *args, &block) if content_check = content_for?(name) # returns true, false, or :empty content_for_without_empty_check(name) unless content_check == :empty # when content_check is :empty, does nothing elsif block_given? content_for_without_empty_check(name, yield) # No need to recheck for empty here, as initial condition handles the :empty case else = args. # Supports the default API of with content as the second param, content_for(name, content = nil, &block) if .empty? content_for_without_empty_check(name, args.first) # No need to recheck for empty here, as initial condition handles the :empty case else render end end end |
#content_for_with_empty_check(name, content = nil, &block) ⇒ Object
Override file actionpack/lib/action_view/helpers/capture_helper.rb, line 136 If the empty check has already been performed (as content_for_with_default), you can call content_for_without_empty_check to bypass a duplicate check
40 41 42 43 44 45 46 47 |
# File 'lib/dry_views/rails3_two.rb', line 40 def content_for_with_empty_check(name, content = nil, &block) if content_for?(name) == :empty # Some preceding layout or template has already specified that there is to be no content for this name, and that is FINAL. return nil else content_for_without_empty_check(name, content, &block) end end |
#content_for_with_empty_check?(name) ⇒ Boolean
Override file actionpack/lib/action_view/helpers/capture_helper.rb, line 175
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/dry_views/rails3_two.rb', line 51 def content_for_with_empty_check?(name) if @view_flow.get(name) == DryViews::EMPTY_CONTENT #add a check for empty, and return :empty, so we can switch on it for empty content return :empty elsif content_for_without_empty_check?(name) return true else return false end end |
#no_content_for(name) ⇒ Object
Custom method (not overriding anything in Rails)
64 65 66 |
# File 'lib/dry_views/rails3_two.rb', line 64 def no_content_for(name) @view_flow.append!(name, DryViews::EMPTY_CONTENT) end |