Module: Sinatra::Templates
- Included in:
- Base
- Defined in:
- lib/sinatra/base.rb
Overview
Template rendering methods. Each method takes the name of a template to render as a Symbol and returns a String with the rendered output, as well as an optional hash with additional options.
template
is either the name or path of the template as symbol
(Use :'subdir/myview'
for views in subdirectories), or a string
that will be rendered.
Possible options are:
:content_type The content type to use, same arguments as content_type.
:layout If set to something falsy, no layout is rendered, otherwise
the specified layout is used (Ignored for sass
and less
)
:layout_engine Engine to use for rendering the layout.
:locals A hash with local variables that should be available
in the template
:scope If set, template is evaluate with the binding of the given
object rather than the application instance.
:views Views directory to use.
Defined Under Namespace
Modules: ContentTyped
Instance Method Summary collapse
- #asciidoc(template, options = {}, locals = {}) ⇒ Object
- #builder(template = nil, options = {}, locals = {}, &block) ⇒ Object
- #coffee(template, options = {}, locals = {}) ⇒ Object
- #creole(template, options = {}, locals = {}) ⇒ Object
- #erb(template, options = {}, locals = {}, &block) ⇒ Object
- #erubis(template, options = {}, locals = {}) ⇒ Object
-
#find_template(views, name, engine) {|::File.join(views, "#{name}.#{@preferred_extension}")| ... } ⇒ Object
Calls the given block for every possible template file in views, named name.ext, where ext is registered on engine.
- #haml(template, options = {}, locals = {}, &block) ⇒ Object
- #initialize ⇒ Object
- #less(template, options = {}, locals = {}) ⇒ Object
- #liquid(template, options = {}, locals = {}, &block) ⇒ Object
- #markaby(template = nil, options = {}, locals = {}, &block) ⇒ Object
- #markdown(template, options = {}, locals = {}) ⇒ Object
- #mediawiki(template, options = {}, locals = {}) ⇒ Object
- #nokogiri(template = nil, options = {}, locals = {}, &block) ⇒ Object
- #rabl(template, options = {}, locals = {}) ⇒ Object
- #radius(template, options = {}, locals = {}) ⇒ Object
- #rdoc(template, options = {}, locals = {}) ⇒ Object
- #sass(template, options = {}, locals = {}) ⇒ Object
- #scss(template, options = {}, locals = {}) ⇒ Object
- #slim(template, options = {}, locals = {}, &block) ⇒ Object
- #stylus(template, options = {}, locals = {}) ⇒ Object
- #textile(template, options = {}, locals = {}) ⇒ Object
- #wlang(template, options = {}, locals = {}, &block) ⇒ Object
- #yajl(template, options = {}, locals = {}) ⇒ Object
Instance Method Details
#asciidoc(template, options = {}, locals = {}) ⇒ Object
736 737 738 |
# File 'lib/sinatra/base.rb', line 736 def asciidoc(template, = {}, locals = {}) render :asciidoc, template, , locals end |
#builder(template = nil, options = {}, locals = {}, &block) ⇒ Object
715 716 717 718 |
# File 'lib/sinatra/base.rb', line 715 def builder(template = nil, = {}, locals = {}, &block) [:default_content_type] = :xml render_ruby(:builder, template, , locals, &block) end |
#coffee(template, options = {}, locals = {}) ⇒ Object
748 749 750 751 |
# File 'lib/sinatra/base.rb', line 748 def coffee(template, = {}, locals = {}) .merge! :layout => false, :default_content_type => :js render :coffee, template, , locals end |
#creole(template, options = {}, locals = {}) ⇒ Object
762 763 764 |
# File 'lib/sinatra/base.rb', line 762 def creole(template, = {}, locals = {}) render :creole, template, , locals end |
#erb(template, options = {}, locals = {}, &block) ⇒ Object
681 682 683 |
# File 'lib/sinatra/base.rb', line 681 def erb(template, = {}, locals = {}, &block) render(:erb, template, , locals, &block) end |
#erubis(template, options = {}, locals = {}) ⇒ Object
685 686 687 688 689 |
# File 'lib/sinatra/base.rb', line 685 def erubis(template, = {}, locals = {}) warn "Sinatra::Templates#erubis is deprecated and will be removed, use #erb instead.\n" \ "If you have Erubis installed, it will be used automatically." render :erubis, template, , locals end |
#find_template(views, name, engine) {|::File.join(views, "#{name}.#{@preferred_extension}")| ... } ⇒ Object
Calls the given block for every possible template file in views, named name.ext, where ext is registered on engine.
786 787 788 789 790 791 792 793 794 795 796 797 798 799 |
# File 'lib/sinatra/base.rb', line 786 def find_template(views, name, engine) yield ::File.join(views, "#{name}.#{@preferred_extension}") if Tilt.respond_to?(:mappings) Tilt.mappings.each do |ext, engines| next unless ext != @preferred_extension and engines.include? engine yield ::File.join(views, "#{name}.#{ext}") end else Tilt.default_mapping.extensions_for(engine).each do |ext| yield ::File.join(views, "#{name}.#{ext}") unless ext == @preferred_extension end end end |
#haml(template, options = {}, locals = {}, &block) ⇒ Object
691 692 693 |
# File 'lib/sinatra/base.rb', line 691 def haml(template, = {}, locals = {}, &block) render(:haml, template, , locals, &block) end |
#initialize ⇒ Object
675 676 677 678 679 |
# File 'lib/sinatra/base.rb', line 675 def initialize super @default_layout = :layout @preferred_extension = nil end |
#less(template, options = {}, locals = {}) ⇒ Object
705 706 707 708 |
# File 'lib/sinatra/base.rb', line 705 def less(template, = {}, locals = {}) .merge! :layout => false, :default_content_type => :css render :less, template, , locals end |
#liquid(template, options = {}, locals = {}, &block) ⇒ Object
720 721 722 |
# File 'lib/sinatra/base.rb', line 720 def liquid(template, = {}, locals = {}, &block) render(:liquid, template, , locals, &block) end |
#markaby(template = nil, options = {}, locals = {}, &block) ⇒ Object
744 745 746 |
# File 'lib/sinatra/base.rb', line 744 def markaby(template = nil, = {}, locals = {}, &block) render_ruby(:mab, template, , locals, &block) end |
#markdown(template, options = {}, locals = {}) ⇒ Object
724 725 726 |
# File 'lib/sinatra/base.rb', line 724 def markdown(template, = {}, locals = {}) render :markdown, template, , locals end |
#mediawiki(template, options = {}, locals = {}) ⇒ Object
766 767 768 |
# File 'lib/sinatra/base.rb', line 766 def mediawiki(template, = {}, locals = {}) render :mediawiki, template, , locals end |
#nokogiri(template = nil, options = {}, locals = {}, &block) ⇒ Object
753 754 755 756 |
# File 'lib/sinatra/base.rb', line 753 def nokogiri(template = nil, = {}, locals = {}, &block) [:default_content_type] = :xml render_ruby(:nokogiri, template, , locals, &block) end |
#rabl(template, options = {}, locals = {}) ⇒ Object
779 780 781 782 |
# File 'lib/sinatra/base.rb', line 779 def rabl(template, = {}, locals = {}) Rabl.register! render :rabl, template, , locals end |
#radius(template, options = {}, locals = {}) ⇒ Object
740 741 742 |
# File 'lib/sinatra/base.rb', line 740 def radius(template, = {}, locals = {}) render :radius, template, , locals end |
#rdoc(template, options = {}, locals = {}) ⇒ Object
732 733 734 |
# File 'lib/sinatra/base.rb', line 732 def rdoc(template, = {}, locals = {}) render :rdoc, template, , locals end |
#sass(template, options = {}, locals = {}) ⇒ Object
695 696 697 698 |
# File 'lib/sinatra/base.rb', line 695 def sass(template, = {}, locals = {}) .merge! :layout => false, :default_content_type => :css render :sass, template, , locals end |
#scss(template, options = {}, locals = {}) ⇒ Object
700 701 702 703 |
# File 'lib/sinatra/base.rb', line 700 def scss(template, = {}, locals = {}) .merge! :layout => false, :default_content_type => :css render :scss, template, , locals end |
#slim(template, options = {}, locals = {}, &block) ⇒ Object
758 759 760 |
# File 'lib/sinatra/base.rb', line 758 def slim(template, = {}, locals = {}, &block) render(:slim, template, , locals, &block) end |
#stylus(template, options = {}, locals = {}) ⇒ Object
710 711 712 713 |
# File 'lib/sinatra/base.rb', line 710 def stylus(template, = {}, locals = {}) .merge! :layout => false, :default_content_type => :css render :styl, template, , locals end |
#textile(template, options = {}, locals = {}) ⇒ Object
728 729 730 |
# File 'lib/sinatra/base.rb', line 728 def textile(template, = {}, locals = {}) render :textile, template, , locals end |
#wlang(template, options = {}, locals = {}, &block) ⇒ Object
770 771 772 |
# File 'lib/sinatra/base.rb', line 770 def wlang(template, = {}, locals = {}, &block) render(:wlang, template, , locals, &block) end |
#yajl(template, options = {}, locals = {}) ⇒ Object
774 775 776 777 |
# File 'lib/sinatra/base.rb', line 774 def yajl(template, = {}, locals = {}) [:default_content_type] = :json render :yajl, template, , locals end |