erb 2.2.2 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS.md +5 -0
  3. data/README.md +235 -13
  4. data/erb.gemspec +1 -1
  5. data/lib/erb/version.rb +1 -1
  6. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f3996670474a52bba08a0a8cdeba934a01d09fb7a45047ad14de049823cea90
4
- data.tar.gz: e23035811fc69fb375930eb155ecbf47b67e7991ba7c96fd3c95d6f823e58b6b
3
+ metadata.gz: e39ac89a663f9ec9c2dd46af732f74e814b95167967f5efcf1aa35dbe640ea63
4
+ data.tar.gz: cfceb3434204b17b65d00a0eab2f73e7abca7c1c67bfa7baefeea151346dae5b
5
5
  SHA512:
6
- metadata.gz: '09a2991c267e42f6b46f9c629db1596c3238a711e409099c1b50874ded8752d1dd64a9828b6eaec79796b06dab92d402d408c97b24a06eda3e4b12bb8c9e49ac'
7
- data.tar.gz: 4341ca9b16e9e646121dd7e2da710156c6ce71a15983b6c12daaad6fc43fec918b4c57b15b933ff7e6a94a32894e8a458f580f3371300253cb36aaf955b2e07c
6
+ metadata.gz: d71d4bdcf0f0a027f1897a2c74aa56c728658d96f2f88c5e1e4e3e33d5d5707c514a3ed39946335cf9f94ccd4734ee33ad21a1a8f57b547339ef1b49a81681b4
7
+ data.tar.gz: b85fd09d707a9e92adfd1e8d827cf4c172106cce3f3207495944f8e4fa5b966fb9af2b52053af02e39bd2b1f1db06d9bb00ebe31bc4409b9ff5339a976cee938
data/NEWS.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Change Log
2
2
 
3
+ ## 2.2.2
4
+
5
+ - `ERB.version` returns just a version number
6
+ - `ERB::Revision` is deprecated
7
+
3
8
  ## 2.2.1
4
9
 
5
10
  - `ERB#initialize` warns `safe_level` and later arguments even without -w
data/README.md CHANGED
@@ -2,31 +2,253 @@
2
2
 
3
3
  An easy to use but powerful templating system for Ruby.
4
4
 
5
- ## Installation
5
+ ## Introduction
6
6
 
7
- Add this line to your application's Gemfile:
7
+ ERB provides an easy to use but powerful templating system for Ruby. Using
8
+ ERB, actual Ruby code can be added to any plain text document for the
9
+ purposes of generating document information details and/or flow control.
8
10
 
9
- ```ruby
10
- gem 'erb'
11
+ A very simple example is this:
12
+
13
+ ```rb
14
+ require 'erb'
15
+
16
+ x = 42
17
+ template = ERB.new <<-EOF
18
+ The value of x is: <%= x %>
19
+ EOF
20
+ puts template.result(binding)
21
+ ```
22
+
23
+ Prints: `The value of x is: 42`
24
+
25
+ More complex examples are given below.
26
+
27
+ ## Recognized Tags
28
+
29
+ ERB recognizes certain tags in the provided template and converts them based
30
+ on the rules below:
31
+
32
+ ```erb
33
+ <% Ruby code -- inline with output %>
34
+ <%= Ruby expression -- replace with result %>
35
+ <%# comment -- ignored -- useful in testing %>
36
+ % a line of Ruby code -- treated as <% line %> (optional -- see ERB.new)
37
+ %% replaced with % if first thing on a line and % processing is used
38
+ <%% or %%> -- replace with <% or %> respectively
11
39
  ```
12
40
 
13
- And then execute:
41
+ All other text is passed through ERB filtering unchanged.
42
+
43
+ ## Options
44
+
45
+ There are several settings you can change when you use ERB:
46
+ * the nature of the tags that are recognized;
47
+ * the binding used to resolve local variables in the template.
48
+
49
+ See the ERB.new and ERB#result methods for more detail.
50
+
51
+ ## Character encodings
52
+
53
+ ERB (or Ruby code generated by ERB) returns a string in the same
54
+ character encoding as the input string. When the input string has
55
+ a magic comment, however, it returns a string in the encoding specified
56
+ by the magic comment.
57
+
58
+ ```rb
59
+ # -*- coding: utf-8 -*-
60
+ require 'erb'
61
+
62
+ template = ERB.new <<EOF
63
+ <%#-*- coding: Big5 -*-%>
64
+ __ENCODING__ is <%= __ENCODING__ %>.
65
+ EOF
66
+ puts template.result
67
+ ```
14
68
 
15
- $ bundle install
69
+ Prints: `__ENCODING__ is Big5.`
16
70
 
17
- Or install it yourself as:
71
+ ## Examples
18
72
 
19
- $ gem install erb
73
+ ### Plain Text
20
74
 
21
- ## Development
75
+ ERB is useful for any generic templating situation. Note that in this example, we use the
76
+ convenient "% at start of line" tag, and we quote the template literally with
77
+ `%q{...}` to avoid trouble with the backslash.
78
+
79
+ ```rb
80
+ require "erb"
81
+
82
+ # Create template.
83
+ template = %q{
84
+ From: James Edward Gray II <james@grayproductions.net>
85
+ To: <%= to %>
86
+ Subject: Addressing Needs
87
+
88
+ <%= to[/\w+/] %>:
89
+
90
+ Just wanted to send a quick note assuring that your needs are being
91
+ addressed.
92
+
93
+ I want you to know that my team will keep working on the issues,
94
+ especially:
95
+
96
+ <%# ignore numerous minor requests -- focus on priorities %>
97
+ % priorities.each do |priority|
98
+ * <%= priority %>
99
+ % end
100
+
101
+ Thanks for your patience.
102
+
103
+ James Edward Gray II
104
+ }.gsub(/^ /, '')
105
+
106
+ message = ERB.new(template, trim_mode: "%<>")
107
+
108
+ # Set up template data.
109
+ to = "Community Spokesman <spokesman@ruby_community.org>"
110
+ priorities = [ "Run Ruby Quiz",
111
+ "Document Modules",
112
+ "Answer Questions on Ruby Talk" ]
113
+
114
+ # Produce result.
115
+ email = message.result
116
+ puts email
117
+ ```
118
+
119
+ Generates:
120
+
121
+ ```
122
+ From: James Edward Gray II <james@grayproductions.net>
123
+ To: Community Spokesman <spokesman@ruby_community.org>
124
+ Subject: Addressing Needs
22
125
 
23
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
126
+ Community:
127
+
128
+ Just wanted to send a quick note assuring that your needs are being addressed.
129
+
130
+ I want you to know that my team will keep working on the issues, especially:
131
+
132
+ * Run Ruby Quiz
133
+ * Document Modules
134
+ * Answer Questions on Ruby Talk
135
+
136
+ Thanks for your patience.
137
+
138
+ James Edward Gray II
139
+ ```
140
+
141
+ ### Ruby in HTML
142
+
143
+ ERB is often used in .rhtml files (HTML with embedded Ruby). Notice the need in
144
+ this example to provide a special binding when the template is run, so that the instance
145
+ variables in the Product object can be resolved.
146
+
147
+ ```rb
148
+ require "erb"
149
+
150
+ # Build template data class.
151
+ class Product
152
+ def initialize( code, name, desc, cost )
153
+ @code = code
154
+ @name = name
155
+ @desc = desc
156
+ @cost = cost
157
+
158
+ @features = [ ]
159
+ end
160
+
161
+ def add_feature( feature )
162
+ @features << feature
163
+ end
164
+
165
+ # Support templating of member data.
166
+ def get_binding
167
+ binding
168
+ end
169
+
170
+ # ...
171
+ end
172
+
173
+ # Create template.
174
+ template = %{
175
+ <html>
176
+ <head><title>Ruby Toys -- <%= @name %></title></head>
177
+ <body>
178
+
179
+ <h1><%= @name %> (<%= @code %>)</h1>
180
+ <p><%= @desc %></p>
181
+
182
+ <ul>
183
+ <% @features.each do |f| %>
184
+ <li><b><%= f %></b></li>
185
+ <% end %>
186
+ </ul>
187
+
188
+ <p>
189
+ <% if @cost < 10 %>
190
+ <b>Only <%= @cost %>!!!</b>
191
+ <% else %>
192
+ Call for a price, today!
193
+ <% end %>
194
+ </p>
195
+
196
+ </body>
197
+ </html>
198
+ }.gsub(/^ /, '')
199
+
200
+ rhtml = ERB.new(template)
201
+
202
+ # Set up template data.
203
+ toy = Product.new( "TZ-1002",
204
+ "Rubysapien",
205
+ "Geek's Best Friend! Responds to Ruby commands...",
206
+ 999.95 )
207
+ toy.add_feature("Listens for verbal commands in the Ruby language!")
208
+ toy.add_feature("Ignores Perl, Java, and all C variants.")
209
+ toy.add_feature("Karate-Chop Action!!!")
210
+ toy.add_feature("Matz signature on left leg.")
211
+ toy.add_feature("Gem studded eyes... Rubies, of course!")
212
+
213
+ # Produce result.
214
+ rhtml.run(toy.get_binding)
215
+ ```
216
+
217
+ Generates (some blank lines removed):
218
+
219
+ ```html
220
+ <html>
221
+ <head><title>Ruby Toys -- Rubysapien</title></head>
222
+ <body>
223
+
224
+ <h1>Rubysapien (TZ-1002)</h1>
225
+ <p>Geek's Best Friend! Responds to Ruby commands...</p>
226
+
227
+ <ul>
228
+ <li><b>Listens for verbal commands in the Ruby language!</b></li>
229
+ <li><b>Ignores Perl, Java, and all C variants.</b></li>
230
+ <li><b>Karate-Chop Action!!!</b></li>
231
+ <li><b>Matz signature on left leg.</b></li>
232
+ <li><b>Gem studded eyes... Rubies, of course!</b></li>
233
+ </ul>
234
+
235
+ <p>
236
+ Call for a price, today!
237
+ </p>
238
+
239
+ </body>
240
+ </html>
241
+ ```
24
242
 
25
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
243
+ ## Notes
26
244
 
27
- ## Contributing
245
+ There are a variety of templating solutions available in various Ruby projects.
246
+ For example, RDoc, distributed with Ruby, uses its own template engine, which
247
+ can be reused elsewhere.
28
248
 
29
- Bug reports and pull requests are welcome on GitHub at https://github.com/ruby/erb.
249
+ Other popular engines could be found in the corresponding
250
+ [Category](https://www.ruby-toolbox.com/categories/template_engines) of
251
+ The Ruby Toolbox.
30
252
 
31
253
  ## License
32
254
 
data/erb.gemspec CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.summary = %q{An easy to use but powerful templating system for Ruby.}
15
15
  spec.description = %q{An easy to use but powerful templating system for Ruby.}
16
16
  spec.homepage = 'https://github.com/ruby/erb'
17
- spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
17
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.5.0')
18
18
  spec.licenses = ['Ruby', 'BSD-2-Clause']
19
19
 
20
20
  spec.metadata['homepage_uri'] = spec.homepage
data/lib/erb/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  class ERB
3
- VERSION = '2.2.2'
3
+ VERSION = '2.2.3'
4
4
  private_constant :VERSION
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erb
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masatoshi SEKI
8
8
  autorequire:
9
9
  bindir: libexec
10
10
  cert_chain: []
11
- date: 2021-01-21 00:00:00.000000000 Z
11
+ date: 2021-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -60,14 +60,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: 2.3.0
63
+ version: 2.5.0
64
64
  required_rubygems_version: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  requirements: []
70
- rubygems_version: 3.3.0.dev
70
+ rubygems_version: 3.2.3
71
71
  signing_key:
72
72
  specification_version: 4
73
73
  summary: An easy to use but powerful templating system for Ruby.