mbrao 1.0.0

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