mbrao 1.4.4 → 1.5.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 +4 -4
- data/.rubocop.yml +29 -0
- data/.travis.yml +3 -4
- data/CHANGELOG.md +5 -0
- data/Gemfile +4 -4
- data/doc/ActionView.html +125 -0
- data/doc/ActionView/Template.html +140 -0
- data/doc/ActionView/Template/Handlers.html +3 -3
- data/doc/ActionView/Template/Handlers/MbraoTemplate.html +26 -26
- data/doc/HTML.html +2 -2
- data/doc/HTML/Pipeline.html +2 -2
- data/doc/HTML/Pipeline/KramdownFilter.html +4 -4
- data/doc/Mbrao.html +3 -3
- data/doc/Mbrao/Author.html +29 -29
- data/doc/Mbrao/Content.html +1977 -3644
- data/doc/Mbrao/ContentInterface.html +817 -0
- data/doc/Mbrao/ContentInterface/ClassMethods.html +388 -0
- data/doc/Mbrao/Exceptions.html +1 -1
- data/doc/Mbrao/Exceptions/InvalidDate.html +1 -1
- data/doc/Mbrao/Exceptions/InvalidMetadata.html +1 -1
- data/doc/Mbrao/Exceptions/Parsing.html +1 -1
- data/doc/Mbrao/Exceptions/Rendering.html +1 -1
- data/doc/Mbrao/Exceptions/UnavailableLocalization.html +1 -1
- data/doc/Mbrao/Exceptions/Unimplemented.html +1 -1
- data/doc/Mbrao/Exceptions/UnknownEngine.html +1 -1
- data/doc/Mbrao/Parser.html +12 -12
- data/doc/Mbrao/ParserInterface.html +134 -0
- data/doc/Mbrao/ParserInterface/ClassMethods.html +1724 -0
- data/doc/Mbrao/ParserValidations.html +134 -0
- data/doc/Mbrao/ParserValidations/ClassMethods.html +348 -0
- data/doc/Mbrao/ParsingEngines.html +1 -1
- data/doc/Mbrao/ParsingEngines/Base.html +4 -4
- data/doc/Mbrao/ParsingEngines/PlainText.html +25 -15
- data/doc/Mbrao/RenderingEngines.html +1 -1
- data/doc/Mbrao/RenderingEngines/Base.html +2 -2
- data/doc/Mbrao/RenderingEngines/HtmlPipeline.html +173 -169
- data/doc/Mbrao/Version.html +3 -3
- data/doc/_index.html +51 -24
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +1 -1
- data/doc/index.html +1 -1
- data/doc/method_list.html +63 -69
- data/doc/top-level-namespace.html +2 -2
- data/lib/mbrao.rb +7 -2
- data/lib/mbrao/author.rb +5 -5
- data/lib/mbrao/content.rb +110 -256
- data/lib/mbrao/content_interface.rb +146 -0
- data/lib/mbrao/exceptions.rb +1 -1
- data/lib/mbrao/integrations/rails.rb +48 -42
- data/lib/mbrao/parser.rb +24 -176
- data/lib/mbrao/parser_interface.rb +143 -0
- data/lib/mbrao/parser_validations.rb +41 -0
- data/lib/mbrao/parsing_engines/base.rb +4 -4
- data/lib/mbrao/parsing_engines/plain_text.rb +136 -121
- data/lib/mbrao/rendering_engines/base.rb +2 -2
- data/lib/mbrao/rendering_engines/html_pipeline.rb +52 -77
- data/lib/mbrao/rendering_engines/html_pipeline/kramdown_filter.rb +31 -0
- data/lib/mbrao/version.rb +2 -2
- data/mbrao.gemspec +3 -3
- data/spec/mbrao/author_spec.rb +1 -1
- data/spec/mbrao/content_spec.rb +1 -1
- data/spec/mbrao/parser_spec.rb +16 -16
- data/spec/mbrao/rendering_engines/html_pipeline/kramdown_filter_spec.rb +28 -0
- data/spec/mbrao/rendering_engines/html_pipeline_spec.rb +0 -21
- metadata +23 -8
@@ -124,7 +124,7 @@
|
|
124
124
|
</div>
|
125
125
|
|
126
126
|
<div id="footer">
|
127
|
-
Generated on
|
127
|
+
Generated on Sun May 11 18:17:19 2014 by
|
128
128
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
129
129
|
0.8.7.4 (ruby-2.1.0).
|
130
130
|
</div>
|
data/doc/Mbrao/Parser.html
CHANGED
@@ -91,7 +91,7 @@
|
|
91
91
|
|
92
92
|
|
93
93
|
<dt class="r2">Includes:</dt>
|
94
|
-
<dd class="r2"><span class='object_link'><a href="
|
94
|
+
<dd class="r2"><span class='object_link'><a href="ParserInterface.html" title="Mbrao::ParserInterface (module)">ParserInterface</a></span>, <span class='object_link'><a href="ParserValidations.html" title="Mbrao::ParserValidations (module)">ParserValidations</a></span></dd>
|
95
95
|
|
96
96
|
|
97
97
|
|
@@ -275,13 +275,13 @@
|
|
275
275
|
<pre class="lines">
|
276
276
|
|
277
277
|
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
278
|
+
20
|
279
|
+
21
|
280
|
+
22
|
281
|
+
23</pre>
|
282
282
|
</td>
|
283
283
|
<td>
|
284
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/parser.rb', line
|
284
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/parser.rb', line 20</span>
|
285
285
|
|
286
286
|
<span class='kw'>def</span> <span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
287
287
|
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_sanitize_parsing_options'>sanitize_parsing_options</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
@@ -387,13 +387,13 @@
|
|
387
387
|
<pre class="lines">
|
388
388
|
|
389
389
|
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
390
|
+
31
|
391
|
+
32
|
392
|
+
33
|
393
|
+
34</pre>
|
394
394
|
</td>
|
395
395
|
<td>
|
396
|
-
<pre class="code"><span class="info file"># File 'lib/mbrao/parser.rb', line
|
396
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/parser.rb', line 31</span>
|
397
397
|
|
398
398
|
<span class='kw'>def</span> <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
399
399
|
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_sanitize_rendering_options'>sanitize_rendering_options</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
@@ -409,7 +409,7 @@
|
|
409
409
|
</div>
|
410
410
|
|
411
411
|
<div id="footer">
|
412
|
-
Generated on
|
412
|
+
Generated on Sun May 11 18:17:17 2014 by
|
413
413
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
414
414
|
0.8.7.4 (ruby-2.1.0).
|
415
415
|
</div>
|
@@ -0,0 +1,134 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<title>
|
7
|
+
Module: Mbrao::ParserInterface
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.7.4
|
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
|
+
hasFrames = window.top.frames.main ? true : false;
|
19
|
+
relpath = '../';
|
20
|
+
framesUrl = "../frames.html#!Mbrao/ParserInterface.html";
|
21
|
+
</script>
|
22
|
+
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
27
|
+
|
28
|
+
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="header">
|
32
|
+
<div id="menu">
|
33
|
+
|
34
|
+
<a href="../_index.html">Index (P)</a> »
|
35
|
+
<span class='title'><span class='object_link'><a href="../Mbrao.html" title="Mbrao (module)">Mbrao</a></span></span>
|
36
|
+
»
|
37
|
+
<span class="title">ParserInterface</span>
|
38
|
+
|
39
|
+
|
40
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div id="search">
|
44
|
+
|
45
|
+
<a class="full_list_link" id="class_list_link"
|
46
|
+
href="../class_list.html">
|
47
|
+
Class List
|
48
|
+
</a>
|
49
|
+
|
50
|
+
<a class="full_list_link" id="method_list_link"
|
51
|
+
href="../method_list.html">
|
52
|
+
Method List
|
53
|
+
</a>
|
54
|
+
|
55
|
+
<a class="full_list_link" id="file_list_link"
|
56
|
+
href="../file_list.html">
|
57
|
+
File List
|
58
|
+
</a>
|
59
|
+
|
60
|
+
</div>
|
61
|
+
<div class="clear"></div>
|
62
|
+
</div>
|
63
|
+
|
64
|
+
<iframe id="search_frame"></iframe>
|
65
|
+
|
66
|
+
<div id="content"><h1>Module: Mbrao::ParserInterface
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
</h1>
|
71
|
+
|
72
|
+
<dl class="box">
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
<dt class="r1">Extended by:</dt>
|
77
|
+
<dd class="r1">ActiveSupport::Concern</dd>
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
<dt class="r2">Included in:</dt>
|
85
|
+
<dd class="r2"><span class='object_link'><a href="Parser.html" title="Mbrao::Parser (class)">Parser</a></span></dd>
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
<dt class="r1 last">Defined in:</dt>
|
90
|
+
<dd class="r1 last">lib/mbrao/parser_interface.rb</dd>
|
91
|
+
|
92
|
+
</dl>
|
93
|
+
<div class="clear"></div>
|
94
|
+
|
95
|
+
<h2>Overview</h2><div class="docstring">
|
96
|
+
<div class="discussion">
|
97
|
+
<p>Methods to allow class level access.</p>
|
98
|
+
|
99
|
+
|
100
|
+
</div>
|
101
|
+
</div>
|
102
|
+
<div class="tags">
|
103
|
+
|
104
|
+
|
105
|
+
</div><h2>Defined Under Namespace</h2>
|
106
|
+
<p class="children">
|
107
|
+
|
108
|
+
|
109
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="ParserInterface/ClassMethods.html" title="Mbrao::ParserInterface::ClassMethods (module)">ClassMethods</a></span>
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
</p>
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
</div>
|
126
|
+
|
127
|
+
<div id="footer">
|
128
|
+
Generated on Sun May 11 18:17:17 2014 by
|
129
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
130
|
+
0.8.7.4 (ruby-2.1.0).
|
131
|
+
</div>
|
132
|
+
|
133
|
+
</body>
|
134
|
+
</html>
|
@@ -0,0 +1,1724 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<title>
|
7
|
+
Module: Mbrao::ParserInterface::ClassMethods
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.7.4
|
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
|
+
hasFrames = window.top.frames.main ? true : false;
|
19
|
+
relpath = '../../';
|
20
|
+
framesUrl = "../../frames.html#!Mbrao/ParserInterface/ClassMethods.html";
|
21
|
+
</script>
|
22
|
+
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
|
27
|
+
|
28
|
+
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="header">
|
32
|
+
<div id="menu">
|
33
|
+
|
34
|
+
<a href="../../_index.html">Index (C)</a> »
|
35
|
+
<span class='title'><span class='object_link'><a href="../../Mbrao.html" title="Mbrao (module)">Mbrao</a></span></span> » <span class='title'><span class='object_link'><a href="../ParserInterface.html" title="Mbrao::ParserInterface (module)">ParserInterface</a></span></span>
|
36
|
+
»
|
37
|
+
<span class="title">ClassMethods</span>
|
38
|
+
|
39
|
+
|
40
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div id="search">
|
44
|
+
|
45
|
+
<a class="full_list_link" id="class_list_link"
|
46
|
+
href="../../class_list.html">
|
47
|
+
Class List
|
48
|
+
</a>
|
49
|
+
|
50
|
+
<a class="full_list_link" id="method_list_link"
|
51
|
+
href="../../method_list.html">
|
52
|
+
Method List
|
53
|
+
</a>
|
54
|
+
|
55
|
+
<a class="full_list_link" id="file_list_link"
|
56
|
+
href="../../file_list.html">
|
57
|
+
File List
|
58
|
+
</a>
|
59
|
+
|
60
|
+
</div>
|
61
|
+
<div class="clear"></div>
|
62
|
+
</div>
|
63
|
+
|
64
|
+
<iframe id="search_frame"></iframe>
|
65
|
+
|
66
|
+
<div id="content"><h1>Module: Mbrao::ParserInterface::ClassMethods
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
</h1>
|
71
|
+
|
72
|
+
<dl class="box">
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
<dt class="r1 last">Defined in:</dt>
|
82
|
+
<dd class="r1 last">lib/mbrao/parser_interface.rb</dd>
|
83
|
+
|
84
|
+
</dl>
|
85
|
+
<div class="clear"></div>
|
86
|
+
|
87
|
+
<h2>Overview</h2><div class="docstring">
|
88
|
+
<div class="discussion">
|
89
|
+
<p>Class methods.</p>
|
90
|
+
|
91
|
+
|
92
|
+
</div>
|
93
|
+
</div>
|
94
|
+
<div class="tags">
|
95
|
+
|
96
|
+
|
97
|
+
</div>
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
<h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
|
102
|
+
<ul class="summary">
|
103
|
+
|
104
|
+
<li class="public ">
|
105
|
+
<span class="summary_signature">
|
106
|
+
|
107
|
+
<a href="#locale-instance_method" title="#locale (instance method)">- (String) <strong>locale</strong> </a>
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
</span>
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
<span class="summary_desc"><div class='inline'><p>Gets the default locale for mbrao.</p>
|
125
|
+
</div></span>
|
126
|
+
|
127
|
+
</li>
|
128
|
+
|
129
|
+
|
130
|
+
<li class="public ">
|
131
|
+
<span class="summary_signature">
|
132
|
+
|
133
|
+
<a href="#parsing_engine-instance_method" title="#parsing_engine (instance method)">- (String) <strong>parsing_engine</strong> </a>
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
</span>
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
<span class="summary_desc"><div class='inline'><p>Gets the default parsing engine.</p>
|
151
|
+
</div></span>
|
152
|
+
|
153
|
+
</li>
|
154
|
+
|
155
|
+
|
156
|
+
<li class="public ">
|
157
|
+
<span class="summary_signature">
|
158
|
+
|
159
|
+
<a href="#rendering_engine-instance_method" title="#rendering_engine (instance method)">- (String) <strong>rendering_engine</strong> </a>
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
</span>
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
<span class="summary_desc"><div class='inline'><p>Gets the default rendering engine.</p>
|
177
|
+
</div></span>
|
178
|
+
|
179
|
+
</li>
|
180
|
+
|
181
|
+
|
182
|
+
</ul>
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
<h2>
|
189
|
+
Instance Method Summary
|
190
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
191
|
+
</h2>
|
192
|
+
|
193
|
+
<ul class="summary">
|
194
|
+
|
195
|
+
<li class="public ">
|
196
|
+
<span class="summary_signature">
|
197
|
+
|
198
|
+
<a href="#as_json-instance_method" title="#as_json (instance method)">- (Hash) <strong>as_json</strong>(target, keys, options = {}) </a>
|
199
|
+
|
200
|
+
|
201
|
+
|
202
|
+
</span>
|
203
|
+
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
<span class="summary_desc"><div class='inline'><p>Returns an object as a JSON compatible hash.</p>
|
213
|
+
</div></span>
|
214
|
+
|
215
|
+
</li>
|
216
|
+
|
217
|
+
|
218
|
+
<li class="public ">
|
219
|
+
<span class="summary_signature">
|
220
|
+
|
221
|
+
<a href="#create_engine-instance_method" title="#create_engine (instance method)">- (Object) <strong>create_engine</strong>(cls, type = :parsing) </a>
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
</span>
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
<span class="summary_desc"><div class='inline'><p>Instantiates a new engine for rendering or parsing.</p>
|
236
|
+
</div></span>
|
237
|
+
|
238
|
+
</li>
|
239
|
+
|
240
|
+
|
241
|
+
<li class="public ">
|
242
|
+
<span class="summary_signature">
|
243
|
+
|
244
|
+
<a href="#instance-instance_method" title="#instance (instance method)">- (Parser) <strong>instance</strong>(force = false) </a>
|
245
|
+
|
246
|
+
|
247
|
+
|
248
|
+
</span>
|
249
|
+
|
250
|
+
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
|
258
|
+
<span class="summary_desc"><div class='inline'><p>Returns a unique (singleton) instance of the parser.</p>
|
259
|
+
</div></span>
|
260
|
+
|
261
|
+
</li>
|
262
|
+
|
263
|
+
|
264
|
+
<li class="public ">
|
265
|
+
<span class="summary_signature">
|
266
|
+
|
267
|
+
<a href="#parse-instance_method" title="#parse (instance method)">- (Content) <strong>parse</strong>(content, options = {}) </a>
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
</span>
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
<span class="summary_desc"><div class='inline'><p>Parses a source text.</p>
|
282
|
+
</div></span>
|
283
|
+
|
284
|
+
</li>
|
285
|
+
|
286
|
+
|
287
|
+
<li class="public ">
|
288
|
+
<span class="summary_signature">
|
289
|
+
|
290
|
+
<a href="#render-instance_method" title="#render (instance method)">- (String) <strong>render</strong>(content, options = {}, context = {}) </a>
|
291
|
+
|
292
|
+
|
293
|
+
|
294
|
+
</span>
|
295
|
+
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
|
304
|
+
<span class="summary_desc"><div class='inline'><p>Renders a content.</p>
|
305
|
+
</div></span>
|
306
|
+
|
307
|
+
</li>
|
308
|
+
|
309
|
+
|
310
|
+
</ul>
|
311
|
+
|
312
|
+
|
313
|
+
|
314
|
+
<div id="instance_attr_details" class="attr_details">
|
315
|
+
<h2>Instance Attribute Details</h2>
|
316
|
+
|
317
|
+
|
318
|
+
<span id="locale=-instance_method"></span>
|
319
|
+
<div class="method_details first">
|
320
|
+
<h3 class="signature first" id="locale-instance_method">
|
321
|
+
|
322
|
+
- (<tt>String</tt>) <strong>locale</strong>
|
323
|
+
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
|
328
|
+
</h3><div class="docstring">
|
329
|
+
<div class="discussion">
|
330
|
+
<p>Gets the default locale for mbrao.</p>
|
331
|
+
|
332
|
+
|
333
|
+
</div>
|
334
|
+
</div>
|
335
|
+
<div class="tags">
|
336
|
+
|
337
|
+
<p class="tag_title">Returns:</p>
|
338
|
+
<ul class="return">
|
339
|
+
|
340
|
+
<li>
|
341
|
+
|
342
|
+
|
343
|
+
<span class='type'>(<tt>String</tt>)</span>
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
—
|
348
|
+
<div class='inline'><p>The default locale.</p>
|
349
|
+
</div>
|
350
|
+
|
351
|
+
</li>
|
352
|
+
|
353
|
+
</ul>
|
354
|
+
|
355
|
+
</div><table class="source_code">
|
356
|
+
<tr>
|
357
|
+
<td>
|
358
|
+
<pre class="lines">
|
359
|
+
|
360
|
+
|
361
|
+
21
|
362
|
+
22
|
363
|
+
23
|
364
|
+
24
|
365
|
+
25
|
366
|
+
26
|
367
|
+
27
|
368
|
+
28
|
369
|
+
29
|
370
|
+
30
|
371
|
+
31
|
372
|
+
32
|
373
|
+
33
|
374
|
+
34
|
375
|
+
35
|
376
|
+
36
|
377
|
+
37
|
378
|
+
38
|
379
|
+
39
|
380
|
+
40
|
381
|
+
41
|
382
|
+
42
|
383
|
+
43
|
384
|
+
44
|
385
|
+
45
|
386
|
+
46
|
387
|
+
47
|
388
|
+
48
|
389
|
+
49
|
390
|
+
50
|
391
|
+
51
|
392
|
+
52
|
393
|
+
53
|
394
|
+
54
|
395
|
+
55
|
396
|
+
56
|
397
|
+
57
|
398
|
+
58
|
399
|
+
59
|
400
|
+
60
|
401
|
+
61
|
402
|
+
62
|
403
|
+
63
|
404
|
+
64
|
405
|
+
65
|
406
|
+
66
|
407
|
+
67
|
408
|
+
68
|
409
|
+
69
|
410
|
+
70
|
411
|
+
71
|
412
|
+
72
|
413
|
+
73
|
414
|
+
74
|
415
|
+
75
|
416
|
+
76
|
417
|
+
77
|
418
|
+
78
|
419
|
+
79
|
420
|
+
80
|
421
|
+
81
|
422
|
+
82
|
423
|
+
83
|
424
|
+
84
|
425
|
+
85
|
426
|
+
86
|
427
|
+
87
|
428
|
+
88
|
429
|
+
89
|
430
|
+
90
|
431
|
+
91
|
432
|
+
92
|
433
|
+
93
|
434
|
+
94
|
435
|
+
95
|
436
|
+
96
|
437
|
+
97
|
438
|
+
98
|
439
|
+
99
|
440
|
+
100
|
441
|
+
101
|
442
|
+
102
|
443
|
+
103
|
444
|
+
104
|
445
|
+
105
|
446
|
+
106
|
447
|
+
107
|
448
|
+
108
|
449
|
+
109
|
450
|
+
110
|
451
|
+
111
|
452
|
+
112
|
453
|
+
113
|
454
|
+
114
|
455
|
+
115
|
456
|
+
116
|
457
|
+
117
|
458
|
+
118
|
459
|
+
119
|
460
|
+
120
|
461
|
+
121
|
462
|
+
122
|
463
|
+
123
|
464
|
+
124
|
465
|
+
125
|
466
|
+
126
|
467
|
+
127
|
468
|
+
128
|
469
|
+
129
|
470
|
+
130
|
471
|
+
131
|
472
|
+
132
|
473
|
+
133
|
474
|
+
134
|
475
|
+
135
|
476
|
+
136
|
477
|
+
137
|
478
|
+
138
|
479
|
+
139
|
480
|
+
140
|
481
|
+
141</pre>
|
482
|
+
</td>
|
483
|
+
<td>
|
484
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/parser_interface.rb', line 21</span>
|
485
|
+
|
486
|
+
<span class='kw'>module</span> <span class='const'>ClassMethods</span>
|
487
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:locale</span>
|
488
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:parsing_engine</span>
|
489
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:rendering_engine</span>
|
490
|
+
|
491
|
+
<span class='comment'># Gets the default locale for mbrao.
|
492
|
+
</span> <span class='comment'>#
|
493
|
+
</span> <span class='comment'># @return [String] The default locale.
|
494
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_locale'>locale</span>
|
495
|
+
<span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='ivar'>@locale</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>en</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
496
|
+
<span class='kw'>end</span>
|
497
|
+
|
498
|
+
<span class='comment'># Gets the default parsing engine.
|
499
|
+
</span> <span class='comment'>#
|
500
|
+
</span> <span class='comment'># @return [String] The default parsing engine.
|
501
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parsing_engine'>parsing_engine</span>
|
502
|
+
<span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='ivar'>@parsing_engine</span><span class='comma'>,</span> <span class='symbol'>:plain_text</span><span class='comma'>,</span> <span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
503
|
+
<span class='kw'>end</span>
|
504
|
+
|
505
|
+
<span class='comment'># Gets the default rendering engine.
|
506
|
+
</span> <span class='comment'>#
|
507
|
+
</span> <span class='comment'># @return [String] The default rendering engine.
|
508
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_rendering_engine'>rendering_engine</span>
|
509
|
+
<span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='ivar'>@rendering_engine</span><span class='comma'>,</span> <span class='symbol'>:html_pipeline</span><span class='comma'>,</span> <span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
510
|
+
<span class='kw'>end</span>
|
511
|
+
|
512
|
+
<span class='comment'># Parses a source text.
|
513
|
+
</span> <span class='comment'>#
|
514
|
+
</span> <span class='comment'># @param content [Object] The content to parse.
|
515
|
+
</span> <span class='comment'># @param options [Hash] A list of options for parsing.
|
516
|
+
</span> <span class='comment'># @return [Content] The parsed data.
|
517
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
518
|
+
<span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
519
|
+
<span class='kw'>end</span>
|
520
|
+
|
521
|
+
<span class='comment'># Renders a content.
|
522
|
+
</span> <span class='comment'>#
|
523
|
+
</span> <span class='comment'># @param content [Content] The content to parse.
|
524
|
+
</span> <span class='comment'># @param options [Hash] A list of options for renderer.
|
525
|
+
</span> <span class='comment'># @param context [Hash] A context for rendering.
|
526
|
+
</span> <span class='comment'># @return [String] The rendered content.
|
527
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
528
|
+
<span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span><span class='rparen'>)</span>
|
529
|
+
<span class='kw'>end</span>
|
530
|
+
|
531
|
+
<span class='comment'># Returns an object as a JSON compatible hash
|
532
|
+
</span> <span class='comment'>#
|
533
|
+
</span> <span class='comment'># @param target [Object] The target to serialize.
|
534
|
+
</span> <span class='comment'># @param keys [Array] The attributes to include in the serialization.
|
535
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
536
|
+
</span> <span class='comment'># The only supported value are:
|
537
|
+
</span> <span class='comment'>#
|
538
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
539
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
540
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
541
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
542
|
+
<span class='id identifier rubyid_include_empty'>include_empty</span> <span class='op'>=</span> <span class='op'>!</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:exclude_empty</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span>
|
543
|
+
<span class='id identifier rubyid_exclude'>exclude</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:exclude</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
544
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
545
|
+
|
546
|
+
<span class='id identifier rubyid_map_to_json'>map_to_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='lparen'>(</span><span class='id identifier rubyid_keys'>keys</span> <span class='op'>-</span> <span class='id identifier rubyid_exclude'>exclude</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_include_empty'>include_empty</span><span class='rparen'>)</span>
|
547
|
+
<span class='kw'>end</span>
|
548
|
+
|
549
|
+
<span class='comment'># Instantiates a new engine for rendering or parsing.
|
550
|
+
</span> <span class='comment'>#
|
551
|
+
</span> <span class='comment'># @param cls [String|Symbol|Object] If a `String` or a `Symbol`, then it will be the class of the engine.
|
552
|
+
</span> <span class='comment'># @param type [Symbol] The type or engine. Can be `:parsing` or `:rendering`.
|
553
|
+
</span> <span class='comment'># @return [Object] A new engine.
|
554
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_create_engine'>create_engine</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:parsing</span><span class='rparen'>)</span>
|
555
|
+
<span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:parsing</span> <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:rendering</span>
|
556
|
+
<span class='op'>::</span><span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_find_class'>find_class</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>::Mbrao::</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_classify'>classify</span><span class='embexpr_end'>}</span><span class='tstring_content'>Engines::%CLASS%</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
557
|
+
<span class='kw'>rescue</span> <span class='const'>NameError</span>
|
558
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>UnknownEngine</span>
|
559
|
+
<span class='kw'>end</span>
|
560
|
+
|
561
|
+
<span class='comment'># Returns a unique (singleton) instance of the parser.
|
562
|
+
</span> <span class='comment'>#
|
563
|
+
</span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
|
564
|
+
</span> <span class='comment'># @return [Parser] The unique (singleton) instance of the parser.
|
565
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
566
|
+
<span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
|
567
|
+
<span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
568
|
+
<span class='kw'>end</span>
|
569
|
+
|
570
|
+
<span class='id identifier rubyid_private'>private</span>
|
571
|
+
|
572
|
+
<span class='comment'># Returns an attribute or a default value.
|
573
|
+
</span> <span class='comment'>#
|
574
|
+
</span> <span class='comment'># @param attr [Object ]The attribute to return.
|
575
|
+
</span> <span class='comment'># @param default_value [Object] The value to return if `attr` is blank.
|
576
|
+
</span> <span class='comment'># @param sanitizer [Symbol] An optional method to sanitize the returned value.
|
577
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='id identifier rubyid_attr'>attr</span><span class='comma'>,</span> <span class='id identifier rubyid_default_value'>default_value</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_sanitizer'>sanitizer</span> <span class='op'>=</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
578
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_attr'>attr</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_attr'>attr</span> <span class='op'>:</span> <span class='id identifier rubyid_default_value'>default_value</span>
|
579
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_sanitizer'>sanitizer</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_sanitizer'>sanitizer</span>
|
580
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
581
|
+
<span class='kw'>end</span>
|
582
|
+
|
583
|
+
<span class='comment'># Perform the mapping to JSON.
|
584
|
+
</span> <span class='comment'>#
|
585
|
+
</span> <span class='comment'># @param target [Object] The target to serialize.
|
586
|
+
</span> <span class='comment'># @param keys [Array] The attributes to include in the serialization.
|
587
|
+
</span> <span class='comment'># @param include_empty [Boolean], if to include nil values.
|
588
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
589
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_map_to_json'>map_to_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_include_empty'>include_empty</span><span class='rparen'>)</span>
|
590
|
+
<span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='op'>|</span>
|
591
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_get_json_field'>get_json_field</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
592
|
+
<span class='id identifier rubyid_rv'>rv</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span> <span class='kw'>if</span> <span class='id identifier rubyid_include_empty'>include_empty</span> <span class='op'>||</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
593
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
594
|
+
<span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_deep_stringify_keys'>deep_stringify_keys</span>
|
595
|
+
<span class='kw'>end</span>
|
596
|
+
|
597
|
+
<span class='comment'># Get a field as JSON.
|
598
|
+
</span> <span class='comment'>#
|
599
|
+
</span> <span class='comment'># @param target [Object] The object containing the value.
|
600
|
+
</span> <span class='comment'># @param method [Symbol] The method containing the value.
|
601
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_get_json_field'>get_json_field</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
|
602
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
|
603
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:as_json</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Symbol</span><span class='rparen'>)</span>
|
604
|
+
<span class='id identifier rubyid_value'>value</span>
|
605
|
+
<span class='kw'>end</span>
|
606
|
+
<span class='kw'>end</span></pre>
|
607
|
+
</td>
|
608
|
+
</tr>
|
609
|
+
</table>
|
610
|
+
</div>
|
611
|
+
|
612
|
+
|
613
|
+
<span id="parsing_engine=-instance_method"></span>
|
614
|
+
<div class="method_details ">
|
615
|
+
<h3 class="signature " id="parsing_engine-instance_method">
|
616
|
+
|
617
|
+
- (<tt>String</tt>) <strong>parsing_engine</strong>
|
618
|
+
|
619
|
+
|
620
|
+
|
621
|
+
|
622
|
+
|
623
|
+
</h3><div class="docstring">
|
624
|
+
<div class="discussion">
|
625
|
+
<p>Gets the default parsing engine.</p>
|
626
|
+
|
627
|
+
|
628
|
+
</div>
|
629
|
+
</div>
|
630
|
+
<div class="tags">
|
631
|
+
|
632
|
+
<p class="tag_title">Returns:</p>
|
633
|
+
<ul class="return">
|
634
|
+
|
635
|
+
<li>
|
636
|
+
|
637
|
+
|
638
|
+
<span class='type'>(<tt>String</tt>)</span>
|
639
|
+
|
640
|
+
|
641
|
+
|
642
|
+
—
|
643
|
+
<div class='inline'><p>The default parsing engine.</p>
|
644
|
+
</div>
|
645
|
+
|
646
|
+
</li>
|
647
|
+
|
648
|
+
</ul>
|
649
|
+
|
650
|
+
</div><table class="source_code">
|
651
|
+
<tr>
|
652
|
+
<td>
|
653
|
+
<pre class="lines">
|
654
|
+
|
655
|
+
|
656
|
+
21
|
657
|
+
22
|
658
|
+
23
|
659
|
+
24
|
660
|
+
25
|
661
|
+
26
|
662
|
+
27
|
663
|
+
28
|
664
|
+
29
|
665
|
+
30
|
666
|
+
31
|
667
|
+
32
|
668
|
+
33
|
669
|
+
34
|
670
|
+
35
|
671
|
+
36
|
672
|
+
37
|
673
|
+
38
|
674
|
+
39
|
675
|
+
40
|
676
|
+
41
|
677
|
+
42
|
678
|
+
43
|
679
|
+
44
|
680
|
+
45
|
681
|
+
46
|
682
|
+
47
|
683
|
+
48
|
684
|
+
49
|
685
|
+
50
|
686
|
+
51
|
687
|
+
52
|
688
|
+
53
|
689
|
+
54
|
690
|
+
55
|
691
|
+
56
|
692
|
+
57
|
693
|
+
58
|
694
|
+
59
|
695
|
+
60
|
696
|
+
61
|
697
|
+
62
|
698
|
+
63
|
699
|
+
64
|
700
|
+
65
|
701
|
+
66
|
702
|
+
67
|
703
|
+
68
|
704
|
+
69
|
705
|
+
70
|
706
|
+
71
|
707
|
+
72
|
708
|
+
73
|
709
|
+
74
|
710
|
+
75
|
711
|
+
76
|
712
|
+
77
|
713
|
+
78
|
714
|
+
79
|
715
|
+
80
|
716
|
+
81
|
717
|
+
82
|
718
|
+
83
|
719
|
+
84
|
720
|
+
85
|
721
|
+
86
|
722
|
+
87
|
723
|
+
88
|
724
|
+
89
|
725
|
+
90
|
726
|
+
91
|
727
|
+
92
|
728
|
+
93
|
729
|
+
94
|
730
|
+
95
|
731
|
+
96
|
732
|
+
97
|
733
|
+
98
|
734
|
+
99
|
735
|
+
100
|
736
|
+
101
|
737
|
+
102
|
738
|
+
103
|
739
|
+
104
|
740
|
+
105
|
741
|
+
106
|
742
|
+
107
|
743
|
+
108
|
744
|
+
109
|
745
|
+
110
|
746
|
+
111
|
747
|
+
112
|
748
|
+
113
|
749
|
+
114
|
750
|
+
115
|
751
|
+
116
|
752
|
+
117
|
753
|
+
118
|
754
|
+
119
|
755
|
+
120
|
756
|
+
121
|
757
|
+
122
|
758
|
+
123
|
759
|
+
124
|
760
|
+
125
|
761
|
+
126
|
762
|
+
127
|
763
|
+
128
|
764
|
+
129
|
765
|
+
130
|
766
|
+
131
|
767
|
+
132
|
768
|
+
133
|
769
|
+
134
|
770
|
+
135
|
771
|
+
136
|
772
|
+
137
|
773
|
+
138
|
774
|
+
139
|
775
|
+
140
|
776
|
+
141</pre>
|
777
|
+
</td>
|
778
|
+
<td>
|
779
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/parser_interface.rb', line 21</span>
|
780
|
+
|
781
|
+
<span class='kw'>module</span> <span class='const'>ClassMethods</span>
|
782
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:locale</span>
|
783
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:parsing_engine</span>
|
784
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:rendering_engine</span>
|
785
|
+
|
786
|
+
<span class='comment'># Gets the default locale for mbrao.
|
787
|
+
</span> <span class='comment'>#
|
788
|
+
</span> <span class='comment'># @return [String] The default locale.
|
789
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_locale'>locale</span>
|
790
|
+
<span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='ivar'>@locale</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>en</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
791
|
+
<span class='kw'>end</span>
|
792
|
+
|
793
|
+
<span class='comment'># Gets the default parsing engine.
|
794
|
+
</span> <span class='comment'>#
|
795
|
+
</span> <span class='comment'># @return [String] The default parsing engine.
|
796
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parsing_engine'>parsing_engine</span>
|
797
|
+
<span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='ivar'>@parsing_engine</span><span class='comma'>,</span> <span class='symbol'>:plain_text</span><span class='comma'>,</span> <span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
798
|
+
<span class='kw'>end</span>
|
799
|
+
|
800
|
+
<span class='comment'># Gets the default rendering engine.
|
801
|
+
</span> <span class='comment'>#
|
802
|
+
</span> <span class='comment'># @return [String] The default rendering engine.
|
803
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_rendering_engine'>rendering_engine</span>
|
804
|
+
<span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='ivar'>@rendering_engine</span><span class='comma'>,</span> <span class='symbol'>:html_pipeline</span><span class='comma'>,</span> <span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
805
|
+
<span class='kw'>end</span>
|
806
|
+
|
807
|
+
<span class='comment'># Parses a source text.
|
808
|
+
</span> <span class='comment'>#
|
809
|
+
</span> <span class='comment'># @param content [Object] The content to parse.
|
810
|
+
</span> <span class='comment'># @param options [Hash] A list of options for parsing.
|
811
|
+
</span> <span class='comment'># @return [Content] The parsed data.
|
812
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
813
|
+
<span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
814
|
+
<span class='kw'>end</span>
|
815
|
+
|
816
|
+
<span class='comment'># Renders a content.
|
817
|
+
</span> <span class='comment'>#
|
818
|
+
</span> <span class='comment'># @param content [Content] The content to parse.
|
819
|
+
</span> <span class='comment'># @param options [Hash] A list of options for renderer.
|
820
|
+
</span> <span class='comment'># @param context [Hash] A context for rendering.
|
821
|
+
</span> <span class='comment'># @return [String] The rendered content.
|
822
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
823
|
+
<span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span><span class='rparen'>)</span>
|
824
|
+
<span class='kw'>end</span>
|
825
|
+
|
826
|
+
<span class='comment'># Returns an object as a JSON compatible hash
|
827
|
+
</span> <span class='comment'>#
|
828
|
+
</span> <span class='comment'># @param target [Object] The target to serialize.
|
829
|
+
</span> <span class='comment'># @param keys [Array] The attributes to include in the serialization.
|
830
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
831
|
+
</span> <span class='comment'># The only supported value are:
|
832
|
+
</span> <span class='comment'>#
|
833
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
834
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
835
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
836
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
837
|
+
<span class='id identifier rubyid_include_empty'>include_empty</span> <span class='op'>=</span> <span class='op'>!</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:exclude_empty</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span>
|
838
|
+
<span class='id identifier rubyid_exclude'>exclude</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:exclude</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
839
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
840
|
+
|
841
|
+
<span class='id identifier rubyid_map_to_json'>map_to_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='lparen'>(</span><span class='id identifier rubyid_keys'>keys</span> <span class='op'>-</span> <span class='id identifier rubyid_exclude'>exclude</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_include_empty'>include_empty</span><span class='rparen'>)</span>
|
842
|
+
<span class='kw'>end</span>
|
843
|
+
|
844
|
+
<span class='comment'># Instantiates a new engine for rendering or parsing.
|
845
|
+
</span> <span class='comment'>#
|
846
|
+
</span> <span class='comment'># @param cls [String|Symbol|Object] If a `String` or a `Symbol`, then it will be the class of the engine.
|
847
|
+
</span> <span class='comment'># @param type [Symbol] The type or engine. Can be `:parsing` or `:rendering`.
|
848
|
+
</span> <span class='comment'># @return [Object] A new engine.
|
849
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_create_engine'>create_engine</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:parsing</span><span class='rparen'>)</span>
|
850
|
+
<span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:parsing</span> <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:rendering</span>
|
851
|
+
<span class='op'>::</span><span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_find_class'>find_class</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>::Mbrao::</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_classify'>classify</span><span class='embexpr_end'>}</span><span class='tstring_content'>Engines::%CLASS%</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
852
|
+
<span class='kw'>rescue</span> <span class='const'>NameError</span>
|
853
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>UnknownEngine</span>
|
854
|
+
<span class='kw'>end</span>
|
855
|
+
|
856
|
+
<span class='comment'># Returns a unique (singleton) instance of the parser.
|
857
|
+
</span> <span class='comment'>#
|
858
|
+
</span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
|
859
|
+
</span> <span class='comment'># @return [Parser] The unique (singleton) instance of the parser.
|
860
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
861
|
+
<span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
|
862
|
+
<span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
863
|
+
<span class='kw'>end</span>
|
864
|
+
|
865
|
+
<span class='id identifier rubyid_private'>private</span>
|
866
|
+
|
867
|
+
<span class='comment'># Returns an attribute or a default value.
|
868
|
+
</span> <span class='comment'>#
|
869
|
+
</span> <span class='comment'># @param attr [Object ]The attribute to return.
|
870
|
+
</span> <span class='comment'># @param default_value [Object] The value to return if `attr` is blank.
|
871
|
+
</span> <span class='comment'># @param sanitizer [Symbol] An optional method to sanitize the returned value.
|
872
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='id identifier rubyid_attr'>attr</span><span class='comma'>,</span> <span class='id identifier rubyid_default_value'>default_value</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_sanitizer'>sanitizer</span> <span class='op'>=</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
873
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_attr'>attr</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_attr'>attr</span> <span class='op'>:</span> <span class='id identifier rubyid_default_value'>default_value</span>
|
874
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_sanitizer'>sanitizer</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_sanitizer'>sanitizer</span>
|
875
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
876
|
+
<span class='kw'>end</span>
|
877
|
+
|
878
|
+
<span class='comment'># Perform the mapping to JSON.
|
879
|
+
</span> <span class='comment'>#
|
880
|
+
</span> <span class='comment'># @param target [Object] The target to serialize.
|
881
|
+
</span> <span class='comment'># @param keys [Array] The attributes to include in the serialization.
|
882
|
+
</span> <span class='comment'># @param include_empty [Boolean], if to include nil values.
|
883
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
884
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_map_to_json'>map_to_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_include_empty'>include_empty</span><span class='rparen'>)</span>
|
885
|
+
<span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='op'>|</span>
|
886
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_get_json_field'>get_json_field</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
887
|
+
<span class='id identifier rubyid_rv'>rv</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span> <span class='kw'>if</span> <span class='id identifier rubyid_include_empty'>include_empty</span> <span class='op'>||</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
888
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
889
|
+
<span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_deep_stringify_keys'>deep_stringify_keys</span>
|
890
|
+
<span class='kw'>end</span>
|
891
|
+
|
892
|
+
<span class='comment'># Get a field as JSON.
|
893
|
+
</span> <span class='comment'>#
|
894
|
+
</span> <span class='comment'># @param target [Object] The object containing the value.
|
895
|
+
</span> <span class='comment'># @param method [Symbol] The method containing the value.
|
896
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_get_json_field'>get_json_field</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
|
897
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
|
898
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:as_json</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Symbol</span><span class='rparen'>)</span>
|
899
|
+
<span class='id identifier rubyid_value'>value</span>
|
900
|
+
<span class='kw'>end</span>
|
901
|
+
<span class='kw'>end</span></pre>
|
902
|
+
</td>
|
903
|
+
</tr>
|
904
|
+
</table>
|
905
|
+
</div>
|
906
|
+
|
907
|
+
|
908
|
+
<span id="rendering_engine=-instance_method"></span>
|
909
|
+
<div class="method_details ">
|
910
|
+
<h3 class="signature " id="rendering_engine-instance_method">
|
911
|
+
|
912
|
+
- (<tt>String</tt>) <strong>rendering_engine</strong>
|
913
|
+
|
914
|
+
|
915
|
+
|
916
|
+
|
917
|
+
|
918
|
+
</h3><div class="docstring">
|
919
|
+
<div class="discussion">
|
920
|
+
<p>Gets the default rendering engine.</p>
|
921
|
+
|
922
|
+
|
923
|
+
</div>
|
924
|
+
</div>
|
925
|
+
<div class="tags">
|
926
|
+
|
927
|
+
<p class="tag_title">Returns:</p>
|
928
|
+
<ul class="return">
|
929
|
+
|
930
|
+
<li>
|
931
|
+
|
932
|
+
|
933
|
+
<span class='type'>(<tt>String</tt>)</span>
|
934
|
+
|
935
|
+
|
936
|
+
|
937
|
+
—
|
938
|
+
<div class='inline'><p>The default rendering engine.</p>
|
939
|
+
</div>
|
940
|
+
|
941
|
+
</li>
|
942
|
+
|
943
|
+
</ul>
|
944
|
+
|
945
|
+
</div><table class="source_code">
|
946
|
+
<tr>
|
947
|
+
<td>
|
948
|
+
<pre class="lines">
|
949
|
+
|
950
|
+
|
951
|
+
21
|
952
|
+
22
|
953
|
+
23
|
954
|
+
24
|
955
|
+
25
|
956
|
+
26
|
957
|
+
27
|
958
|
+
28
|
959
|
+
29
|
960
|
+
30
|
961
|
+
31
|
962
|
+
32
|
963
|
+
33
|
964
|
+
34
|
965
|
+
35
|
966
|
+
36
|
967
|
+
37
|
968
|
+
38
|
969
|
+
39
|
970
|
+
40
|
971
|
+
41
|
972
|
+
42
|
973
|
+
43
|
974
|
+
44
|
975
|
+
45
|
976
|
+
46
|
977
|
+
47
|
978
|
+
48
|
979
|
+
49
|
980
|
+
50
|
981
|
+
51
|
982
|
+
52
|
983
|
+
53
|
984
|
+
54
|
985
|
+
55
|
986
|
+
56
|
987
|
+
57
|
988
|
+
58
|
989
|
+
59
|
990
|
+
60
|
991
|
+
61
|
992
|
+
62
|
993
|
+
63
|
994
|
+
64
|
995
|
+
65
|
996
|
+
66
|
997
|
+
67
|
998
|
+
68
|
999
|
+
69
|
1000
|
+
70
|
1001
|
+
71
|
1002
|
+
72
|
1003
|
+
73
|
1004
|
+
74
|
1005
|
+
75
|
1006
|
+
76
|
1007
|
+
77
|
1008
|
+
78
|
1009
|
+
79
|
1010
|
+
80
|
1011
|
+
81
|
1012
|
+
82
|
1013
|
+
83
|
1014
|
+
84
|
1015
|
+
85
|
1016
|
+
86
|
1017
|
+
87
|
1018
|
+
88
|
1019
|
+
89
|
1020
|
+
90
|
1021
|
+
91
|
1022
|
+
92
|
1023
|
+
93
|
1024
|
+
94
|
1025
|
+
95
|
1026
|
+
96
|
1027
|
+
97
|
1028
|
+
98
|
1029
|
+
99
|
1030
|
+
100
|
1031
|
+
101
|
1032
|
+
102
|
1033
|
+
103
|
1034
|
+
104
|
1035
|
+
105
|
1036
|
+
106
|
1037
|
+
107
|
1038
|
+
108
|
1039
|
+
109
|
1040
|
+
110
|
1041
|
+
111
|
1042
|
+
112
|
1043
|
+
113
|
1044
|
+
114
|
1045
|
+
115
|
1046
|
+
116
|
1047
|
+
117
|
1048
|
+
118
|
1049
|
+
119
|
1050
|
+
120
|
1051
|
+
121
|
1052
|
+
122
|
1053
|
+
123
|
1054
|
+
124
|
1055
|
+
125
|
1056
|
+
126
|
1057
|
+
127
|
1058
|
+
128
|
1059
|
+
129
|
1060
|
+
130
|
1061
|
+
131
|
1062
|
+
132
|
1063
|
+
133
|
1064
|
+
134
|
1065
|
+
135
|
1066
|
+
136
|
1067
|
+
137
|
1068
|
+
138
|
1069
|
+
139
|
1070
|
+
140
|
1071
|
+
141</pre>
|
1072
|
+
</td>
|
1073
|
+
<td>
|
1074
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/parser_interface.rb', line 21</span>
|
1075
|
+
|
1076
|
+
<span class='kw'>module</span> <span class='const'>ClassMethods</span>
|
1077
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:locale</span>
|
1078
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:parsing_engine</span>
|
1079
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:rendering_engine</span>
|
1080
|
+
|
1081
|
+
<span class='comment'># Gets the default locale for mbrao.
|
1082
|
+
</span> <span class='comment'>#
|
1083
|
+
</span> <span class='comment'># @return [String] The default locale.
|
1084
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_locale'>locale</span>
|
1085
|
+
<span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='ivar'>@locale</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>en</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1086
|
+
<span class='kw'>end</span>
|
1087
|
+
|
1088
|
+
<span class='comment'># Gets the default parsing engine.
|
1089
|
+
</span> <span class='comment'>#
|
1090
|
+
</span> <span class='comment'># @return [String] The default parsing engine.
|
1091
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parsing_engine'>parsing_engine</span>
|
1092
|
+
<span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='ivar'>@parsing_engine</span><span class='comma'>,</span> <span class='symbol'>:plain_text</span><span class='comma'>,</span> <span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
1093
|
+
<span class='kw'>end</span>
|
1094
|
+
|
1095
|
+
<span class='comment'># Gets the default rendering engine.
|
1096
|
+
</span> <span class='comment'>#
|
1097
|
+
</span> <span class='comment'># @return [String] The default rendering engine.
|
1098
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_rendering_engine'>rendering_engine</span>
|
1099
|
+
<span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='ivar'>@rendering_engine</span><span class='comma'>,</span> <span class='symbol'>:html_pipeline</span><span class='comma'>,</span> <span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
1100
|
+
<span class='kw'>end</span>
|
1101
|
+
|
1102
|
+
<span class='comment'># Parses a source text.
|
1103
|
+
</span> <span class='comment'>#
|
1104
|
+
</span> <span class='comment'># @param content [Object] The content to parse.
|
1105
|
+
</span> <span class='comment'># @param options [Hash] A list of options for parsing.
|
1106
|
+
</span> <span class='comment'># @return [Content] The parsed data.
|
1107
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
1108
|
+
<span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1109
|
+
<span class='kw'>end</span>
|
1110
|
+
|
1111
|
+
<span class='comment'># Renders a content.
|
1112
|
+
</span> <span class='comment'>#
|
1113
|
+
</span> <span class='comment'># @param content [Content] The content to parse.
|
1114
|
+
</span> <span class='comment'># @param options [Hash] A list of options for renderer.
|
1115
|
+
</span> <span class='comment'># @param context [Hash] A context for rendering.
|
1116
|
+
</span> <span class='comment'># @return [String] The rendered content.
|
1117
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
1118
|
+
<span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span><span class='rparen'>)</span>
|
1119
|
+
<span class='kw'>end</span>
|
1120
|
+
|
1121
|
+
<span class='comment'># Returns an object as a JSON compatible hash
|
1122
|
+
</span> <span class='comment'>#
|
1123
|
+
</span> <span class='comment'># @param target [Object] The target to serialize.
|
1124
|
+
</span> <span class='comment'># @param keys [Array] The attributes to include in the serialization.
|
1125
|
+
</span> <span class='comment'># @param options [Hash] Options to modify behavior of the serialization.
|
1126
|
+
</span> <span class='comment'># The only supported value are:
|
1127
|
+
</span> <span class='comment'>#
|
1128
|
+
</span> <span class='comment'># * `:exclude`, an array of attributes to skip.
|
1129
|
+
</span> <span class='comment'># * `:exclude_empty`, if to exclude nil values. Default is `false`.
|
1130
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
1131
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
1132
|
+
<span class='id identifier rubyid_include_empty'>include_empty</span> <span class='op'>=</span> <span class='op'>!</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:exclude_empty</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span>
|
1133
|
+
<span class='id identifier rubyid_exclude'>exclude</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:exclude</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
1134
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
1135
|
+
|
1136
|
+
<span class='id identifier rubyid_map_to_json'>map_to_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='lparen'>(</span><span class='id identifier rubyid_keys'>keys</span> <span class='op'>-</span> <span class='id identifier rubyid_exclude'>exclude</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_include_empty'>include_empty</span><span class='rparen'>)</span>
|
1137
|
+
<span class='kw'>end</span>
|
1138
|
+
|
1139
|
+
<span class='comment'># Instantiates a new engine for rendering or parsing.
|
1140
|
+
</span> <span class='comment'>#
|
1141
|
+
</span> <span class='comment'># @param cls [String|Symbol|Object] If a `String` or a `Symbol`, then it will be the class of the engine.
|
1142
|
+
</span> <span class='comment'># @param type [Symbol] The type or engine. Can be `:parsing` or `:rendering`.
|
1143
|
+
</span> <span class='comment'># @return [Object] A new engine.
|
1144
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_create_engine'>create_engine</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:parsing</span><span class='rparen'>)</span>
|
1145
|
+
<span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:parsing</span> <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:rendering</span>
|
1146
|
+
<span class='op'>::</span><span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_find_class'>find_class</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>::Mbrao::</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_classify'>classify</span><span class='embexpr_end'>}</span><span class='tstring_content'>Engines::%CLASS%</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
1147
|
+
<span class='kw'>rescue</span> <span class='const'>NameError</span>
|
1148
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>UnknownEngine</span>
|
1149
|
+
<span class='kw'>end</span>
|
1150
|
+
|
1151
|
+
<span class='comment'># Returns a unique (singleton) instance of the parser.
|
1152
|
+
</span> <span class='comment'>#
|
1153
|
+
</span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
|
1154
|
+
</span> <span class='comment'># @return [Parser] The unique (singleton) instance of the parser.
|
1155
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
1156
|
+
<span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
|
1157
|
+
<span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
1158
|
+
<span class='kw'>end</span>
|
1159
|
+
|
1160
|
+
<span class='id identifier rubyid_private'>private</span>
|
1161
|
+
|
1162
|
+
<span class='comment'># Returns an attribute or a default value.
|
1163
|
+
</span> <span class='comment'>#
|
1164
|
+
</span> <span class='comment'># @param attr [Object ]The attribute to return.
|
1165
|
+
</span> <span class='comment'># @param default_value [Object] The value to return if `attr` is blank.
|
1166
|
+
</span> <span class='comment'># @param sanitizer [Symbol] An optional method to sanitize the returned value.
|
1167
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_attribute_or_default'>attribute_or_default</span><span class='lparen'>(</span><span class='id identifier rubyid_attr'>attr</span><span class='comma'>,</span> <span class='id identifier rubyid_default_value'>default_value</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_sanitizer'>sanitizer</span> <span class='op'>=</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
1168
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_attr'>attr</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_attr'>attr</span> <span class='op'>:</span> <span class='id identifier rubyid_default_value'>default_value</span>
|
1169
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_sanitizer'>sanitizer</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_sanitizer'>sanitizer</span>
|
1170
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
1171
|
+
<span class='kw'>end</span>
|
1172
|
+
|
1173
|
+
<span class='comment'># Perform the mapping to JSON.
|
1174
|
+
</span> <span class='comment'>#
|
1175
|
+
</span> <span class='comment'># @param target [Object] The target to serialize.
|
1176
|
+
</span> <span class='comment'># @param keys [Array] The attributes to include in the serialization.
|
1177
|
+
</span> <span class='comment'># @param include_empty [Boolean], if to include nil values.
|
1178
|
+
</span> <span class='comment'># @return [Hash] An hash with all attributes.
|
1179
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_map_to_json'>map_to_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_include_empty'>include_empty</span><span class='rparen'>)</span>
|
1180
|
+
<span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='op'>|</span>
|
1181
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_get_json_field'>get_json_field</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
1182
|
+
<span class='id identifier rubyid_rv'>rv</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span> <span class='kw'>if</span> <span class='id identifier rubyid_include_empty'>include_empty</span> <span class='op'>||</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
|
1183
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
1184
|
+
<span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_deep_stringify_keys'>deep_stringify_keys</span>
|
1185
|
+
<span class='kw'>end</span>
|
1186
|
+
|
1187
|
+
<span class='comment'># Get a field as JSON.
|
1188
|
+
</span> <span class='comment'>#
|
1189
|
+
</span> <span class='comment'># @param target [Object] The object containing the value.
|
1190
|
+
</span> <span class='comment'># @param method [Symbol] The method containing the value.
|
1191
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_get_json_field'>get_json_field</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
|
1192
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
|
1193
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>&&</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:as_json</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Symbol</span><span class='rparen'>)</span>
|
1194
|
+
<span class='id identifier rubyid_value'>value</span>
|
1195
|
+
<span class='kw'>end</span>
|
1196
|
+
<span class='kw'>end</span></pre>
|
1197
|
+
</td>
|
1198
|
+
</tr>
|
1199
|
+
</table>
|
1200
|
+
</div>
|
1201
|
+
|
1202
|
+
</div>
|
1203
|
+
|
1204
|
+
|
1205
|
+
<div id="instance_method_details" class="method_details_list">
|
1206
|
+
<h2>Instance Method Details</h2>
|
1207
|
+
|
1208
|
+
|
1209
|
+
<div class="method_details first">
|
1210
|
+
<h3 class="signature first" id="as_json-instance_method">
|
1211
|
+
|
1212
|
+
- (<tt>Hash</tt>) <strong>as_json</strong>(target, keys, options = {})
|
1213
|
+
|
1214
|
+
|
1215
|
+
|
1216
|
+
|
1217
|
+
|
1218
|
+
</h3><div class="docstring">
|
1219
|
+
<div class="discussion">
|
1220
|
+
<p>Returns an object as a JSON compatible hash</p>
|
1221
|
+
|
1222
|
+
|
1223
|
+
</div>
|
1224
|
+
</div>
|
1225
|
+
<div class="tags">
|
1226
|
+
<p class="tag_title">Parameters:</p>
|
1227
|
+
<ul class="param">
|
1228
|
+
|
1229
|
+
<li>
|
1230
|
+
|
1231
|
+
<span class='name'>target</span>
|
1232
|
+
|
1233
|
+
|
1234
|
+
<span class='type'>(<tt>Object</tt>)</span>
|
1235
|
+
|
1236
|
+
|
1237
|
+
|
1238
|
+
—
|
1239
|
+
<div class='inline'><p>The target to serialize.</p>
|
1240
|
+
</div>
|
1241
|
+
|
1242
|
+
</li>
|
1243
|
+
|
1244
|
+
<li>
|
1245
|
+
|
1246
|
+
<span class='name'>keys</span>
|
1247
|
+
|
1248
|
+
|
1249
|
+
<span class='type'>(<tt>Array</tt>)</span>
|
1250
|
+
|
1251
|
+
|
1252
|
+
|
1253
|
+
—
|
1254
|
+
<div class='inline'><p>The attributes to include in the serialization.</p>
|
1255
|
+
</div>
|
1256
|
+
|
1257
|
+
</li>
|
1258
|
+
|
1259
|
+
<li>
|
1260
|
+
|
1261
|
+
<span class='name'>options</span>
|
1262
|
+
|
1263
|
+
|
1264
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1265
|
+
|
1266
|
+
|
1267
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
1268
|
+
|
1269
|
+
|
1270
|
+
—
|
1271
|
+
<div class='inline'><p>Options to modify behavior of the serialization.
|
1272
|
+
The only supported value are:</p>
|
1273
|
+
|
1274
|
+
<ul>
|
1275
|
+
<li><code>:exclude</code>, an array of attributes to skip.</li>
|
1276
|
+
<li><code>:exclude_empty</code>, if to exclude nil values. Default is <code>false</code>.</li>
|
1277
|
+
</ul>
|
1278
|
+
</div>
|
1279
|
+
|
1280
|
+
</li>
|
1281
|
+
|
1282
|
+
</ul>
|
1283
|
+
|
1284
|
+
<p class="tag_title">Returns:</p>
|
1285
|
+
<ul class="return">
|
1286
|
+
|
1287
|
+
<li>
|
1288
|
+
|
1289
|
+
|
1290
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1291
|
+
|
1292
|
+
|
1293
|
+
|
1294
|
+
—
|
1295
|
+
<div class='inline'><p>An hash with all attributes.</p>
|
1296
|
+
</div>
|
1297
|
+
|
1298
|
+
</li>
|
1299
|
+
|
1300
|
+
</ul>
|
1301
|
+
|
1302
|
+
</div><table class="source_code">
|
1303
|
+
<tr>
|
1304
|
+
<td>
|
1305
|
+
<pre class="lines">
|
1306
|
+
|
1307
|
+
|
1308
|
+
76
|
1309
|
+
77
|
1310
|
+
78
|
1311
|
+
79
|
1312
|
+
80
|
1313
|
+
81
|
1314
|
+
82</pre>
|
1315
|
+
</td>
|
1316
|
+
<td>
|
1317
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/parser_interface.rb', line 76</span>
|
1318
|
+
|
1319
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='id identifier rubyid_keys'>keys</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
1320
|
+
<span class='id identifier rubyid_include_empty'>include_empty</span> <span class='op'>=</span> <span class='op'>!</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:exclude_empty</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span>
|
1321
|
+
<span class='id identifier rubyid_exclude'>exclude</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:exclude</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
1322
|
+
<span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='symbol'>:ensure_string</span><span class='rparen'>)</span>
|
1323
|
+
|
1324
|
+
<span class='id identifier rubyid_map_to_json'>map_to_json</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='comma'>,</span> <span class='lparen'>(</span><span class='id identifier rubyid_keys'>keys</span> <span class='op'>-</span> <span class='id identifier rubyid_exclude'>exclude</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_include_empty'>include_empty</span><span class='rparen'>)</span>
|
1325
|
+
<span class='kw'>end</span></pre>
|
1326
|
+
</td>
|
1327
|
+
</tr>
|
1328
|
+
</table>
|
1329
|
+
</div>
|
1330
|
+
|
1331
|
+
<div class="method_details ">
|
1332
|
+
<h3 class="signature " id="create_engine-instance_method">
|
1333
|
+
|
1334
|
+
- (<tt>Object</tt>) <strong>create_engine</strong>(cls, type = :parsing)
|
1335
|
+
|
1336
|
+
|
1337
|
+
|
1338
|
+
|
1339
|
+
|
1340
|
+
</h3><div class="docstring">
|
1341
|
+
<div class="discussion">
|
1342
|
+
<p>Instantiates a new engine for rendering or parsing.</p>
|
1343
|
+
|
1344
|
+
|
1345
|
+
</div>
|
1346
|
+
</div>
|
1347
|
+
<div class="tags">
|
1348
|
+
<p class="tag_title">Parameters:</p>
|
1349
|
+
<ul class="param">
|
1350
|
+
|
1351
|
+
<li>
|
1352
|
+
|
1353
|
+
<span class='name'>cls</span>
|
1354
|
+
|
1355
|
+
|
1356
|
+
<span class='type'>(<tt>String|Symbol|Object</tt>)</span>
|
1357
|
+
|
1358
|
+
|
1359
|
+
|
1360
|
+
—
|
1361
|
+
<div class='inline'><p>If a <code>String</code> or a <code>Symbol</code>, then it will be the class of the engine.</p>
|
1362
|
+
</div>
|
1363
|
+
|
1364
|
+
</li>
|
1365
|
+
|
1366
|
+
<li>
|
1367
|
+
|
1368
|
+
<span class='name'>type</span>
|
1369
|
+
|
1370
|
+
|
1371
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
1372
|
+
|
1373
|
+
|
1374
|
+
<em class="default">(defaults to: <tt>:parsing</tt>)</em>
|
1375
|
+
|
1376
|
+
|
1377
|
+
—
|
1378
|
+
<div class='inline'><p>The type or engine. Can be <code>:parsing</code> or <code>:rendering</code>.</p>
|
1379
|
+
</div>
|
1380
|
+
|
1381
|
+
</li>
|
1382
|
+
|
1383
|
+
</ul>
|
1384
|
+
|
1385
|
+
<p class="tag_title">Returns:</p>
|
1386
|
+
<ul class="return">
|
1387
|
+
|
1388
|
+
<li>
|
1389
|
+
|
1390
|
+
|
1391
|
+
<span class='type'>(<tt>Object</tt>)</span>
|
1392
|
+
|
1393
|
+
|
1394
|
+
|
1395
|
+
—
|
1396
|
+
<div class='inline'><p>A new engine.</p>
|
1397
|
+
</div>
|
1398
|
+
|
1399
|
+
</li>
|
1400
|
+
|
1401
|
+
</ul>
|
1402
|
+
|
1403
|
+
</div><table class="source_code">
|
1404
|
+
<tr>
|
1405
|
+
<td>
|
1406
|
+
<pre class="lines">
|
1407
|
+
|
1408
|
+
|
1409
|
+
89
|
1410
|
+
90
|
1411
|
+
91
|
1412
|
+
92
|
1413
|
+
93
|
1414
|
+
94</pre>
|
1415
|
+
</td>
|
1416
|
+
<td>
|
1417
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/parser_interface.rb', line 89</span>
|
1418
|
+
|
1419
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_create_engine'>create_engine</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:parsing</span><span class='rparen'>)</span>
|
1420
|
+
<span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:parsing</span> <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:rendering</span>
|
1421
|
+
<span class='op'>::</span><span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_find_class'>find_class</span><span class='lparen'>(</span><span class='id identifier rubyid_cls'>cls</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>::Mbrao::</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_classify'>classify</span><span class='embexpr_end'>}</span><span class='tstring_content'>Engines::%CLASS%</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
1422
|
+
<span class='kw'>rescue</span> <span class='const'>NameError</span>
|
1423
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>UnknownEngine</span>
|
1424
|
+
<span class='kw'>end</span></pre>
|
1425
|
+
</td>
|
1426
|
+
</tr>
|
1427
|
+
</table>
|
1428
|
+
</div>
|
1429
|
+
|
1430
|
+
<div class="method_details ">
|
1431
|
+
<h3 class="signature " id="instance-instance_method">
|
1432
|
+
|
1433
|
+
- (<tt><span class='object_link'><a href="../Parser.html" title="Mbrao::Parser (class)">Parser</a></span></tt>) <strong>instance</strong>(force = false)
|
1434
|
+
|
1435
|
+
|
1436
|
+
|
1437
|
+
|
1438
|
+
|
1439
|
+
</h3><div class="docstring">
|
1440
|
+
<div class="discussion">
|
1441
|
+
<p>Returns a unique (singleton) instance of the parser.</p>
|
1442
|
+
|
1443
|
+
|
1444
|
+
</div>
|
1445
|
+
</div>
|
1446
|
+
<div class="tags">
|
1447
|
+
<p class="tag_title">Parameters:</p>
|
1448
|
+
<ul class="param">
|
1449
|
+
|
1450
|
+
<li>
|
1451
|
+
|
1452
|
+
<span class='name'>force</span>
|
1453
|
+
|
1454
|
+
|
1455
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1456
|
+
|
1457
|
+
|
1458
|
+
<em class="default">(defaults to: <tt>false</tt>)</em>
|
1459
|
+
|
1460
|
+
|
1461
|
+
—
|
1462
|
+
<div class='inline'><p>If to force recreation of the instance.</p>
|
1463
|
+
</div>
|
1464
|
+
|
1465
|
+
</li>
|
1466
|
+
|
1467
|
+
</ul>
|
1468
|
+
|
1469
|
+
<p class="tag_title">Returns:</p>
|
1470
|
+
<ul class="return">
|
1471
|
+
|
1472
|
+
<li>
|
1473
|
+
|
1474
|
+
|
1475
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Parser.html" title="Mbrao::Parser (class)">Parser</a></span></tt>)</span>
|
1476
|
+
|
1477
|
+
|
1478
|
+
|
1479
|
+
—
|
1480
|
+
<div class='inline'><p>The unique (singleton) instance of the parser.</p>
|
1481
|
+
</div>
|
1482
|
+
|
1483
|
+
</li>
|
1484
|
+
|
1485
|
+
</ul>
|
1486
|
+
|
1487
|
+
</div><table class="source_code">
|
1488
|
+
<tr>
|
1489
|
+
<td>
|
1490
|
+
<pre class="lines">
|
1491
|
+
|
1492
|
+
|
1493
|
+
100
|
1494
|
+
101
|
1495
|
+
102
|
1496
|
+
103</pre>
|
1497
|
+
</td>
|
1498
|
+
<td>
|
1499
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/parser_interface.rb', line 100</span>
|
1500
|
+
|
1501
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
1502
|
+
<span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
|
1503
|
+
<span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Mbrao</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
1504
|
+
<span class='kw'>end</span></pre>
|
1505
|
+
</td>
|
1506
|
+
</tr>
|
1507
|
+
</table>
|
1508
|
+
</div>
|
1509
|
+
|
1510
|
+
<div class="method_details ">
|
1511
|
+
<h3 class="signature " id="parse-instance_method">
|
1512
|
+
|
1513
|
+
- (<tt><span class='object_link'><a href="../Content.html" title="Mbrao::Content (class)">Content</a></span></tt>) <strong>parse</strong>(content, options = {})
|
1514
|
+
|
1515
|
+
|
1516
|
+
|
1517
|
+
|
1518
|
+
|
1519
|
+
</h3><div class="docstring">
|
1520
|
+
<div class="discussion">
|
1521
|
+
<p>Parses a source text.</p>
|
1522
|
+
|
1523
|
+
|
1524
|
+
</div>
|
1525
|
+
</div>
|
1526
|
+
<div class="tags">
|
1527
|
+
<p class="tag_title">Parameters:</p>
|
1528
|
+
<ul class="param">
|
1529
|
+
|
1530
|
+
<li>
|
1531
|
+
|
1532
|
+
<span class='name'>content</span>
|
1533
|
+
|
1534
|
+
|
1535
|
+
<span class='type'>(<tt>Object</tt>)</span>
|
1536
|
+
|
1537
|
+
|
1538
|
+
|
1539
|
+
—
|
1540
|
+
<div class='inline'><p>The content to parse.</p>
|
1541
|
+
</div>
|
1542
|
+
|
1543
|
+
</li>
|
1544
|
+
|
1545
|
+
<li>
|
1546
|
+
|
1547
|
+
<span class='name'>options</span>
|
1548
|
+
|
1549
|
+
|
1550
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1551
|
+
|
1552
|
+
|
1553
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
1554
|
+
|
1555
|
+
|
1556
|
+
—
|
1557
|
+
<div class='inline'><p>A list of options for parsing.</p>
|
1558
|
+
</div>
|
1559
|
+
|
1560
|
+
</li>
|
1561
|
+
|
1562
|
+
</ul>
|
1563
|
+
|
1564
|
+
<p class="tag_title">Returns:</p>
|
1565
|
+
<ul class="return">
|
1566
|
+
|
1567
|
+
<li>
|
1568
|
+
|
1569
|
+
|
1570
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Content.html" title="Mbrao::Content (class)">Content</a></span></tt>)</span>
|
1571
|
+
|
1572
|
+
|
1573
|
+
|
1574
|
+
—
|
1575
|
+
<div class='inline'><p>The parsed data.</p>
|
1576
|
+
</div>
|
1577
|
+
|
1578
|
+
</li>
|
1579
|
+
|
1580
|
+
</ul>
|
1581
|
+
|
1582
|
+
</div><table class="source_code">
|
1583
|
+
<tr>
|
1584
|
+
<td>
|
1585
|
+
<pre class="lines">
|
1586
|
+
|
1587
|
+
|
1588
|
+
52
|
1589
|
+
53
|
1590
|
+
54</pre>
|
1591
|
+
</td>
|
1592
|
+
<td>
|
1593
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/parser_interface.rb', line 52</span>
|
1594
|
+
|
1595
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
1596
|
+
<span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1597
|
+
<span class='kw'>end</span></pre>
|
1598
|
+
</td>
|
1599
|
+
</tr>
|
1600
|
+
</table>
|
1601
|
+
</div>
|
1602
|
+
|
1603
|
+
<div class="method_details ">
|
1604
|
+
<h3 class="signature " id="render-instance_method">
|
1605
|
+
|
1606
|
+
- (<tt>String</tt>) <strong>render</strong>(content, options = {}, context = {})
|
1607
|
+
|
1608
|
+
|
1609
|
+
|
1610
|
+
|
1611
|
+
|
1612
|
+
</h3><div class="docstring">
|
1613
|
+
<div class="discussion">
|
1614
|
+
<p>Renders a content.</p>
|
1615
|
+
|
1616
|
+
|
1617
|
+
</div>
|
1618
|
+
</div>
|
1619
|
+
<div class="tags">
|
1620
|
+
<p class="tag_title">Parameters:</p>
|
1621
|
+
<ul class="param">
|
1622
|
+
|
1623
|
+
<li>
|
1624
|
+
|
1625
|
+
<span class='name'>content</span>
|
1626
|
+
|
1627
|
+
|
1628
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Content.html" title="Mbrao::Content (class)">Content</a></span></tt>)</span>
|
1629
|
+
|
1630
|
+
|
1631
|
+
|
1632
|
+
—
|
1633
|
+
<div class='inline'><p>The content to parse.</p>
|
1634
|
+
</div>
|
1635
|
+
|
1636
|
+
</li>
|
1637
|
+
|
1638
|
+
<li>
|
1639
|
+
|
1640
|
+
<span class='name'>options</span>
|
1641
|
+
|
1642
|
+
|
1643
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1644
|
+
|
1645
|
+
|
1646
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
1647
|
+
|
1648
|
+
|
1649
|
+
—
|
1650
|
+
<div class='inline'><p>A list of options for renderer.</p>
|
1651
|
+
</div>
|
1652
|
+
|
1653
|
+
</li>
|
1654
|
+
|
1655
|
+
<li>
|
1656
|
+
|
1657
|
+
<span class='name'>context</span>
|
1658
|
+
|
1659
|
+
|
1660
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1661
|
+
|
1662
|
+
|
1663
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
1664
|
+
|
1665
|
+
|
1666
|
+
—
|
1667
|
+
<div class='inline'><p>A context for rendering.</p>
|
1668
|
+
</div>
|
1669
|
+
|
1670
|
+
</li>
|
1671
|
+
|
1672
|
+
</ul>
|
1673
|
+
|
1674
|
+
<p class="tag_title">Returns:</p>
|
1675
|
+
<ul class="return">
|
1676
|
+
|
1677
|
+
<li>
|
1678
|
+
|
1679
|
+
|
1680
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1681
|
+
|
1682
|
+
|
1683
|
+
|
1684
|
+
—
|
1685
|
+
<div class='inline'><p>The rendered content.</p>
|
1686
|
+
</div>
|
1687
|
+
|
1688
|
+
</li>
|
1689
|
+
|
1690
|
+
</ul>
|
1691
|
+
|
1692
|
+
</div><table class="source_code">
|
1693
|
+
<tr>
|
1694
|
+
<td>
|
1695
|
+
<pre class="lines">
|
1696
|
+
|
1697
|
+
|
1698
|
+
62
|
1699
|
+
63
|
1700
|
+
64</pre>
|
1701
|
+
</td>
|
1702
|
+
<td>
|
1703
|
+
<pre class="code"><span class="info file"># File 'lib/mbrao/parser_interface.rb', line 62</span>
|
1704
|
+
|
1705
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
1706
|
+
<span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span><span class='rparen'>)</span>
|
1707
|
+
<span class='kw'>end</span></pre>
|
1708
|
+
</td>
|
1709
|
+
</tr>
|
1710
|
+
</table>
|
1711
|
+
</div>
|
1712
|
+
|
1713
|
+
</div>
|
1714
|
+
|
1715
|
+
</div>
|
1716
|
+
|
1717
|
+
<div id="footer">
|
1718
|
+
Generated on Sun May 11 18:17:17 2014 by
|
1719
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1720
|
+
0.8.7.4 (ruby-2.1.0).
|
1721
|
+
</div>
|
1722
|
+
|
1723
|
+
</body>
|
1724
|
+
</html>
|