html2rss 0.3.3 → 0.4.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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +18 -11
  3. data/.travis.yml +3 -3
  4. data/.yardopts +6 -0
  5. data/Gemfile.lock +23 -5
  6. data/README.md +2 -1
  7. data/docs/Html2rss.html +353 -0
  8. data/docs/Html2rss/AttributePostProcessors.html +203 -0
  9. data/docs/Html2rss/AttributePostProcessors/ParseTime.html +332 -0
  10. data/docs/Html2rss/AttributePostProcessors/ParseUri.html +314 -0
  11. data/docs/Html2rss/AttributePostProcessors/SanitizeHtml.html +346 -0
  12. data/docs/Html2rss/AttributePostProcessors/Substring.html +321 -0
  13. data/docs/Html2rss/AttributePostProcessors/Template.html +336 -0
  14. data/docs/Html2rss/Config.html +795 -0
  15. data/docs/Html2rss/FeedBuilder.html +295 -0
  16. data/docs/Html2rss/Item.html +654 -0
  17. data/docs/Html2rss/ItemExtractors.html +297 -0
  18. data/docs/Html2rss/ItemExtractors/Attribute.html +317 -0
  19. data/docs/Html2rss/ItemExtractors/CurrentTime.html +297 -0
  20. data/docs/Html2rss/ItemExtractors/Href.html +319 -0
  21. data/docs/Html2rss/ItemExtractors/Html.html +314 -0
  22. data/docs/Html2rss/ItemExtractors/Static.html +301 -0
  23. data/docs/Html2rss/ItemExtractors/Text.html +312 -0
  24. data/docs/Html2rss/Utils.html +115 -0
  25. data/docs/Html2rss/Utils/IndifferentAccessHash.html +142 -0
  26. data/docs/_index.html +300 -0
  27. data/docs/class_list.html +51 -0
  28. data/docs/css/common.css +1 -0
  29. data/docs/css/full_list.css +58 -0
  30. data/docs/css/style.css +496 -0
  31. data/docs/file.README.html +135 -0
  32. data/docs/file_list.html +56 -0
  33. data/docs/frames.html +17 -0
  34. data/docs/index.html +135 -0
  35. data/docs/js/app.js +303 -0
  36. data/docs/js/full_list.js +216 -0
  37. data/docs/js/jquery.js +4 -0
  38. data/docs/method_list.html +435 -0
  39. data/docs/top-level-namespace.html +110 -0
  40. data/html2rss.gemspec +3 -0
  41. data/lib/html2rss.rb +19 -4
  42. data/lib/html2rss/attribute_post_processors.rb +5 -3
  43. data/lib/html2rss/attribute_post_processors/parse_time.rb +29 -3
  44. data/lib/html2rss/attribute_post_processors/parse_uri.rb +20 -1
  45. data/lib/html2rss/attribute_post_processors/sanitize_html.rb +65 -3
  46. data/lib/html2rss/attribute_post_processors/substring.rb +24 -3
  47. data/lib/html2rss/attribute_post_processors/template.rb +37 -10
  48. data/lib/html2rss/config.rb +11 -12
  49. data/lib/html2rss/feed_builder.rb +8 -6
  50. data/lib/html2rss/item.rb +28 -19
  51. data/lib/html2rss/item_extractors.rb +29 -0
  52. data/lib/html2rss/item_extractors/attribute.rb +37 -0
  53. data/lib/html2rss/item_extractors/current_time.rb +21 -0
  54. data/lib/html2rss/item_extractors/href.rb +36 -0
  55. data/lib/html2rss/item_extractors/html.rb +34 -0
  56. data/lib/html2rss/item_extractors/static.rb +28 -0
  57. data/lib/html2rss/item_extractors/text.rb +32 -0
  58. data/lib/html2rss/utils.rb +25 -0
  59. data/lib/html2rss/version.rb +1 -1
  60. metadata +88 -4
  61. data/lib/html2rss/item_extractor.rb +0 -37
@@ -0,0 +1,314 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: Html2rss::AttributePostProcessors::ParseUri
8
+
9
+ &mdash; Documentation by YARD 0.9.20
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "Html2rss::AttributePostProcessors::ParseUri";
19
+ relpath = '../../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../../_index.html">Index (P)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../../Html2rss.html" title="Html2rss (module)">Html2rss</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../AttributePostProcessors.html" title="Html2rss::AttributePostProcessors (module)">AttributePostProcessors</a></span></span>
41
+ &raquo;
42
+ <span class="title">ParseUri</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: Html2rss::AttributePostProcessors::ParseUri
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName">Object</span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">Html2rss::AttributePostProcessors::ParseUri</li>
78
+
79
+ </ul>
80
+ <a href="#" class="inheritanceTree">show all</a>
81
+
82
+ </dd>
83
+ </dl>
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dl>
96
+ <dt>Defined in:</dt>
97
+ <dd>lib/html2rss/attribute_post_processors/parse_uri.rb</dd>
98
+ </dl>
99
+
100
+ </div>
101
+
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
104
+
105
+ <p>Returns the URI as String.</p>
106
+
107
+ <p>Imagine this HTML structure:</p>
108
+
109
+ <pre class="code ruby"><code class="ruby">&lt;span&gt;http://why-not-use-a-link.uh&lt;/span&gt;
110
+ </code></pre>
111
+
112
+ <p>YAML usage example:</p>
113
+
114
+ <pre class="code ruby"><code class="ruby">selectors:
115
+ link:
116
+ selector: span
117
+ extractor: text
118
+ post_process:
119
+ name: parse_uri
120
+ </code></pre>
121
+
122
+ <p>Would return:</p>
123
+
124
+ <pre class="code ruby"><code class="ruby"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>http://why-not-use-a-link.uh</span><span class='tstring_end'>&#39;</span></span>
125
+ </code></pre>
126
+
127
+
128
+ </div>
129
+ </div>
130
+ <div class="tags">
131
+
132
+
133
+ </div>
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+ <h2>
142
+ Instance Method Summary
143
+ <small><a href="#" class="summary_toggle">collapse</a></small>
144
+ </h2>
145
+
146
+ <ul class="summary">
147
+
148
+ <li class="public ">
149
+ <span class="summary_signature">
150
+
151
+ <a href="#get-instance_method" title="#get (instance method)">#<strong>get</strong> &#x21d2; String </a>
152
+
153
+
154
+
155
+ </span>
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+ <span class="summary_desc"><div class='inline'></div></span>
166
+
167
+ </li>
168
+
169
+
170
+ <li class="public ">
171
+ <span class="summary_signature">
172
+
173
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(value, _options, _item) &#x21d2; ParseUri </a>
174
+
175
+
176
+
177
+ </span>
178
+
179
+
180
+ <span class="note title constructor">constructor</span>
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+ <span class="summary_desc"><div class='inline'>
190
+ <p>A new instance of ParseUri.</p>
191
+ </div></span>
192
+
193
+ </li>
194
+
195
+
196
+ </ul>
197
+
198
+
199
+ <div id="constructor_details" class="method_details_list">
200
+ <h2>Constructor Details</h2>
201
+
202
+ <div class="method_details first">
203
+ <h3 class="signature first" id="initialize-instance_method">
204
+
205
+ #<strong>initialize</strong>(value, _options, _item) &#x21d2; <tt><span class='object_link'><a href="" title="Html2rss::AttributePostProcessors::ParseUri (class)">ParseUri</a></span></tt>
206
+
207
+
208
+
209
+
210
+
211
+ </h3><div class="docstring">
212
+ <div class="discussion">
213
+
214
+ <p>Returns a new instance of ParseUri</p>
215
+
216
+
217
+ </div>
218
+ </div>
219
+ <div class="tags">
220
+
221
+
222
+ </div><table class="source_code">
223
+ <tr>
224
+ <td>
225
+ <pre class="lines">
226
+
227
+
228
+ 21
229
+ 22
230
+ 23</pre>
231
+ </td>
232
+ <td>
233
+ <pre class="code"><span class="info file"># File 'lib/html2rss/attribute_post_processors/parse_uri.rb', line 21</span>
234
+
235
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid__options'>_options</span><span class='comma'>,</span> <span class='id identifier rubyid__item'>_item</span><span class='rparen'>)</span>
236
+ <span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
237
+ <span class='kw'>end</span></pre>
238
+ </td>
239
+ </tr>
240
+ </table>
241
+ </div>
242
+
243
+ </div>
244
+
245
+
246
+ <div id="instance_method_details" class="method_details_list">
247
+ <h2>Instance Method Details</h2>
248
+
249
+
250
+ <div class="method_details first">
251
+ <h3 class="signature first" id="get-instance_method">
252
+
253
+ #<strong>get</strong> &#x21d2; <tt>String</tt>
254
+
255
+
256
+
257
+
258
+
259
+ </h3><div class="docstring">
260
+ <div class="discussion">
261
+
262
+
263
+ </div>
264
+ </div>
265
+ <div class="tags">
266
+
267
+ <p class="tag_title">Returns:</p>
268
+ <ul class="return">
269
+
270
+ <li>
271
+
272
+
273
+ <span class='type'>(<tt>String</tt>)</span>
274
+
275
+
276
+
277
+ </li>
278
+
279
+ </ul>
280
+
281
+ </div><table class="source_code">
282
+ <tr>
283
+ <td>
284
+ <pre class="lines">
285
+
286
+
287
+ 27
288
+ 28
289
+ 29</pre>
290
+ </td>
291
+ <td>
292
+ <pre class="code"><span class="info file"># File 'lib/html2rss/attribute_post_processors/parse_uri.rb', line 27</span>
293
+
294
+ <span class='kw'>def</span> <span class='id identifier rubyid_get'>get</span>
295
+ <span class='const'>URI</span><span class='lparen'>(</span><span class='ivar'>@value</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
296
+ <span class='kw'>end</span></pre>
297
+ </td>
298
+ </tr>
299
+ </table>
300
+ </div>
301
+
302
+ </div>
303
+
304
+ </div>
305
+
306
+ <div id="footer">
307
+ Generated on Sun Jul 14 19:35:06 2019 by
308
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
309
+ 0.9.20 (ruby-2.6.3).
310
+ </div>
311
+
312
+ </div>
313
+ </body>
314
+ </html>
@@ -0,0 +1,346 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: Html2rss::AttributePostProcessors::SanitizeHtml
8
+
9
+ &mdash; Documentation by YARD 0.9.20
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "Html2rss::AttributePostProcessors::SanitizeHtml";
19
+ relpath = '../../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../../_index.html">Index (S)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../../Html2rss.html" title="Html2rss (module)">Html2rss</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../AttributePostProcessors.html" title="Html2rss::AttributePostProcessors (module)">AttributePostProcessors</a></span></span>
41
+ &raquo;
42
+ <span class="title">SanitizeHtml</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: Html2rss::AttributePostProcessors::SanitizeHtml
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName">Object</span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">Html2rss::AttributePostProcessors::SanitizeHtml</li>
78
+
79
+ </ul>
80
+ <a href="#" class="inheritanceTree">show all</a>
81
+
82
+ </dd>
83
+ </dl>
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dl>
96
+ <dt>Defined in:</dt>
97
+ <dd>lib/html2rss/attribute_post_processors/sanitize_html.rb</dd>
98
+ </dl>
99
+
100
+ </div>
101
+
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
104
+
105
+ <p>Returns sanitized HTML code as String.</p>
106
+
107
+ <p>Imagine this HTML structure:</p>
108
+
109
+ <pre class="code ruby"><code class="ruby">&lt;section&gt;
110
+ Lorem &lt;b&gt;ipsum&lt;/b&gt; dolor...
111
+ &lt;iframe src=&quot;https://evil.corp/miner&quot;&gt;&lt;/iframe&gt;
112
+ &lt;script&gt;alert();&lt;/script&gt;
113
+ &lt;/section&gt;
114
+ </code></pre>
115
+
116
+ <p>YAML usage example:</p>
117
+
118
+ <pre class="code ruby"><code class="ruby">selectors:
119
+ description:
120
+ selector: section
121
+ extractor: html
122
+ post_process:
123
+ name: sanitize_html
124
+ </code></pre>
125
+
126
+ <p>Would return:</p>
127
+
128
+ <pre class="code ruby"><code class="ruby"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>&lt;p&gt;Lorem &lt;b&gt;ipsum&lt;/b&gt; dolor ...&lt;/p&gt;</span><span class='tstring_end'>&#39;</span></span>
129
+ </code></pre>
130
+
131
+
132
+ </div>
133
+ </div>
134
+ <div class="tags">
135
+
136
+
137
+ </div>
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+ <h2>
146
+ Instance Method Summary
147
+ <small><a href="#" class="summary_toggle">collapse</a></small>
148
+ </h2>
149
+
150
+ <ul class="summary">
151
+
152
+ <li class="public ">
153
+ <span class="summary_signature">
154
+
155
+ <a href="#get-instance_method" title="#get (instance method)">#<strong>get</strong> &#x21d2; String </a>
156
+
157
+
158
+
159
+ </span>
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+ <span class="summary_desc"><div class='inline'><ul><li>
170
+ <p>uses the <a href="https://github.com/rgrove/sanitize" target="_parent" title="sanitize gem">sanitize gem</a> - uses the config <a href="https://github.com/rgrove/sanitize#sanitizeconfigrelaxed" target="_parent" title="Sanitize::Config::RELAXED">Sanitize::Config::RELAXED</a> - adds rel=“nofollow noopener noreferrer” to a elements - adds target=“_blank” to a elements.</p>
171
+ </li></ul>
172
+ </div></span>
173
+
174
+ </li>
175
+
176
+
177
+ <li class="public ">
178
+ <span class="summary_signature">
179
+
180
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(value, _options, _item) &#x21d2; SanitizeHtml </a>
181
+
182
+
183
+
184
+ </span>
185
+
186
+
187
+ <span class="note title constructor">constructor</span>
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+ <span class="summary_desc"><div class='inline'>
197
+ <p>A new instance of SanitizeHtml.</p>
198
+ </div></span>
199
+
200
+ </li>
201
+
202
+
203
+ </ul>
204
+
205
+
206
+ <div id="constructor_details" class="method_details_list">
207
+ <h2>Constructor Details</h2>
208
+
209
+ <div class="method_details first">
210
+ <h3 class="signature first" id="initialize-instance_method">
211
+
212
+ #<strong>initialize</strong>(value, _options, _item) &#x21d2; <tt><span class='object_link'><a href="" title="Html2rss::AttributePostProcessors::SanitizeHtml (class)">SanitizeHtml</a></span></tt>
213
+
214
+
215
+
216
+
217
+
218
+ </h3><div class="docstring">
219
+ <div class="discussion">
220
+
221
+ <p>Returns a new instance of SanitizeHtml</p>
222
+
223
+
224
+ </div>
225
+ </div>
226
+ <div class="tags">
227
+
228
+
229
+ </div><table class="source_code">
230
+ <tr>
231
+ <td>
232
+ <pre class="lines">
233
+
234
+
235
+ 28
236
+ 29
237
+ 30</pre>
238
+ </td>
239
+ <td>
240
+ <pre class="code"><span class="info file"># File 'lib/html2rss/attribute_post_processors/sanitize_html.rb', line 28</span>
241
+
242
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid__options'>_options</span><span class='comma'>,</span> <span class='id identifier rubyid__item'>_item</span><span class='rparen'>)</span>
243
+ <span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
244
+ <span class='kw'>end</span></pre>
245
+ </td>
246
+ </tr>
247
+ </table>
248
+ </div>
249
+
250
+ </div>
251
+
252
+
253
+ <div id="instance_method_details" class="method_details_list">
254
+ <h2>Instance Method Details</h2>
255
+
256
+
257
+ <div class="method_details first">
258
+ <h3 class="signature first" id="get-instance_method">
259
+
260
+ #<strong>get</strong> &#x21d2; <tt>String</tt>
261
+
262
+
263
+
264
+
265
+
266
+ </h3><div class="docstring">
267
+ <div class="discussion">
268
+ <ul><li>
269
+ <p>uses the <a href="https://github.com/rgrove/sanitize" target="_parent" title="sanitize gem">sanitize gem</a></p>
270
+ </li><li>
271
+ <p>uses the config <a href="https://github.com/rgrove/sanitize#sanitizeconfigrelaxed" target="_parent" title="Sanitize::Config::RELAXED">Sanitize::Config::RELAXED</a></p>
272
+ </li><li>
273
+ <p>adds rel=“nofollow noopener noreferrer” to a elements</p>
274
+ </li><li>
275
+ <p>adds target=“_blank” to a elements</p>
276
+ </li></ul>
277
+
278
+
279
+ </div>
280
+ </div>
281
+ <div class="tags">
282
+
283
+ <p class="tag_title">Returns:</p>
284
+ <ul class="return">
285
+
286
+ <li>
287
+
288
+
289
+ <span class='type'>(<tt>String</tt>)</span>
290
+
291
+
292
+
293
+ </li>
294
+
295
+ </ul>
296
+
297
+ </div><table class="source_code">
298
+ <tr>
299
+ <td>
300
+ <pre class="lines">
301
+
302
+
303
+ 38
304
+ 39
305
+ 40
306
+ 41
307
+ 42
308
+ 43
309
+ 44
310
+ 45
311
+ 46
312
+ 47
313
+ 48</pre>
314
+ </td>
315
+ <td>
316
+ <pre class="code"><span class="info file"># File 'lib/html2rss/attribute_post_processors/sanitize_html.rb', line 38</span>
317
+
318
+ <span class='kw'>def</span> <span class='id identifier rubyid_get'>get</span>
319
+ <span class='const'>Sanitize</span><span class='period'>.</span><span class='id identifier rubyid_fragment'>fragment</span><span class='lparen'>(</span><span class='ivar'>@value</span><span class='comma'>,</span> <span class='const'>Sanitize</span><span class='op'>::</span><span class='const'>Config</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span>
320
+ <span class='const'>Sanitize</span><span class='op'>::</span><span class='const'>Config</span><span class='op'>::</span><span class='const'>RELAXED</span><span class='comma'>,</span>
321
+ <span class='label'>add_attributes:</span> <span class='lbrace'>{</span>
322
+ <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>a</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
323
+ <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>rel</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>nofollow noopener noreferrer</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
324
+ <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>target</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>_blank</span><span class='tstring_end'>&#39;</span></span>
325
+ <span class='rbrace'>}</span>
326
+ <span class='rbrace'>}</span>
327
+ <span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'> </span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
328
+ <span class='kw'>end</span></pre>
329
+ </td>
330
+ </tr>
331
+ </table>
332
+ </div>
333
+
334
+ </div>
335
+
336
+ </div>
337
+
338
+ <div id="footer">
339
+ Generated on Sun Jul 14 19:35:06 2019 by
340
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
341
+ 0.9.20 (ruby-2.6.3).
342
+ </div>
343
+
344
+ </div>
345
+ </body>
346
+ </html>