baby_erubis 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 86a6cc722ec2c51e207330c70c8202f7f6108b07
4
- data.tar.gz: 9f0062ca834b2954323f772dc65e9cb4d8ba5055
3
+ metadata.gz: e4e3e54829bebc2831ffe6e689adb929da5651f1
4
+ data.tar.gz: b96bd245ccfad8a9da0bf544adcd0810faf95cbc
5
5
  SHA512:
6
- metadata.gz: 8f716b9a9866e7d4d9787208f5323cdf58e1c1c22d79ed1a605f4fc4b10f2ae98b3eb6d5a30c5125061497fa91448d2cfd51dd9ac5c9f7e2a960506c24efbc42
7
- data.tar.gz: 2f2753b15878d8ae7dad9eaf3673e972ce970ec04aa1f1c4769c983fbe26ea2f4b354708eebbbb8cd29660d1180fa57906630b8d14016f610718246c65f2f29d
6
+ metadata.gz: c5848f552207930cd84cb1e6babb2de0e102010f623b658e2a845870ab4d7ce0232f2ed0c734bfee32d1492e9c0ec08a29608c14f810d64170785896a707999f
7
+ data.tar.gz: e353121aaabdc3412b71c4dae60f164e7602bf5fedea44a0918bb631681365641e34857abc237971355786e602d7d00246648cd1e55cc02bae4ab4b2c0a5cc3a
data/MIT-LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2014 kuwata-lab.com
3
+ Copyright (c) 2014-2015 kuwata-lab.com
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  BabyErubis.rb
2
2
  =============
3
3
 
4
- $Release: 2.0.0 $
4
+ $Release: 2.1.0 $
5
5
 
6
6
  BabyErubis is an yet another eRuby implementation, based on Erubis.
7
7
 
@@ -199,6 +199,67 @@ You can check syntax of Rails template in command-line:
199
199
  (TODO: How to use BabyErubis in Ruby on Rails instead of Erubis)
200
200
 
201
201
 
202
+ Define Rendering Methods
203
+ ------------------------
204
+
205
+ It is very easy to use BabyErubis as template engine in your app or framework,
206
+ because `BabyErubis/Renderer` module defines rendering methods:
207
+
208
+ require 'baby_erubis'
209
+ require 'baby_erubis/renderer'
210
+
211
+ class MyController
212
+ include BabyErubis::HtmlEscaper
213
+ include BabyErubis::Renderer # !!!!
214
+
215
+ ERUBY_PATH = ['.']
216
+ ERUBY_LAYOUT = :_layout
217
+ ERUBY_HTML = BabyErubis::Html
218
+ ERUBY_HTML_EXT = '.html.eruby'
219
+ ERUBY_TEXT = BabyErubis::Text
220
+ ERUBY_TEXT_EXT = '.eruby'
221
+ ERUBY_CACHE = {}
222
+
223
+ alias render_html eruby_render_html
224
+ alias render_text eruby_render_text
225
+
226
+ def index
227
+ @items = ['A', 'B', 'C']
228
+ ## renders 'templates/welcome.html.eruby'
229
+ html = render_html(:welcome)
230
+ return html
231
+ end
232
+
233
+ end
234
+
235
+ `BabyErubis/Renderer` module defines the following methods:
236
+
237
+ * `eruby_render_html(template_name, layout: true, encoding: 'utf-8')` --
238
+ renders HTML template with layout template.
239
+ `layout` keyword argument is layout template name or boolean and use
240
+ default layout name (= ERUBY_TEMPLATE_LAYOUT) when its value is true.
241
+ * `eruby_render_text(template_name, layout: false, encoding: 'utf-8')` --
242
+ renders plain template.
243
+
244
+ Layout template example:
245
+
246
+ <%
247
+ ## you can specify parent layout template name
248
+ #@_layout = :sitelayout
249
+ %>
250
+ <!doctype html>
251
+ <html>
252
+ <head>
253
+ <meta charset="utf-8" />
254
+ <title><%= @page_title %></title>
255
+ <head>
256
+ <body>
257
+ <div id="main" class="main">
258
+ <%== @_content %> ## or <% _buf << @_content %>
259
+ </div>
260
+ </body>
261
+ </html>
262
+
202
263
 
203
264
  Customizing
204
265
  ===========
@@ -369,6 +430,12 @@ Changes
369
430
  =======
370
431
 
371
432
 
433
+ Release 2.1.0 (2015-10-27)
434
+ --------------------------
435
+
436
+ * [enhance] Add new helper module `BabyErubis::Renderer`
437
+
438
+
372
439
  Release 2.0.0 (2014-12-09)
373
440
  --------------------------
374
441
 
@@ -403,4 +470,4 @@ $License: MIT License $
403
470
  Copyright
404
471
  =========
405
472
 
406
- $Copyright: copyright(c) 2014 kuwata-lab.com all rights reserved $
473
+ $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
data/Rakefile CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  ###
4
4
 
5
- RELEASE = ENV['rel'] || '2.0.0'
6
- COPYRIGHT = 'copyright(c) 2014 kuwata-lab.com all rights reserved'
5
+ RELEASE = ENV['rel'] || '2.1.0'
6
+ COPYRIGHT = 'copyright(c) 2014-2015 kuwata-lab.com all rights reserved'
7
7
  LICENSE = 'MIT License'
8
8
 
9
9
  ###
data/baby_erubis.gemspec CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
3
  ###
4
- ### $Release: 2.0.0 $
4
+ ### $Release: 2.1.0 $
5
5
  ### $License: MIT License $
6
- ### $Copyright: copyright(c) 2014 kuwata-lab.com all rights reserved $
6
+ ### $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
7
7
  ###
8
8
 
9
9
  require 'rubygems'
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  s.name = "baby_erubis"
14
14
  s.author = "makoto kuwata"
15
15
  s.email = "kwa(at)kuwata-lab.com"
16
- s.version = "$Release: 2.0.0 $".split()[1]
16
+ s.version = "$Release: 2.1.0 $".split()[1]
17
17
  s.license = "MIT License"
18
18
  s.platform = Gem::Platform::RUBY
19
19
  s.homepage = "https://github.com/kwatch/BabyErubis/tree/ruby"
data/bin/baby_erubis CHANGED
@@ -2,8 +2,8 @@
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
4
  ###
5
- ### $Release: 2.0.0 $
6
- ### $Copyright: copyright(c) 2014 kuwata-lab.com all rights reserved $
5
+ ### $Release: 2.1.0 $
6
+ ### $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
7
7
  ### $License: MIT License $
8
8
  ###
9
9
 
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 2.0.0 $
5
- ### $Copyright: copyright(c) 2014 kuwata-lab.com all rights reserved $
4
+ ### $Release: 2.1.0 $
5
+ ### $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
8
8
 
data/lib/baby_erubis.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 2.0.0 $
5
- ### $Copyright: copyright(c) 2014 kuwata-lab.com all rights reserved $
4
+ ### $Release: 2.1.0 $
5
+ ### $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
8
8
 
@@ -25,7 +25,11 @@
25
25
 
26
26
  module BabyErubis
27
27
 
28
- RELEASE = '$Release: 2.0.0 $'.split(' ')[1]
28
+ RELEASE = '$Release: 2.1.0 $'.split(' ')[1]
29
+
30
+
31
+ class TemplateError < StandardError
32
+ end
29
33
 
30
34
 
31
35
  class Template
data/test/context_test.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 2.0.0 $
5
- ### $Copyright: copyright(c) 2014 kuwata-lab.com all rights reserved $
4
+ ### $Release: 2.1.0 $
5
+ ### $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
8
8
 
data/test/rails_test.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 2.0.0 $
5
- ### $Copyright: copyright(c) 2014 kuwata-lab.com all rights reserved $
4
+ ### $Release: 2.1.0 $
5
+ ### $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
8
8
 
@@ -0,0 +1,312 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ###
4
+ ### $Release: 2.1.0 $
5
+ ### $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
6
+ ### $License: MIT License $
7
+ ###
8
+
9
+ libpath = File.class_eval { join(dirname(dirname(__FILE__)), 'lib') }
10
+ $: << libpath unless $:.include?(libpath)
11
+
12
+ require 'minitest/autorun'
13
+
14
+ require 'baby_erubis'
15
+ require 'baby_erubis/renderer'
16
+
17
+
18
+ class HelloClass
19
+ include BabyErubis::HtmlEscaper
20
+ include BabyErubis::Renderer
21
+
22
+ ERUBY_PATH = ['_t']
23
+ ERUBY_HTML_EXT = '.html.erb'
24
+ ERUBY_TEXT_EXT = '.erb'
25
+
26
+ def initialize(vars={})
27
+ vars.each do |k, v|
28
+ instance_variable_set("@#{k}", v)
29
+ end
30
+ end
31
+
32
+ end
33
+
34
+
35
+ describe 'BabyErubis::Renderer' do
36
+
37
+ layout_template = <<'END'
38
+ <!doctype>
39
+ <html>
40
+ <head>
41
+ <meta charset="utf-8" />
42
+ <title><%= @page_title %></title>
43
+ </head>
44
+ <body>
45
+ <div id="main" class="main">
46
+ <%== @_content %>
47
+ </div>
48
+ </body>
49
+ </html>
50
+ END
51
+
52
+ html_template = <<'END'
53
+ <%
54
+ @page_title = 'Example'
55
+ %>
56
+ <h1><%= @page_title %></h1>
57
+ <ul>
58
+ <% for x in @items %>
59
+ <li><%= x %></li>
60
+ <% end %>
61
+ </ul>
62
+ END
63
+
64
+ layout2_template = <<'END'
65
+ <%
66
+ @_layout = true
67
+ %>
68
+ <section>
69
+ <%== @_content %>
70
+ </section>
71
+ END
72
+
73
+ text_template = <<'END'
74
+ title: <%= @title %>
75
+ date: <%= @date %>
76
+ END
77
+
78
+ before do
79
+ Dir.mkdir('_t')
80
+ File.open('_t/_layout.html.erb', 'w') {|f| f.write(layout_template) }
81
+ File.open('_t/_layout2.html.erb', 'w') {|f| f.write(layout2_template) }
82
+ File.open('_t/welcome.html.erb', 'w') {|f| f.write(html_template) }
83
+ File.open('_t/example.text.erb', 'w') {|f| f.write(text_template) }
84
+ end
85
+
86
+ after do
87
+ Dir.glob('_t/*').each {|fpath| File.unlink(fpath) if File.file?(fpath) }
88
+ Dir.rmdir('_t')
89
+ end
90
+
91
+
92
+ describe '#eruby_render_html()' do
93
+
94
+ it "renders html template." do
95
+ obj = HelloClass.new(:items=>[10, 20, 30])
96
+ actual = obj.eruby_render_html(:'welcome', layout: false)
97
+ expected = <<'END'
98
+ <h1>Example</h1>
99
+ <ul>
100
+ <li>10</li>
101
+ <li>20</li>
102
+ <li>30</li>
103
+ </ul>
104
+ END
105
+ assert_equal expected, actual
106
+ end
107
+
108
+ it "renders with layout template." do
109
+ obj = HelloClass.new(:items=>[10, 20, 30])
110
+ actual = obj.eruby_render_html(:'welcome', layout: :'_layout')
111
+ expected = <<'END'
112
+ <!doctype>
113
+ <html>
114
+ <head>
115
+ <meta charset="utf-8" />
116
+ <title>Example</title>
117
+ </head>
118
+ <body>
119
+ <div id="main" class="main">
120
+ <h1>Example</h1>
121
+ <ul>
122
+ <li>10</li>
123
+ <li>20</li>
124
+ <li>30</li>
125
+ </ul>
126
+
127
+ </div>
128
+ </body>
129
+ </html>
130
+ END
131
+ assert_equal expected, actual
132
+ end
133
+
134
+ end
135
+
136
+
137
+ describe '#eruby_render_text()' do
138
+
139
+ it "renders text template" do
140
+ obj = HelloClass.new(:title=>"Homhom", :date=>"2015-01-01")
141
+ actual = obj.eruby_render_text(:'example.text', layout: false)
142
+ expected = <<'END'
143
+ title: Homhom
144
+ date: 2015-01-01
145
+ END
146
+ assert_equal expected, actual
147
+ end
148
+
149
+ end
150
+
151
+
152
+ describe '#_eruby_find_template()' do
153
+
154
+ it "caches template object with timestamp." do
155
+ cache = HelloClass.const_get :ERUBY_CACHE
156
+ cache.clear()
157
+ assert_equal 0, cache.length
158
+ obj = HelloClass.new(:items=>[10, 20, 30])
159
+ t1 = Time.now
160
+ obj.eruby_render_html(:'welcome')
161
+ t2 = Time.now
162
+ assert_equal 2, cache.length
163
+ tuple = cache['_t/welcome.html.erb']
164
+ assert tuple.is_a?(Array)
165
+ assert_equal 3, tuple.length
166
+ assert_equal BabyErubis::HtmlTemplate, tuple[0].class
167
+ assert_equal File.mtime('_t/welcome.html.erb'), tuple[1]
168
+ assert t1 < tuple[2]
169
+ assert t2 > tuple[2]
170
+ end
171
+
172
+ it "caches template object with timestamp." do
173
+ cache = HelloClass.const_get :ERUBY_CACHE
174
+ cache.clear()
175
+ obj = HelloClass.new(:items=>[10, 20, 30])
176
+ obj.eruby_render_html(:'welcome')
177
+ tuple1 = cache['_t/welcome.html.erb']
178
+ templ1 = tuple1[0]
179
+ mtime1 = tuple1[1]
180
+ #
181
+ tstamp = Time.now - 30
182
+ File.utime(tstamp, tstamp, '_t/welcome.html.erb')
183
+ sleep(1.0)
184
+ obj.eruby_render_html(:'welcome')
185
+ tuple2 = cache['_t/welcome.html.erb']
186
+ templ2 = tuple2[0]
187
+ mtime2 = tuple2[1]
188
+ assert templ1 != templ2
189
+ assert mtime1 != mtime2
190
+ assert templ2.is_a?(BabyErubis::HtmlTemplate)
191
+ assert_equal tstamp.to_s, mtime2.to_s
192
+ end
193
+
194
+ it "raises BabyErubis::TempalteError when template file not found." do
195
+ obj = HelloClass.new(:items=>[10, 20, 30])
196
+ ex = assert_raises(BabyErubis::TemplateError) do
197
+ obj.eruby_render_html(:'hello-homhom')
198
+ end
199
+ expected = "hello-homhom.html.erb: template not found in [\"_t\"]."
200
+ assert_equal expected, ex.message
201
+ end
202
+
203
+ end
204
+
205
+
206
+ describe '#_eruby_load_template()' do
207
+
208
+ _prepare = proc {
209
+ cache = HelloClass.const_get :ERUBY_CACHE
210
+ cache.clear()
211
+ obj = HelloClass.new(:items=>[10, 20, 30])
212
+ obj.eruby_render_html(:'welcome')
213
+ fpath = '_t/welcome.html.erb'
214
+ ts = Time.now - 30
215
+ File.utime(ts, ts, fpath)
216
+ [cache, obj, fpath]
217
+ }
218
+
219
+ _render = proc {|cache, obj, fpath, n, expected|
220
+ count = 0
221
+ n.times do
222
+ obj.eruby_render_html(:'welcome')
223
+ if expected != cache[fpath]
224
+ count += 1
225
+ cache[fpath] = expected
226
+ end
227
+ end
228
+ count
229
+ }
230
+
231
+ it "skips timestamp check in order to reduce syscall (= File.mtime())" do
232
+ cache, obj, fpath = _prepare.call()
233
+ #
234
+ sleep(0.1)
235
+ count = _render.call(cache, obj, fpath, 1000, cache[fpath])
236
+ assert count == 0, "#{count} == 0: failed"
237
+ end
238
+
239
+ it "checks timestamp only for 5% request in order to avoid thundering herd" do
240
+ cache, obj, fpath = _prepare.call()
241
+ #
242
+ sleep(0.6)
243
+ count = _render.call(cache, obj, fpath, 1000, cache[fpath])
244
+ assert count > 0, "#{count} > 0: failed"
245
+ assert count > 3, "#{count} > 3: failed"
246
+ assert count < 100, "#{count} < 100: failed"
247
+ end
248
+
249
+ it "update last_checked in cache when file timestamp is not changed" do
250
+ cache, obj, fpath = _prepare.call()
251
+ _, _, old_last_checked = cache[fpath]
252
+ #
253
+ sleep(1.0)
254
+ now = Time.now
255
+ obj.eruby_render_html(:'welcome')
256
+ _, _, new_last_checked = cache[fpath]
257
+ assert_operator new_last_checked, :'!=', old_last_checked
258
+ assert_operator (new_last_checked - old_last_checked), :'>=', 1.0
259
+ assert_operator (new_last_checked - now), :'<', 0.001
260
+ end
261
+
262
+ it "remove cache entry when file timestamp is changed" do
263
+ cache, obj, fpath = _prepare.call()
264
+ #
265
+ sleep(1.0)
266
+ count = _render.call(cache, obj, fpath, 1000, cache[fpath])
267
+ assert count == 1000, "#{count} == 1000: failed"
268
+ #
269
+ assert cache[fpath] != nil
270
+ ret = obj.__send__(:_eruby_load_template, cache, fpath, Time.now)
271
+ assert_nil ret
272
+ assert_nil cache[fpath]
273
+ end
274
+
275
+ end
276
+
277
+
278
+ describe '#_eruby_render_template()' do
279
+
280
+ it "recognizes '@_layout' variable" do
281
+ expected = <<'END'
282
+ <!doctype>
283
+ <html>
284
+ <head>
285
+ <meta charset="utf-8" />
286
+ <title>Example</title>
287
+ </head>
288
+ <body>
289
+ <div id="main" class="main">
290
+ <section>
291
+ <h1>Example</h1>
292
+ <ul>
293
+ <li>10</li>
294
+ <li>20</li>
295
+ <li>30</li>
296
+ </ul>
297
+
298
+ </section>
299
+
300
+ </div>
301
+ </body>
302
+ </html>
303
+ END
304
+ obj = HelloClass.new(:items=>[10,20,30])
305
+ actual = obj.eruby_render_html(:'welcome', layout: :'_layout2')
306
+ assert_equal expected, actual
307
+ end
308
+
309
+ end
310
+
311
+
312
+ end
data/test/run_all.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 2.0.0 $
5
- ### $Copyright: copyright(c) 2014 kuwata-lab.com all rights reserved $
4
+ ### $Release: 2.1.0 $
5
+ ### $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
8
8
 
data/test/script_test.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 2.0.0 $
5
- ### $Copyright: copyright(c) 2014 kuwata-lab.com all rights reserved $
4
+ ### $Release: 2.1.0 $
5
+ ### $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
8
8
 
@@ -479,6 +479,7 @@ END
479
479
  end
480
480
  end
481
481
  expected = "-f #{ctx_file}: JSON syntax error: (JSON::ParserError) 743: unexpected token\n"
482
+ expected = expected.sub(/743/, '814') if RUBY_VERSION >= '2.2'
482
483
  expected = expected.sub(/743/, '795') if RUBY_VERSION >= '2.0'
483
484
  assert_equal "", sout
484
485
  assert_equal expected, serr
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 2.0.0 $
5
- ### $Copyright: copyright(c) 2014 kuwata-lab.com all rights reserved $
4
+ ### $Release: 2.1.0 $
5
+ ### $Copyright: copyright(c) 2014-2015 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
8
8
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: baby_erubis
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - makoto kuwata
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-09 00:00:00.000000000 Z
11
+ date: 2015-10-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  BabyErubis is an yet another eRuby implementation, based on Erubis.
@@ -25,19 +25,20 @@ executables:
25
25
  extensions: []
26
26
  extra_rdoc_files: []
27
27
  files:
28
+ - MIT-LICENSE
29
+ - README.md
30
+ - Rakefile
31
+ - baby_erubis.gemspec
32
+ - bin/baby_erubis
28
33
  - lib/baby_erubis.rb
29
34
  - lib/baby_erubis/rails.rb
35
+ - setup.rb
30
36
  - test/context_test.rb
31
37
  - test/rails_test.rb
38
+ - test/renderer_test.rb
32
39
  - test/run_all.rb
33
40
  - test/script_test.rb
34
41
  - test/template_test.rb
35
- - bin/baby_erubis
36
- - README.md
37
- - MIT-LICENSE
38
- - setup.rb
39
- - baby_erubis.gemspec
40
- - Rakefile
41
42
  homepage: https://github.com/kwatch/BabyErubis/tree/ruby
42
43
  licenses:
43
44
  - MIT License
@@ -48,17 +49,17 @@ require_paths:
48
49
  - lib
49
50
  required_ruby_version: !ruby/object:Gem::Requirement
50
51
  requirements:
51
- - - '>='
52
+ - - ">="
52
53
  - !ruby/object:Gem::Version
53
54
  version: '0'
54
55
  required_rubygems_version: !ruby/object:Gem::Requirement
55
56
  requirements:
56
- - - '>='
57
+ - - ">="
57
58
  - !ruby/object:Gem::Version
58
59
  version: '0'
59
60
  requirements: []
60
61
  rubyforge_project:
61
- rubygems_version: 2.0.14
62
+ rubygems_version: 2.4.5.1
62
63
  signing_key:
63
64
  specification_version: 4
64
65
  summary: yet another eRuby implementation based on Erubis