stdlib/erb/0/erb.rbs in rbs-2.2.2 vs stdlib/erb/0/erb.rbs in rbs-2.3.0
- old
+ new
@@ -1,4 +1,241 @@
+# <!-- rdoc-file=lib/erb.rb -->
+# # ERB -- Ruby Templating
+#
+# ## Introduction
+#
+# ERB provides an easy to use but powerful templating system for Ruby. Using
+# ERB, actual Ruby code can be added to any plain text document for the purposes
+# of generating document information details and/or flow control.
+#
+# A very simple example is this:
+#
+# require 'erb'
+#
+# x = 42
+# template = ERB.new <<-EOF
+# The value of x is: <%= x %>
+# EOF
+# puts template.result(binding)
+#
+# *Prints:* The value of x is: 42
+#
+# More complex examples are given below.
+#
+# ## Recognized Tags
+#
+# ERB recognizes certain tags in the provided template and converts them based
+# on the rules below:
+#
+# <% Ruby code -- inline with output %>
+# <%= Ruby expression -- replace with result %>
+# <%# comment -- ignored -- useful in testing %> (`<% #` doesn't work. Don't use Ruby comments.)
+# % a line of Ruby code -- treated as <% line %> (optional -- see ERB.new)
+# %% replaced with % if first thing on a line and % processing is used
+# <%% or %%> -- replace with <% or %> respectively
+#
+# All other text is passed through ERB filtering unchanged.
+#
+# ## Options
+#
+# There are several settings you can change when you use ERB:
+# * the nature of the tags that are recognized;
+# * the binding used to resolve local variables in the template.
+#
+#
+# See the ERB.new and ERB#result methods for more detail.
+#
+# ## Character encodings
+#
+# ERB (or Ruby code generated by ERB) returns a string in the same character
+# encoding as the input string. When the input string has a magic comment,
+# however, it returns a string in the encoding specified by the magic comment.
+#
+# # -*- coding: utf-8 -*-
+# require 'erb'
+#
+# template = ERB.new <<EOF
+# <%#-*- coding: Big5 -*-%>
+# \_\_ENCODING\_\_ is <%= \_\_ENCODING\_\_ %>.
+# EOF
+# puts template.result
+#
+# *Prints:* _*ENCODING*_ is Big5.
+#
+# ## Examples
+#
+# ### Plain Text
+#
+# ERB is useful for any generic templating situation. Note that in this
+# example, we use the convenient "% at start of line" tag, and we quote the
+# template literally with `%q{...}` to avoid trouble with the backslash.
+#
+# require "erb"
+#
+# # Create template.
+# template = %q{
+# From: James Edward Gray II <james@grayproductions.net>
+# To: <%= to %>
+# Subject: Addressing Needs
+#
+# <%= to[/\w+/] %>:
+#
+# Just wanted to send a quick note assuring that your needs are being
+# addressed.
+#
+# I want you to know that my team will keep working on the issues,
+# especially:
+#
+# <%# ignore numerous minor requests -- focus on priorities %>
+# % priorities.each do |priority|
+# * <%= priority %>
+# % end
+#
+# Thanks for your patience.
+#
+# James Edward Gray II
+# }.gsub(/^ /, '')
+#
+# message = ERB.new(template, trim_mode: "%<>")
+#
+# # Set up template data.
+# to = "Community Spokesman <spokesman@ruby_community.org>"
+# priorities = [ "Run Ruby Quiz",
+# "Document Modules",
+# "Answer Questions on Ruby Talk" ]
+#
+# # Produce result.
+# email = message.result
+# puts email
+#
+# *Generates:*
+#
+# From: James Edward Gray II <james@grayproductions.net>
+# To: Community Spokesman <spokesman@ruby_community.org>
+# Subject: Addressing Needs
+#
+# Community:
+#
+# Just wanted to send a quick note assuring that your needs are being addressed.
+#
+# I want you to know that my team will keep working on the issues, especially:
+#
+# * Run Ruby Quiz
+# * Document Modules
+# * Answer Questions on Ruby Talk
+#
+# Thanks for your patience.
+#
+# James Edward Gray II
+#
+# ### Ruby in HTML
+#
+# ERB is often used in `.rhtml` files (HTML with embedded Ruby). Notice the
+# need in this example to provide a special binding when the template is run, so
+# that the instance variables in the Product object can be resolved.
+#
+# require "erb"
+#
+# # Build template data class.
+# class Product
+# def initialize( code, name, desc, cost )
+# @code = code
+# @name = name
+# @desc = desc
+# @cost = cost
+#
+# @features = [ ]
+# end
+#
+# def add_feature( feature )
+# @features << feature
+# end
+#
+# # Support templating of member data.
+# def get_binding
+# binding
+# end
+#
+# # ...
+# end
+#
+# # Create template.
+# template = %{
+# <html>
+# <head><title>Ruby Toys -- <%= @name %></title></head>
+# <body>
+#
+# <h1><%= @name %> (<%= @code %>)</h1>
+# <p><%= @desc %></p>
+#
+# <ul>
+# <% @features.each do |f| %>
+# <li><b><%= f %></b></li>
+# <% end %>
+# </ul>
+#
+# <p>
+# <% if @cost < 10 %>
+# <b>Only <%= @cost %>!!!</b>
+# <% else %>
+# Call for a price, today!
+# <% end %>
+# </p>
+#
+# </body>
+# </html>
+# }.gsub(/^ /, '')
+#
+# rhtml = ERB.new(template)
+#
+# # Set up template data.
+# toy = Product.new( "TZ-1002",
+# "Rubysapien",
+# "Geek's Best Friend! Responds to Ruby commands...",
+# 999.95 )
+# toy.add_feature("Listens for verbal commands in the Ruby language!")
+# toy.add_feature("Ignores Perl, Java, and all C variants.")
+# toy.add_feature("Karate-Chop Action!!!")
+# toy.add_feature("Matz signature on left leg.")
+# toy.add_feature("Gem studded eyes... Rubies, of course!")
+#
+# # Produce result.
+# rhtml.run(toy.get_binding)
+#
+# *Generates (some blank lines removed):*
+#
+# <html>
+# <head><title>Ruby Toys -- Rubysapien</title></head>
+# <body>
+#
+# <h1>Rubysapien (TZ-1002)</h1>
+# <p>Geek's Best Friend! Responds to Ruby commands...</p>
+#
+# <ul>
+# <li><b>Listens for verbal commands in the Ruby language!</b></li>
+# <li><b>Ignores Perl, Java, and all C variants.</b></li>
+# <li><b>Karate-Chop Action!!!</b></li>
+# <li><b>Matz signature on left leg.</b></li>
+# <li><b>Gem studded eyes... Rubies, of course!</b></li>
+# </ul>
+#
+# <p>
+# Call for a price, today!
+# </p>
+#
+# </body>
+# </html>
+#
+# ## Notes
+#
+# There are a variety of templating solutions available in various Ruby
+# projects. For example, RDoc, distributed with Ruby, uses its own template
+# engine, which can be reused elsewhere.
+#
+# Other popular engines could be found in the corresponding
+# [Category](https://www.ruby-toolbox.com/categories/template_engines) of The
+# Ruby Toolbox.
+#
class ERB
# <!--
# rdoc-file=lib/erb.rb
# - version()
# -->