sdl4r 0.9.9 → 0.9.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/CHANGELOG +70 -1
  2. data/LICENSE +499 -497
  3. data/Rakefile +38 -28
  4. data/TODO +194 -45
  5. data/doc/classes/SDL4R/AbbreviationTimezoneProxy.html +151 -0
  6. data/doc/classes/SDL4R/ConstantTimezone.html +129 -0
  7. data/doc/classes/SDL4R/Element.html +148 -0
  8. data/doc/classes/SDL4R/Reader.html +683 -0
  9. data/doc/classes/SDL4R/RelativeTimezone.html +187 -0
  10. data/doc/classes/SDL4R/SdlBinary.html +188 -0
  11. data/doc/classes/SDL4R/SdlParseError.html +110 -0
  12. data/doc/classes/SDL4R/SdlTimeSpan.html +651 -0
  13. data/doc/classes/SDL4R/Serializer.html +557 -0
  14. data/doc/classes/SDL4R/Serializer/Ref.html +138 -0
  15. data/doc/classes/SDL4R/TZAbbreviationDB/Record.html +117 -0
  16. data/doc/classes/SDL4R/Tag.html +1274 -0
  17. data/doc/classes/SDL4R/Token.html +131 -0
  18. data/doc/created.rid +1 -0
  19. data/doc/files/CHANGELOG.html +290 -0
  20. data/doc/files/LICENSE.html +53 -0
  21. data/doc/files/README.html +405 -0
  22. data/doc/files/lib/sdl4r/abbreviation_timezone_proxy_rb.html +63 -0
  23. data/doc/files/lib/sdl4r/constant_timezone_rb.html +54 -0
  24. data/doc/files/lib/sdl4r/element_rb.html +54 -0
  25. data/doc/files/lib/sdl4r/reader_rb.html +68 -0
  26. data/doc/files/lib/sdl4r/relative_timezone_rb.html +62 -0
  27. data/doc/files/lib/sdl4r/sdl4r_rb.html +66 -0
  28. data/doc/files/lib/sdl4r/sdl4r_tzinfo_rb.html +64 -0
  29. data/doc/files/lib/sdl4r/sdl4r_version_rb.html +54 -0
  30. data/doc/files/lib/sdl4r/sdl_binary_rb.html +54 -0
  31. data/doc/files/lib/sdl4r/sdl_parse_error_rb.html +54 -0
  32. data/doc/files/lib/sdl4r/sdl_time_span_rb.html +54 -0
  33. data/doc/files/lib/sdl4r/serializer_rb.html +62 -0
  34. data/doc/files/lib/sdl4r/tag_rb.html +66 -0
  35. data/doc/files/lib/sdl4r/token_rb.html +54 -0
  36. data/doc/files/lib/sdl4r/tokenizer_rb.html +64 -0
  37. data/doc/files/lib/sdl4r/tz_abbreviation_db_rb.html +67 -0
  38. data/doc/files/lib/sdl4r_rb.html +54 -0
  39. data/doc/files/lib/sdl4r_tzinfo_rb.html +54 -0
  40. data/doc/fr_class_index.html +23 -0
  41. data/doc/fr_file_index.html +40 -0
  42. data/doc/fr_method_index.html +4711 -0
  43. data/doc/index.html +15 -0
  44. data/doc/rdoc-style.css +328 -0
  45. data/lib/sdl4r.rb +3 -1
  46. data/lib/sdl4r/abbreviation_timezone_proxy.rb +38 -0
  47. data/lib/sdl4r/constant_timezone.rb +58 -0
  48. data/{test/sdl4r/sdl_test.rb → lib/sdl4r/element.rb} +19 -14
  49. data/lib/sdl4r/reader.rb +772 -0
  50. data/lib/sdl4r/relative_timezone.rb +156 -0
  51. data/lib/sdl4r/sdl4r.rb +187 -45
  52. data/lib/sdl4r/sdl4r_tzinfo.rb +75 -0
  53. data/lib/sdl4r/sdl4r_version.rb +24 -0
  54. data/lib/sdl4r/sdl_parse_error.rb +1 -1
  55. data/lib/sdl4r/sdl_time_span.rb +5 -1
  56. data/lib/sdl4r/serializer.rb +473 -60
  57. data/lib/sdl4r/tag.rb +126 -51
  58. data/lib/sdl4r/token.rb +49 -0
  59. data/lib/sdl4r/tokenizer.rb +431 -0
  60. data/lib/sdl4r/tz_abbreviation_db.rb +266 -0
  61. data/read_jprof.html +16934 -0
  62. data/read_jprof_pull.html +14451 -0
  63. data/read_prof.html +4983 -0
  64. data/read_prof_pull.html +4896 -0
  65. data/test/sdl4r/parser_test.rb +577 -503
  66. data/test/sdl4r/read_jprof.rb +58 -0
  67. data/test/sdl4r/read_prof.rb +70 -0
  68. data/test/sdl4r/reader_test.rb +173 -0
  69. data/test/sdl4r/relative_timezone_test.rb +102 -0
  70. data/test/sdl4r/sdl4r_test.rb +611 -528
  71. data/test/sdl4r/sdl4r_tzinfo_test.rb +108 -0
  72. data/test/sdl4r/sdl_test_case.rb +60 -0
  73. data/test/sdl4r/serializer_test.rb +448 -11
  74. data/test/sdl4r/tag_test.rb +84 -5
  75. data/test/sdl4r/tokenizer_test.rb +128 -0
  76. metadata +69 -11
  77. data/lib/sdl4r/parser.rb +0 -648
  78. data/lib/sdl4r/parser/reader.rb +0 -184
  79. data/lib/sdl4r/parser/time_span_with_zone.rb +0 -57
  80. data/lib/sdl4r/parser/token.rb +0 -138
  81. data/lib/sdl4r/parser/tokenizer.rb +0 -507
@@ -0,0 +1,129 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html lang='en'>
3
+ <head>
4
+ <title>: SDL4R::ConstantTimezone [RDoc: Simple Declarative Language for Ruby]</title>
5
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
6
+ <link href='../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
7
+ <script type='text/javascript'>
8
+ //<![CDATA[
9
+ function popupCode(url) {
10
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
11
+ }
12
+
13
+ function toggleCode(id) {
14
+ var code = document.getElementById(id)
15
+
16
+ code.style.display = code.style.display != 'block' ? 'block' : 'none'
17
+ return true
18
+ }
19
+
20
+ // Make codeblocks hidden by default
21
+ document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
22
+ //]]>
23
+ </script>
24
+ </head>
25
+ <body class='page'>
26
+ <div class='class' id='wrapper'>
27
+ <div class='header'>
28
+ <h1 class='name'>
29
+ <span class='type'>Class</span>
30
+ SDL4R::ConstantTimezone
31
+ </h1>
32
+ <ol class='paths'>
33
+ <li>
34
+ <a href="../../files/lib/sdl4r/constant_timezone_rb.html">lib/sdl4r/constant_timezone.rb</a>
35
+ </li>
36
+ </ol>
37
+ <div class='parent'>
38
+ Parent:
39
+ <strong>TZInfo::Timezone</strong>
40
+ </div>
41
+ </div>
42
+ <div id='content'>
43
+ <div id='text'>
44
+ <div id='description'>
45
+ <p>
46
+ A timezone like &#8216;JST&#8217; that has only one definition whatever the
47
+ place and the time.
48
+ </p>
49
+ </div>
50
+ <div id='method-list'>
51
+ <h2>Methods</h2>
52
+ <h3>public class</h3>
53
+ <ol>
54
+ <li><a href="#M000007">new</a></li>
55
+ </ol>
56
+ <h3>public instance</h3>
57
+ <ol>
58
+ <li><a href="#M000008">identifier</a></li>
59
+ <li><a href="#M000009">period_for_utc</a></li>
60
+ <li><a href="#M000010">periods_for_local</a></li>
61
+ </ol>
62
+ </div>
63
+ <div id='section'>
64
+ <div id='methods'>
65
+ <h2>Public class methods</h2>
66
+ <div class='method public-class' id='method-M000007'>
67
+ <a name='M000007'></a>
68
+ <div class='synopsis'>
69
+ <span class='name'>new</span>
70
+ <span class='arguments'>(identifier, utc_offset, std_offset)</span>
71
+ </div>
72
+ <div class='source'>
73
+ <a class='source-toggle' href='#' onclick="toggleCode('M000007-source'); return false">
74
+ [show source]
75
+ </a>
76
+ <pre id='M000007-source'> <span class="ruby-comment cmt"># File lib/sdl4r/constant_timezone.rb, line 28</span>&#x000A;28: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">identifier</span>, <span class="ruby-identifier">utc_offset</span>, <span class="ruby-identifier">std_offset</span>)&#x000A;29: <span class="ruby-identifier">o</span> = <span class="ruby-keyword kw">super</span>()&#x000A;30: <span class="ruby-identifier">o</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">:_initialize</span>, <span class="ruby-identifier">identifier</span>, <span class="ruby-identifier">utc_offset</span>, <span class="ruby-identifier">std_offset</span>)&#x000A;31: <span class="ruby-identifier">o</span>&#x000A;32: <span class="ruby-keyword kw">end</span></pre>
77
+ </div>
78
+ </div>
79
+ <h2>Public instance methods</h2>
80
+ <div class='method public-instance' id='method-M000008'>
81
+ <a name='M000008'></a>
82
+ <div class='synopsis'>
83
+ <span class='name'>identifier</span>
84
+ <span class='arguments'>()</span>
85
+ </div>
86
+ <div class='source'>
87
+ <a class='source-toggle' href='#' onclick="toggleCode('M000008-source'); return false">
88
+ [show source]
89
+ </a>
90
+ <pre id='M000008-source'> <span class="ruby-comment cmt"># File lib/sdl4r/constant_timezone.rb, line 46</span>&#x000A;46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">identifier</span>&#x000A;47: <span class="ruby-ivar">@identifier</span>&#x000A;48: <span class="ruby-keyword kw">end</span></pre>
91
+ </div>
92
+ </div>
93
+ <div class='method public-instance' id='method-M000009'>
94
+ <a name='M000009'></a>
95
+ <div class='synopsis'>
96
+ <span class='name'>period_for_utc</span>
97
+ <span class='arguments'>(utc)</span>
98
+ </div>
99
+ <div class='source'>
100
+ <a class='source-toggle' href='#' onclick="toggleCode('M000009-source'); return false">
101
+ [show source]
102
+ </a>
103
+ <pre id='M000009-source'> <span class="ruby-comment cmt"># File lib/sdl4r/constant_timezone.rb, line 50</span>&#x000A;50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">period_for_utc</span>(<span class="ruby-identifier">utc</span>)&#x000A;51: <span class="ruby-ivar">@period</span>&#x000A;52: <span class="ruby-keyword kw">end</span></pre>
104
+ </div>
105
+ </div>
106
+ <div class='method public-instance' id='method-M000010'>
107
+ <a name='M000010'></a>
108
+ <div class='synopsis'>
109
+ <span class='name'>periods_for_local</span>
110
+ <span class='arguments'>(local)</span>
111
+ </div>
112
+ <div class='source'>
113
+ <a class='source-toggle' href='#' onclick="toggleCode('M000010-source'); return false">
114
+ [show source]
115
+ </a>
116
+ <pre id='M000010-source'> <span class="ruby-comment cmt"># File lib/sdl4r/constant_timezone.rb, line 54</span>&#x000A;54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">periods_for_local</span>(<span class="ruby-identifier">local</span>)&#x000A;55: [<span class="ruby-ivar">@period</span>]&#x000A;56: <span class="ruby-keyword kw">end</span></pre>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ </div>
122
+ </div>
123
+ <div id='footer-push'></div>
124
+ </div>
125
+ <div id='footer'>
126
+ <a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
127
+ </div>
128
+ </body>
129
+ </html>
@@ -0,0 +1,148 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html lang='en'>
3
+ <head>
4
+ <title>: SDL4R::Element [RDoc: Simple Declarative Language for Ruby]</title>
5
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
6
+ <link href='../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
7
+ <script type='text/javascript'>
8
+ //<![CDATA[
9
+ function popupCode(url) {
10
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
11
+ }
12
+
13
+ function toggleCode(id) {
14
+ var code = document.getElementById(id)
15
+
16
+ code.style.display = code.style.display != 'block' ? 'block' : 'none'
17
+ return true
18
+ }
19
+
20
+ // Make codeblocks hidden by default
21
+ document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
22
+ //]]>
23
+ </script>
24
+ </head>
25
+ <body class='page'>
26
+ <div class='class' id='wrapper'>
27
+ <div class='header'>
28
+ <h1 class='name'>
29
+ <span class='type'>Class</span>
30
+ SDL4R::Element
31
+ </h1>
32
+ <ol class='paths'>
33
+ <li>
34
+ <a href="../../files/lib/sdl4r/element_rb.html">lib/sdl4r/element.rb</a>
35
+ </li>
36
+ </ol>
37
+ <div class='parent'>
38
+ Parent:
39
+ <strong>Object</strong>
40
+ </div>
41
+ </div>
42
+ <div id='content'>
43
+ <div id='text'>
44
+ <div id='description'>
45
+ <p>
46
+ Used internally by <a href="Reader.html">Reader</a> for keeping track of
47
+ its state. It shouldn&#8217;t be used directly as it is subject to changes
48
+ as <a href="Reader.html">Reader</a> is modified.
49
+ </p>
50
+ </div>
51
+ <div id='method-list'>
52
+ <h2>Methods</h2>
53
+ <h3>public class</h3>
54
+ <ol>
55
+ <li><a href="#M000011">new</a></li>
56
+ </ol>
57
+ <h3>public instance</h3>
58
+ <ol>
59
+ <li><a href="#M000012">add_attribute</a></li>
60
+ <li><a href="#M000013">add_value</a></li>
61
+ </ol>
62
+ </div>
63
+ <div id='section'>
64
+ <div id='attribute-list'>
65
+ <h2 class='section-bar'>Attributes</h2>
66
+ <div class='name-list'>
67
+ <table>
68
+ <tr class='top-aligned-row context-row'>
69
+ <td class='context-item-name'>attributes</td>
70
+ <td class='context-item-value'>[R]</td>
71
+ <td class='context-item-desc'></td>
72
+ </tr>
73
+ <tr class='top-aligned-row context-row'>
74
+ <td class='context-item-name'>name</td>
75
+ <td class='context-item-value'>[R]</td>
76
+ <td class='context-item-desc'></td>
77
+ </tr>
78
+ <tr class='top-aligned-row context-row'>
79
+ <td class='context-item-name'>prefix</td>
80
+ <td class='context-item-value'>[R]</td>
81
+ <td class='context-item-desc'></td>
82
+ </tr>
83
+ <tr class='top-aligned-row context-row'>
84
+ <td class='context-item-name'>self_closing</td>
85
+ <td class='context-item-value'>[RW]</td>
86
+ <td class='context-item-desc'></td>
87
+ </tr>
88
+ <tr class='top-aligned-row context-row'>
89
+ <td class='context-item-name'>values</td>
90
+ <td class='context-item-value'>[R]</td>
91
+ <td class='context-item-desc'></td>
92
+ </tr>
93
+ </table>
94
+ </div>
95
+ </div>
96
+ <div id='methods'>
97
+ <h2>Public class methods</h2>
98
+ <div class='method public-class' id='method-M000011'>
99
+ <a name='M000011'></a>
100
+ <div class='synopsis'>
101
+ <span class='name'>new</span>
102
+ <span class='arguments'>(prefix, name)</span>
103
+ </div>
104
+ <div class='source'>
105
+ <a class='source-toggle' href='#' onclick="toggleCode('M000011-source'); return false">
106
+ [show source]
107
+ </a>
108
+ <pre id='M000011-source'> <span class="ruby-comment cmt"># File lib/sdl4r/element.rb, line 29</span>&#x000A;29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">name</span>)&#x000A;30: <span class="ruby-ivar">@prefix</span> = <span class="ruby-identifier">prefix</span>&#x000A;31: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>&#x000A;32: <span class="ruby-ivar">@attributes</span> = []&#x000A;33: <span class="ruby-ivar">@values</span> = []&#x000A;34: <span class="ruby-ivar">@self_closing</span> = <span class="ruby-keyword kw">false</span>&#x000A;35: <span class="ruby-keyword kw">end</span></pre>
109
+ </div>
110
+ </div>
111
+ <h2>Public instance methods</h2>
112
+ <div class='method public-instance' id='method-M000012'>
113
+ <a name='M000012'></a>
114
+ <div class='synopsis'>
115
+ <span class='name'>add_attribute</span>
116
+ <span class='arguments'>(prefix, name, value)</span>
117
+ </div>
118
+ <div class='source'>
119
+ <a class='source-toggle' href='#' onclick="toggleCode('M000012-source'); return false">
120
+ [show source]
121
+ </a>
122
+ <pre id='M000012-source'> <span class="ruby-comment cmt"># File lib/sdl4r/element.rb, line 37</span>&#x000A;37: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_attribute</span>(<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)&#x000A;38: <span class="ruby-ivar">@attributes</span> <span class="ruby-operator">&lt;&lt;</span> [[<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">name</span>], <span class="ruby-identifier">value</span>]&#x000A;39: <span class="ruby-keyword kw">end</span></pre>
123
+ </div>
124
+ </div>
125
+ <div class='method public-instance' id='method-M000013'>
126
+ <a name='M000013'></a>
127
+ <div class='synopsis'>
128
+ <span class='name'>add_value</span>
129
+ <span class='arguments'>(value)</span>
130
+ </div>
131
+ <div class='source'>
132
+ <a class='source-toggle' href='#' onclick="toggleCode('M000013-source'); return false">
133
+ [show source]
134
+ </a>
135
+ <pre id='M000013-source'> <span class="ruby-comment cmt"># File lib/sdl4r/element.rb, line 41</span>&#x000A;41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_value</span>(<span class="ruby-identifier">value</span>)&#x000A;42: <span class="ruby-ivar">@values</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">value</span>&#x000A;43: <span class="ruby-keyword kw">end</span></pre>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ </div>
140
+ </div>
141
+ </div>
142
+ <div id='footer-push'></div>
143
+ </div>
144
+ <div id='footer'>
145
+ <a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
146
+ </div>
147
+ </body>
148
+ </html>
@@ -0,0 +1,683 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html lang='en'>
3
+ <head>
4
+ <title>: SDL4R::Reader [RDoc: Simple Declarative Language for Ruby]</title>
5
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
6
+ <link href='../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
7
+ <script type='text/javascript'>
8
+ //<![CDATA[
9
+ function popupCode(url) {
10
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
11
+ }
12
+
13
+ function toggleCode(id) {
14
+ var code = document.getElementById(id)
15
+
16
+ code.style.display = code.style.display != 'block' ? 'block' : 'none'
17
+ return true
18
+ }
19
+
20
+ // Make codeblocks hidden by default
21
+ document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
22
+ //]]>
23
+ </script>
24
+ </head>
25
+ <body class='page'>
26
+ <div class='class' id='wrapper'>
27
+ <div class='header'>
28
+ <h1 class='name'>
29
+ <span class='type'>Class</span>
30
+ SDL4R::Reader
31
+ </h1>
32
+ <ol class='paths'>
33
+ <li>
34
+ <a href="../../files/lib/sdl4r/reader_rb.html">lib/sdl4r/reader.rb</a>
35
+ </li>
36
+ </ol>
37
+ <div class='parent'>
38
+ Parent:
39
+ <strong>Object</strong>
40
+ </div>
41
+ </div>
42
+ <div id='content'>
43
+ <div id='text'>
44
+ <div id='description'>
45
+ <p>
46
+ Implementation of a pull parser for SDL designed after the model of
47
+ Nokogiri::XML::Reader.
48
+ </p>
49
+ </div>
50
+ <div id='method-list'>
51
+ <h2>Methods</h2>
52
+ <h3>public class</h3>
53
+ <ol>
54
+ <li><a href="#M000014">add_values_handler</a></li>
55
+ <li><a href="#M000027">from_io</a></li>
56
+ <li><a href="#M000028">from_memory</a></li>
57
+ <li><a href="#M000015">new</a></li>
58
+ </ol>
59
+ <h3>public instance</h3>
60
+ <ol>
61
+ <li><a href="#M000017">attribute</a></li>
62
+ <li><a href="#M000018">attribute_at</a></li>
63
+ <li><a href="#M000019">attribute_count</a></li>
64
+ <li><a href="#M000016">attributes</a></li>
65
+ <li><a href="#M000020">attributes?</a></li>
66
+ <li><a href="#M000029">each</a></li>
67
+ <li><a href="#M000021">each_tag</a></li>
68
+ <li><a href="#M000033">new_time</a></li>
69
+ <li><a href="#M000038">parse_character</a></li>
70
+ <li><a href="#M000041">parse_date</a></li>
71
+ <li><a href="#M000034">parse_double_quote_string</a></li>
72
+ <li><a href="#M000040">parse_float</a></li>
73
+ <li><a href="#M000039">parse_integer</a></li>
74
+ <li><a href="#M000035">parse_multiline_backquote_string</a></li>
75
+ <li><a href="#M000037">parse_multiline_binary</a></li>
76
+ <li><a href="#M000036">parse_multiline_double_quote_string</a></li>
77
+ <li><a href="#M000042">parse_time_span</a></li>
78
+ <li><a href="#M000031">raise_unexpected_token</a></li>
79
+ <li><a href="#M000030">read</a></li>
80
+ <li><a href="#M000022">self_closing?</a></li>
81
+ <li><a href="#M000024">value</a></li>
82
+ <li><a href="#M000026">value?</a></li>
83
+ <li><a href="#M000023">values</a></li>
84
+ <li><a href="#M000025">values?</a></li>
85
+ </ol>
86
+ <h3>protected instance</h3>
87
+ <ol>
88
+ <li><a href="#M000032">set_mode</a></li>
89
+ </ol>
90
+ </div>
91
+ <div id='section'>
92
+ <div id='constants-list'>
93
+ <h2>Constants</h2>
94
+ <div class='name-list'>
95
+ <table summary='Constants'>
96
+ <tr class='top-aligned-row context-row'>
97
+ <td class='context-item-name'>TYPE_ELEMENT</td>
98
+ <td>=</td>
99
+ <td class='context-item-value'>:ELEMENT</td>
100
+ </tr>
101
+ <tr class='top-aligned-row context-row'>
102
+ <td class='context-item-name'>TYPE_END_ELEMENT</td>
103
+ <td>=</td>
104
+ <td class='context-item-value'>:END_ELEMENT</td>
105
+ </tr>
106
+ </table>
107
+ </div>
108
+ </div>
109
+ <div id='attribute-list'>
110
+ <h2 class='section-bar'>Attributes</h2>
111
+ <div class='name-list'>
112
+ <table>
113
+ <tr class='top-aligned-row context-row'>
114
+ <td class='context-item-name'>depth</td>
115
+ <td class='context-item-value'>[R]</td>
116
+ <td class='context-item-desc'>
117
+
118
+ Depth of the current SDL node. Depth of top nodes is 1 (0 would be the root
119
+ that the <a href="Reader.html">Reader</a> doesn&#8217;t traverse).
120
+ </td>
121
+ </tr>
122
+ <tr class='top-aligned-row context-row'>
123
+ <td class='context-item-name'>name</td>
124
+ <td class='context-item-value'>[R]</td>
125
+ <td class='context-item-desc'>
126
+
127
+ Name of the traversed SDL node.
128
+ </td>
129
+ </tr>
130
+ <tr class='top-aligned-row context-row'>
131
+ <td class='context-item-name'>node_type</td>
132
+ <td class='context-item-value'>[R]</td>
133
+ <td class='context-item-desc'>
134
+
135
+ Type of the traversed SDL node (e.g. TYPE_ELEMENT).
136
+ </td>
137
+ </tr>
138
+ <tr class='top-aligned-row context-row'>
139
+ <td class='context-item-name'>prefix</td>
140
+ <td class='context-item-value'>[R]</td>
141
+ <td class='context-item-desc'>
142
+
143
+ Prefix (namespace) of the traversed SDL node.
144
+ </td>
145
+ </tr>
146
+ </table>
147
+ </div>
148
+ </div>
149
+ <div id='methods'>
150
+ <h2>Public class methods</h2>
151
+ <div class='method public-class' id='method-M000014'>
152
+ <a name='M000014'></a>
153
+ <div class='synopsis'>
154
+ <span class='name'>add_values_handler</span>
155
+ <span class='arguments'>(map, handler)</span>
156
+ </div>
157
+ <div class='description'>
158
+ <p>
159
+ @private
160
+ </p>
161
+ </div>
162
+ <div class='source'>
163
+ <a class='source-toggle' href='#' onclick="toggleCode('M000014-source'); return false">
164
+ [show source]
165
+ </a>
166
+ <pre id='M000014-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 40</span>&#x000A;40: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">add_values_handler</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">handler</span>)&#x000A;41: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:NULL</span>] = <span class="ruby-identifier">handler</span>&#x000A;42: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:INTEGER</span>] = <span class="ruby-identifier">handler</span>&#x000A;43: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:FLOAT</span>] = <span class="ruby-identifier">handler</span>&#x000A;44: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:BOOLEAN</span>] = <span class="ruby-identifier">handler</span>&#x000A;45: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:CHARACTER</span>] = <span class="ruby-identifier">handler</span>&#x000A;46: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:INLINE_BACKQUOTE_STRING</span>] = <span class="ruby-identifier">handler</span>&#x000A;47: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:INLINE_DOUBLE_QUOTE_STRING</span>] = <span class="ruby-identifier">handler</span>&#x000A;48: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:MULTILINE_BACKQUOTE_STRING_START</span>] = <span class="ruby-identifier">handler</span>&#x000A;49: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:MULTILINE_DOUBLE_QUOTE_STRING_START</span>] = <span class="ruby-identifier">handler</span>&#x000A;50: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:INLINE_BINARY</span>] = <span class="ruby-identifier">handler</span>&#x000A;51: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:MULTILINE_BINARY_START</span>] = <span class="ruby-identifier">handler</span>&#x000A;52: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:DATE</span>] = <span class="ruby-identifier">handler</span>&#x000A;53: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:TIME_OR_TIMESPAN</span>] = <span class="ruby-identifier">handler</span>&#x000A;54: <span class="ruby-keyword kw">end</span></pre>
167
+ </div>
168
+ </div>
169
+ <div class='method public-class' id='method-M000027'>
170
+ <a name='M000027'></a>
171
+ <div class='synopsis'>
172
+ <span class='name'>from_io</span>
173
+ <span class='arguments'>(io)</span>
174
+ </div>
175
+ <div class='source'>
176
+ <a class='source-toggle' href='#' onclick="toggleCode('M000027-source'); return false">
177
+ [show source]
178
+ </a>
179
+ <pre id='M000027-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 280</span>&#x000A;280: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">from_io</span>(<span class="ruby-identifier">io</span>)&#x000A;281: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">io</span>)&#x000A;282: <span class="ruby-keyword kw">end</span></pre>
180
+ </div>
181
+ </div>
182
+ <div class='method public-class' id='method-M000028'>
183
+ <a name='M000028'></a>
184
+ <div class='synopsis'>
185
+ <span class='name'>from_memory</span>
186
+ <span class='arguments'>(s)</span>
187
+ </div>
188
+ <div class='source'>
189
+ <a class='source-toggle' href='#' onclick="toggleCode('M000028-source'); return false">
190
+ [show source]
191
+ </a>
192
+ <pre id='M000028-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 284</span>&#x000A;284: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">from_memory</span>(<span class="ruby-identifier">s</span>)&#x000A;285: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">s</span>))&#x000A;286: <span class="ruby-keyword kw">end</span></pre>
193
+ </div>
194
+ </div>
195
+ <div class='method public-class' id='method-M000015'>
196
+ <a name='M000015'></a>
197
+ <div class='synopsis'>
198
+ <span class='name'>new</span>
199
+ <span class='arguments'>(io)</span>
200
+ </div>
201
+ <div class='source'>
202
+ <a class='source-toggle' href='#' onclick="toggleCode('M000015-source'); return false">
203
+ [show source]
204
+ </a>
205
+ <pre id='M000015-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 154</span>&#x000A;154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">io</span>)&#x000A;155: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;io == nil&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">io</span>.<span class="ruby-identifier">nil?</span>&#x000A;156: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;io is not an IO&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">io</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:gets</span>)&#x000A;157: &#x000A;158: <span class="ruby-ivar">@io</span> = <span class="ruby-identifier">io</span>&#x000A;159: <span class="ruby-ivar">@tokenizer</span> = <span class="ruby-constant">Tokenizer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@io</span>)&#x000A;160: <span class="ruby-ivar">@element</span> = <span class="ruby-keyword kw">nil</span>&#x000A;161: <span class="ruby-ivar">@element_pool</span> = []&#x000A;162: <span class="ruby-ivar">@depth</span> = <span class="ruby-value">1</span>&#x000A;163: &#x000A;164: <span class="ruby-identifier">clear_node</span>()&#x000A;165: <span class="ruby-identifier">set_mode</span>(<span class="ruby-identifier">:top</span>)&#x000A;166: <span class="ruby-keyword kw">end</span></pre>
206
+ </div>
207
+ </div>
208
+ <h2>Public instance methods</h2>
209
+ <div class='method public-instance' id='method-M000017'>
210
+ <a name='M000017'></a>
211
+ <div class='synopsis'>
212
+ <span class='name'>attribute</span>
213
+ <span class='arguments'>(prefix, name = nil)</span>
214
+ </div>
215
+ <div class='description'>
216
+ <p>
217
+ @return the value of the specified attribute.
218
+ </p>
219
+ <p>
220
+ @overload attribute(name) @overload attribute (prefix, name)
221
+ </p>
222
+ </div>
223
+ <div class='source'>
224
+ <a class='source-toggle' href='#' onclick="toggleCode('M000017-source'); return false">
225
+ [show source]
226
+ </a>
227
+ <pre id='M000017-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 178</span>&#x000A;178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attribute</span>(<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)&#x000A;179: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@element</span>&#x000A;180: &#x000A;181: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>&#x000A;182: <span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">name</span> = <span class="ruby-identifier">prefix</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>&#x000A;183: <span class="ruby-keyword kw">else</span>&#x000A;184: <span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">name</span> = <span class="ruby-value str">''</span>, <span class="ruby-identifier">prefix</span>.<span class="ruby-identifier">to_s</span>&#x000A;185: <span class="ruby-keyword kw">end</span>&#x000A;186: &#x000A;187: <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span>&#x000A;188: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">attr</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">prefix</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">attr</span>[<span class="ruby-value">0</span>][<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">name</span>&#x000A;189: <span class="ruby-keyword kw">end</span>&#x000A;190: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>&#x000A;191: <span class="ruby-keyword kw">end</span></pre>
228
+ </div>
229
+ </div>
230
+ <div class='method public-instance' id='method-M000018'>
231
+ <a name='M000018'></a>
232
+ <div class='synopsis'>
233
+ <span class='name'>attribute_at</span>
234
+ <span class='arguments'>(index)</span>
235
+ </div>
236
+ <div class='description'>
237
+ <p>
238
+ @return the value of the attribute at the specified index.
239
+ </p>
240
+ </div>
241
+ <div class='source'>
242
+ <a class='source-toggle' href='#' onclick="toggleCode('M000018-source'); return false">
243
+ [show source]
244
+ </a>
245
+ <pre id='M000018-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 194</span>&#x000A;194: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attribute_at</span>(<span class="ruby-identifier">index</span>)&#x000A;195: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@element</span>&#x000A;196: <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">index</span>]&#x000A;197: <span class="ruby-keyword kw">else</span>&#x000A;198: <span class="ruby-keyword kw">nil</span>&#x000A;199: <span class="ruby-keyword kw">end</span>&#x000A;200: <span class="ruby-keyword kw">end</span></pre>
246
+ </div>
247
+ </div>
248
+ <div class='method public-instance' id='method-M000019'>
249
+ <a name='M000019'></a>
250
+ <div class='synopsis'>
251
+ <span class='name'>attribute_count</span>
252
+ <span class='arguments'>()</span>
253
+ </div>
254
+ <div class='description'>
255
+ <p>
256
+ @return [Integer] number of attributes in the current element
257
+ </p>
258
+ </div>
259
+ <div class='source'>
260
+ <a class='source-toggle' href='#' onclick="toggleCode('M000019-source'); return false">
261
+ [show source]
262
+ </a>
263
+ <pre id='M000019-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 203</span>&#x000A;203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attribute_count</span>&#x000A;204: <span class="ruby-ivar">@element</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>&#x000A;205: <span class="ruby-keyword kw">end</span></pre>
264
+ </div>
265
+ </div>
266
+ <div class='method public-instance' id='method-M000016'>
267
+ <a name='M000016'></a>
268
+ <div class='synopsis'>
269
+ <span class='name'>attributes</span>
270
+ <span class='arguments'>()</span>
271
+ </div>
272
+ <div class='description'>
273
+ <p>
274
+ @return [Array] an array of the attributes structured as follows:
275
+ </p>
276
+ <pre>&lt;code&gt;[ [[&quot;ns1&quot;, &quot;attr1&quot;], 123], [[&quot;&quot;, &quot;attr2&quot;], true] ]&lt;/code&gt;</pre>
277
+ </div>
278
+ <div class='source'>
279
+ <a class='source-toggle' href='#' onclick="toggleCode('M000016-source'); return false">
280
+ [show source]
281
+ </a>
282
+ <pre id='M000016-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 170</span>&#x000A;170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes</span>&#x000A;171: <span class="ruby-ivar">@element</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">clone</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>&#x000A;172: <span class="ruby-keyword kw">end</span></pre>
283
+ </div>
284
+ </div>
285
+ <div class='method public-instance' id='method-M000020'>
286
+ <a name='M000020'></a>
287
+ <div class='synopsis'>
288
+ <span class='name'>attributes?</span>
289
+ <span class='arguments'>()</span>
290
+ </div>
291
+ <div class='description'>
292
+ <p>
293
+ @return [boolean] whether the current element has attributes.
294
+ </p>
295
+ </div>
296
+ <div class='source'>
297
+ <a class='source-toggle' href='#' onclick="toggleCode('M000020-source'); return false">
298
+ [show source]
299
+ </a>
300
+ <pre id='M000020-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 208</span>&#x000A;208: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes?</span>&#x000A;209: <span class="ruby-ivar">@element</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>&#x000A;210: <span class="ruby-keyword kw">end</span></pre>
301
+ </div>
302
+ </div>
303
+ <div class='method public-instance' id='method-M000029'>
304
+ <a name='M000029'></a>
305
+ <div class='synopsis'>
306
+ <span class='name'>each</span>
307
+ <span class='arguments'>(&amp;block)</span>
308
+ </div>
309
+ <div class='description'>
310
+ <p>
311
+ Enumerates all the parsed nodes and calls the given block.
312
+ </p>
313
+ <p>
314
+ @yield [Reader] the current node
315
+ </p>
316
+ <p>
317
+ @example
318
+ </p>
319
+ <pre>open(&quot;sample.sdl&quot;) do |io|&#x000A; SDL4R::Reader.from_io(io).each do |node]&#x000A; puts node.node_type&#x000A; end&#x000A;end</pre>
320
+ </div>
321
+ <div class='source'>
322
+ <a class='source-toggle' href='#' onclick="toggleCode('M000029-source'); return false">
323
+ [show source]
324
+ </a>
325
+ <pre id='M000029-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 299</span>&#x000A;299: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)&#x000A;300: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">node</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">read</span>&#x000A;301: <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">node</span>)&#x000A;302: <span class="ruby-keyword kw">end</span>&#x000A;303: <span class="ruby-keyword kw">end</span></pre>
326
+ </div>
327
+ </div>
328
+ <div class='method public-instance' id='method-M000021'>
329
+ <a name='M000021'></a>
330
+ <div class='synopsis'>
331
+ <span class='name'>each_tag</span>
332
+ <span class='arguments'>(only_top_tags = false) {|tag if !only_top_tags or @depth &lt;= 1| ...}</span>
333
+ </div>
334
+ <div class='description'>
335
+ <p>
336
+ Calls the given block for each encountered <a href="Tag.html">Tag</a>. The
337
+ block is called when the <a href="Tag.html">Tag</a> definition is complete.
338
+ </p>
339
+ <p>
340
+ @param [boolean] only_top_tags if true only top Tags are enumerated @yield
341
+ [Tag] called at each <a href="Tag.html">Tag</a>
342
+ </p>
343
+ </div>
344
+ <div class='source'>
345
+ <a class='source-toggle' href='#' onclick="toggleCode('M000021-source'); return false">
346
+ [show source]
347
+ </a>
348
+ <pre id='M000021-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 218</span>&#x000A;218: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_tag</span>(<span class="ruby-identifier">only_top_tags</span> = <span class="ruby-keyword kw">false</span>)&#x000A;219: <span class="ruby-identifier">stack</span> = []&#x000A;220: <span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt"># Only used during definition (values + attributes)</span>&#x000A;221: &#x000A;222: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">node</span> = <span class="ruby-identifier">read</span>&#x000A;223: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">node_type</span>&#x000A;224: &#x000A;225: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">TYPE_ELEMENT</span>&#x000A;226: <span class="ruby-identifier">tag</span> = <span class="ruby-constant">Tag</span>.<span class="ruby-identifier">new</span> <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">prefix</span>, <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">name</span>&#x000A;227: <span class="ruby-identifier">node</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attribute</span><span class="ruby-operator">|</span>&#x000A;228: <span class="ruby-identifier">tag</span>.<span class="ruby-identifier">set_attribute</span>(<span class="ruby-identifier">attribute</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>], <span class="ruby-identifier">attribute</span>[<span class="ruby-value">0</span>][<span class="ruby-value">1</span>], <span class="ruby-identifier">attribute</span>[<span class="ruby-value">1</span>])&#x000A;229: <span class="ruby-keyword kw">end</span>&#x000A;230: <span class="ruby-identifier">values</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">values</span>&#x000A;231: <span class="ruby-identifier">tag</span>.<span class="ruby-identifier">values</span> = <span class="ruby-identifier">values</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">values</span>&#x000A;232: <span class="ruby-identifier">stack</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">add_child</span>(<span class="ruby-identifier">tag</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">stack</span>.<span class="ruby-identifier">empty?</span>&#x000A;233: &#x000A;234: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">self_closing?</span>&#x000A;235: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">tag</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">only_top_tags</span> <span class="ruby-keyword kw">or</span> <span class="ruby-ivar">@depth</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">1</span>&#x000A;236: <span class="ruby-keyword kw">else</span>&#x000A;237: <span class="ruby-identifier">stack</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">tag</span>&#x000A;238: <span class="ruby-keyword kw">end</span>&#x000A;239: &#x000A;240: <span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt"># definition ended here</span>&#x000A;241: &#x000A;242: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">TYPE_END_ELEMENT</span>&#x000A;243: <span class="ruby-identifier">tag</span> = <span class="ruby-identifier">stack</span>.<span class="ruby-identifier">pop</span>&#x000A;244: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">tag</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">only_top_tags</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">depth</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">1</span>&#x000A;245: <span class="ruby-keyword kw">end</span>&#x000A;246: <span class="ruby-keyword kw">end</span>&#x000A;247: <span class="ruby-keyword kw">end</span></pre>
349
+ </div>
350
+ </div>
351
+ <div class='method public-instance' id='method-M000033'>
352
+ <a name='M000033'></a>
353
+ <div class='synopsis'>
354
+ <span class='name'>new_time</span>
355
+ <span class='arguments'>(year, month, day, hour, min, sec, msec, timezone_code)</span>
356
+ </div>
357
+ <div class='description'>
358
+ <p>
359
+ Creates and returns the object representing a datetime (calls
360
+ SDL4R#new_time by default). Can be overriden.
361
+ </p>
362
+ <pre>def new_time(year, month, day, hour, min, sec, msec, timezone_code)&#x000A; Time.utc(year, month, day, hour, min, sec, msec, timezone_code)&#x000A;end</pre>
363
+ </div>
364
+ <div class='source'>
365
+ <a class='source-toggle' href='#' onclick="toggleCode('M000033-source'); return false">
366
+ [show source]
367
+ </a>
368
+ <pre id='M000033-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 359</span>&#x000A;359: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">new_time</span>(<span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">msec</span>, <span class="ruby-identifier">timezone_code</span>)&#x000A;360: <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">new_time</span>(<span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">msec</span>, <span class="ruby-identifier">timezone_code</span>)&#x000A;361: <span class="ruby-keyword kw">end</span></pre>
369
+ </div>
370
+ </div>
371
+ <div class='method public-instance' id='method-M000038'>
372
+ <a name='M000038'></a>
373
+ <div class='synopsis'>
374
+ <span class='name'>parse_character</span>
375
+ <span class='arguments'>(s)</span>
376
+ </div>
377
+ <div class='description'>
378
+ <p>
379
+ @private
380
+ </p>
381
+ </div>
382
+ <div class='source'>
383
+ <a class='source-toggle' href='#' onclick="toggleCode('M000038-source'); return false">
384
+ [show source]
385
+ </a>
386
+ <pre id='M000038-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 548</span>&#x000A;548: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_character</span>(<span class="ruby-identifier">s</span>)&#x000A;549: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">s</span>&#x000A;550: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A.\Z/</span>&#x000A;551: <span class="ruby-identifier">s</span>&#x000A;552: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;\\\\&quot;</span>&#x000A;553: <span class="ruby-value str">&quot;\\&quot;</span>&#x000A;554: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;\\'&quot;</span>&#x000A;555: <span class="ruby-value str">&quot;'&quot;</span>&#x000A;556: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;\\n&quot;</span>&#x000A;557: <span class="ruby-value str">&quot;\n&quot;</span>&#x000A;558: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;\\r&quot;</span>&#x000A;559: <span class="ruby-value str">&quot;\r&quot;</span>&#x000A;560: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;\\t&quot;</span>&#x000A;561: <span class="ruby-value str">&quot;\t&quot;</span>&#x000A;562: <span class="ruby-keyword kw">else</span>&#x000A;563: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;illegal character literal #{s.inspect}&quot;</span>&#x000A;564: <span class="ruby-keyword kw">end</span>&#x000A;565: <span class="ruby-keyword kw">end</span></pre>
387
+ </div>
388
+ </div>
389
+ <div class='method public-instance' id='method-M000041'>
390
+ <a name='M000041'></a>
391
+ <div class='synopsis'>
392
+ <span class='name'>parse_date</span>
393
+ <span class='arguments'>(literal)</span>
394
+ </div>
395
+ <div class='description'>
396
+ <p>
397
+ Parses the <tt>literal</tt> into a returned Date object.
398
+ </p>
399
+ <p>
400
+ Raises an ArgumentError if <tt>literal</tt> has a bad format.
401
+ </p>
402
+ <p>
403
+ @private
404
+ </p>
405
+ </div>
406
+ <div class='source'>
407
+ <a class='source-toggle' href='#' onclick="toggleCode('M000041-source'); return false">
408
+ [show source]
409
+ </a>
410
+ <pre id='M000041-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 592</span>&#x000A;592: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_date</span>(<span class="ruby-identifier">literal</span>)&#x000A;593: <span class="ruby-comment cmt"># here, we're being stricter than strptime() alone as we forbid trailing chars (also faster)</span>&#x000A;594: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">literal</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\A(-?\d+)\/(\d+)\/(\d+)\Z/</span>&#x000A;595: <span class="ruby-identifier">date_year</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">to_i</span>&#x000A;596: <span class="ruby-identifier">date_month</span> = <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">to_i</span>&#x000A;597: <span class="ruby-identifier">date_day</span> = <span class="ruby-identifier">$3</span>.<span class="ruby-identifier">to_i</span>&#x000A;598: &#x000A;599: <span class="ruby-identifier">skip_whitespaces</span>(<span class="ruby-keyword kw">false</span>)&#x000A;600: &#x000A;601: <span class="ruby-comment cmt"># Check whether the next tag is the time part</span>&#x000A;602: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">token_type</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:TIME_OR_TIMESPAN</span>&#x000A;603: <span class="ruby-comment cmt"># Is it a time or timespan?</span>&#x000A;604: <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">msec</span>, <span class="ruby-identifier">zone</span> =&#x000A;605: <span class="ruby-identifier">parse_time_span_and_time_zone</span>(<span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">token</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>)&#x000A;606: &#x000A;607: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span>&#x000A;608: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">unread</span>&#x000A;609: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Date</span>.<span class="ruby-identifier">civil</span>(<span class="ruby-identifier">date_year</span>, <span class="ruby-identifier">date_month</span>, <span class="ruby-identifier">date_day</span>)&#x000A;610: <span class="ruby-keyword kw">else</span>&#x000A;611: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">new_time</span>(<span class="ruby-identifier">date_year</span>, <span class="ruby-identifier">date_month</span>, <span class="ruby-identifier">date_day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">msec</span>, <span class="ruby-identifier">zone</span>)&#x000A;612: <span class="ruby-keyword kw">end</span>&#x000A;613: &#x000A;614: <span class="ruby-keyword kw">else</span>&#x000A;615: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">unread</span>&#x000A;616: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Date</span>.<span class="ruby-identifier">civil</span>(<span class="ruby-identifier">date_year</span>, <span class="ruby-identifier">date_month</span>, <span class="ruby-identifier">date_day</span>)&#x000A;617: <span class="ruby-keyword kw">end</span>&#x000A;618: &#x000A;619: <span class="ruby-keyword kw">else</span>&#x000A;620: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Malformed Date &lt;#{literal}&gt;&quot;</span>&#x000A;621: <span class="ruby-keyword kw">end</span>&#x000A;622: <span class="ruby-keyword kw">end</span></pre>
411
+ </div>
412
+ </div>
413
+ <div class='method public-instance' id='method-M000034'>
414
+ <a name='M000034'></a>
415
+ <div class='synopsis'>
416
+ <span class='name'>parse_double_quote_string</span>
417
+ <span class='arguments'>(s)</span>
418
+ </div>
419
+ <div class='description'>
420
+ <p>
421
+ @private
422
+ </p>
423
+ </div>
424
+ <div class='source'>
425
+ <a class='source-toggle' href='#' onclick="toggleCode('M000034-source'); return false">
426
+ [show source]
427
+ </a>
428
+ <pre id='M000034-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 470</span>&#x000A;470: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_double_quote_string</span>(<span class="ruby-identifier">s</span>)&#x000A;471: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">empty?</span>&#x000A;472: &#x000A;473: <span class="ruby-identifier">string</span> = <span class="ruby-value str">&quot;&quot;</span>&#x000A;474: <span class="ruby-identifier">escaped</span> = <span class="ruby-keyword kw">false</span>&#x000A;475: &#x000A;476: <span class="ruby-identifier">s</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>&#x000A;477: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">escaped</span>&#x000A;478: <span class="ruby-identifier">escaped</span> = <span class="ruby-keyword kw">false</span>&#x000A;479: &#x000A;480: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">c</span>&#x000A;481: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;\\&quot;</span>, <span class="ruby-value str">&quot;\&quot;&quot;</span>&#x000A;482: <span class="ruby-identifier">string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>&#x000A;483: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;n&quot;</span>&#x000A;484: <span class="ruby-identifier">string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?\n</span>&#x000A;485: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;r&quot;</span>&#x000A;486: <span class="ruby-identifier">string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?\r</span>&#x000A;487: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;t&quot;</span>&#x000A;488: <span class="ruby-identifier">string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">?\t</span>&#x000A;489: <span class="ruby-keyword kw">else</span>&#x000A;490: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">raise_parse_error</span>(<span class="ruby-node">&quot;Illegal escape character in string literal: '#{c}'.&quot;</span>)&#x000A;491: <span class="ruby-keyword kw">end</span>&#x000A;492: &#x000A;493: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\\&quot;</span>&#x000A;494: <span class="ruby-identifier">escaped</span> = <span class="ruby-keyword kw">true</span>&#x000A;495: &#x000A;496: <span class="ruby-keyword kw">else</span>&#x000A;497: <span class="ruby-identifier">string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>&#x000A;498: <span class="ruby-keyword kw">end</span>&#x000A;499: <span class="ruby-keyword kw">end</span>&#x000A;500: &#x000A;501: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">raise_parse_error</span>(<span class="ruby-value str">&quot;orphan backslash&quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">escaped</span>&#x000A;502: &#x000A;503: <span class="ruby-identifier">string</span>&#x000A;504: <span class="ruby-keyword kw">end</span></pre>
429
+ </div>
430
+ </div>
431
+ <div class='method public-instance' id='method-M000040'>
432
+ <a name='M000040'></a>
433
+ <div class='synopsis'>
434
+ <span class='name'>parse_float</span>
435
+ <span class='arguments'>(s)</span>
436
+ </div>
437
+ <div class='description'>
438
+ <p>
439
+ @private
440
+ </p>
441
+ </div>
442
+ <div class='source'>
443
+ <a class='source-toggle' href='#' onclick="toggleCode('M000040-source'); return false">
444
+ [show source]
445
+ </a>
446
+ <pre id='M000040-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 577</span>&#x000A;577: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_float</span>(<span class="ruby-identifier">s</span>)&#x000A;578: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\A([^BDF]+)BD\Z/i</span>&#x000A;579: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">BigDecimal</span>(<span class="ruby-identifier">$1</span>)&#x000A;580: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\A([^BDF]+)[FD]\Z/i</span>&#x000A;581: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Float</span>(<span class="ruby-identifier">$1</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">raise_parse_error</span>(<span class="ruby-node">&quot;not a float '#{$1}'&quot;</span>)&#x000A;582: <span class="ruby-keyword kw">else</span>&#x000A;583: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Float</span>(<span class="ruby-identifier">s</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">raise_parse_error</span>(<span class="ruby-node">&quot;not a float '#{s}'&quot;</span>)&#x000A;584: <span class="ruby-keyword kw">end</span>&#x000A;585: <span class="ruby-keyword kw">end</span></pre>
447
+ </div>
448
+ </div>
449
+ <div class='method public-instance' id='method-M000039'>
450
+ <a name='M000039'></a>
451
+ <div class='synopsis'>
452
+ <span class='name'>parse_integer</span>
453
+ <span class='arguments'>(s)</span>
454
+ </div>
455
+ <div class='description'>
456
+ <p>
457
+ @private
458
+ </p>
459
+ </div>
460
+ <div class='source'>
461
+ <a class='source-toggle' href='#' onclick="toggleCode('M000039-source'); return false">
462
+ [show source]
463
+ </a>
464
+ <pre id='M000039-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 568</span>&#x000A;568: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_integer</span>(<span class="ruby-identifier">s</span>)&#x000A;569: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\A([^L]+)L\Z/i</span>&#x000A;570: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Integer</span>(<span class="ruby-identifier">$1</span>)&#x000A;571: <span class="ruby-keyword kw">else</span>&#x000A;572: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Integer</span>(<span class="ruby-identifier">s</span>)&#x000A;573: <span class="ruby-keyword kw">end</span>&#x000A;574: <span class="ruby-keyword kw">end</span></pre>
465
+ </div>
466
+ </div>
467
+ <div class='method public-instance' id='method-M000035'>
468
+ <a name='M000035'></a>
469
+ <div class='synopsis'>
470
+ <span class='name'>parse_multiline_backquote_string</span>
471
+ <span class='arguments'>(s)</span>
472
+ </div>
473
+ <div class='description'>
474
+ <p>
475
+ @private
476
+ </p>
477
+ </div>
478
+ <div class='source'>
479
+ <a class='source-toggle' href='#' onclick="toggleCode('M000035-source'); return false">
480
+ [show source]
481
+ </a>
482
+ <pre id='M000035-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 530</span>&#x000A;530: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_multiline_backquote_string</span>(<span class="ruby-identifier">s</span>)&#x000A;531: <span class="ruby-identifier">parse_multiline_string</span> <span class="ruby-identifier">s</span>, <span class="ruby-identifier">:MULTILINE_BACKQUOTE_STRING_PART</span>, <span class="ruby-identifier">:MULTILINE_BACKQUOTE_STRING_END</span>&#x000A;532: <span class="ruby-keyword kw">end</span></pre>
483
+ </div>
484
+ </div>
485
+ <div class='method public-instance' id='method-M000037'>
486
+ <a name='M000037'></a>
487
+ <div class='synopsis'>
488
+ <span class='name'>parse_multiline_binary</span>
489
+ <span class='arguments'>(s)</span>
490
+ </div>
491
+ <div class='description'>
492
+ <p>
493
+ @private
494
+ </p>
495
+ </div>
496
+ <div class='source'>
497
+ <a class='source-toggle' href='#' onclick="toggleCode('M000037-source'); return false">
498
+ [show source]
499
+ </a>
500
+ <pre id='M000037-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 542</span>&#x000A;542: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_multiline_binary</span>(<span class="ruby-identifier">s</span>)&#x000A;543: <span class="ruby-identifier">literal</span> = <span class="ruby-identifier">parse_multiline_string</span> <span class="ruby-identifier">s</span>, <span class="ruby-identifier">:MULTILINE_BINARY_PART</span>, <span class="ruby-identifier">:MULTILINE_BINARY_END</span>&#x000A;544: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">SdlBinary</span>.<span class="ruby-identifier">decode64</span>(<span class="ruby-identifier">literal</span>)&#x000A;545: <span class="ruby-keyword kw">end</span></pre>
501
+ </div>
502
+ </div>
503
+ <div class='method public-instance' id='method-M000036'>
504
+ <a name='M000036'></a>
505
+ <div class='synopsis'>
506
+ <span class='name'>parse_multiline_double_quote_string</span>
507
+ <span class='arguments'>(s)</span>
508
+ </div>
509
+ <div class='description'>
510
+ <p>
511
+ @private
512
+ </p>
513
+ </div>
514
+ <div class='source'>
515
+ <a class='source-toggle' href='#' onclick="toggleCode('M000036-source'); return false">
516
+ [show source]
517
+ </a>
518
+ <pre id='M000036-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 535</span>&#x000A;535: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_multiline_double_quote_string</span>(<span class="ruby-identifier">s</span>)&#x000A;536: <span class="ruby-identifier">parse_double_quote_string</span>(&#x000A;537: <span class="ruby-identifier">parse_multiline_string</span>(&#x000A;538: <span class="ruby-identifier">s</span>, <span class="ruby-identifier">:MULTILINE_DOUBLE_QUOTE_STRING_PART</span>, <span class="ruby-identifier">:MULTILINE_DOUBLE_QUOTE_STRING_END</span>))&#x000A;539: <span class="ruby-keyword kw">end</span></pre>
519
+ </div>
520
+ </div>
521
+ <div class='method public-instance' id='method-M000042'>
522
+ <a name='M000042'></a>
523
+ <div class='synopsis'>
524
+ <span class='name'>parse_time_span</span>
525
+ <span class='arguments'>(literal)</span>
526
+ </div>
527
+ <div class='description'>
528
+ <p>
529
+ Parses <tt>literal</tt> (String) into the corresponding SDLTimeSpan, which
530
+ is then returned.
531
+ </p>
532
+ <p>
533
+ Raises an ArgumentError if the literal is not a correct timespan literal.
534
+ </p>
535
+ <p>
536
+ @private
537
+ </p>
538
+ </div>
539
+ <div class='source'>
540
+ <a class='source-toggle' href='#' onclick="toggleCode('M000042-source'); return false">
541
+ [show source]
542
+ </a>
543
+ <pre id='M000042-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 630</span>&#x000A;630: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_time_span</span>(<span class="ruby-identifier">literal</span>)&#x000A;631: <span class="ruby-identifier">days</span>, <span class="ruby-identifier">hours</span>, <span class="ruby-identifier">minutes</span>, <span class="ruby-identifier">seconds</span>, <span class="ruby-identifier">milliseconds</span>, <span class="ruby-identifier">zone_code</span> =&#x000A;632: <span class="ruby-identifier">parse_time_span_and_time_zone</span>(<span class="ruby-identifier">literal</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>)&#x000A;633: &#x000A;634: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone_code</span>&#x000A;635: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">raise_parse_error</span>(<span class="ruby-node">&quot;got a time when expecting a timespan: \&quot;#{literal}\&quot;&quot;</span>)&#x000A;636: <span class="ruby-keyword kw">end</span>&#x000A;637: &#x000A;638: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-constant">SdlTimeSpan</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">days</span> <span class="ruby-operator">||</span> <span class="ruby-value">0</span>, <span class="ruby-identifier">hours</span>, <span class="ruby-identifier">minutes</span>, <span class="ruby-identifier">seconds</span>, <span class="ruby-identifier">milliseconds</span>)&#x000A;639: <span class="ruby-keyword kw">end</span></pre>
544
+ </div>
545
+ </div>
546
+ <div class='method public-instance' id='method-M000031'>
547
+ <a name='M000031'></a>
548
+ <div class='synopsis'>
549
+ <span class='name'>raise_unexpected_token</span>
550
+ <span class='arguments'>()</span>
551
+ </div>
552
+ <div class='description'>
553
+ <p>
554
+ @private
555
+ </p>
556
+ </div>
557
+ <div class='source'>
558
+ <a class='source-toggle' href='#' onclick="toggleCode('M000031-source'); return false">
559
+ [show source]
560
+ </a>
561
+ <pre id='M000031-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 337</span>&#x000A;337: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">raise_unexpected_token</span>&#x000A;338: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">raise_parse_error</span>(&#x000A;339: <span class="ruby-node">&quot;unexpected token #{@tokenizer.token_type} #{@tokenizer.token.inspect}&quot;</span>,&#x000A;340: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">token_line_no</span>,&#x000A;341: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">token_pos</span>)&#x000A;342: <span class="ruby-keyword kw">end</span></pre>
562
+ </div>
563
+ </div>
564
+ <div class='method public-instance' id='method-M000030'>
565
+ <a name='M000030'></a>
566
+ <div class='synopsis'>
567
+ <span class='name'>read</span>
568
+ <span class='arguments'>()</span>
569
+ </div>
570
+ <div class='description'>
571
+ <p>
572
+ Reads the next node in the SDL structure.
573
+ </p>
574
+ <p>
575
+ @example
576
+ </p>
577
+ <pre>open(&quot;sample.sdl&quot;) do |io|&#x000A; reader = SDL4R::Reader.from_io(io)&#x000A; while node = reader.read&#x000A; puts node.node_type&#x000A; end&#x000A;end</pre>
578
+ <p>
579
+ @return [Reader] returns a <a href="Reader.html">Reader</a> if a new node
580
+ has been reached or <tt>nil</tt> if the end of file
581
+ </p>
582
+ <pre>has been reached.</pre>
583
+ </div>
584
+ <div class='source'>
585
+ <a class='source-toggle' href='#' onclick="toggleCode('M000030-source'); return false">
586
+ [show source]
587
+ </a>
588
+ <pre id='M000030-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 317</span>&#x000A;317: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read</span>&#x000A;318: <span class="ruby-identifier">clear_node</span>&#x000A;319: &#x000A;320: <span class="ruby-identifier">node</span> = <span class="ruby-keyword kw">nil</span>&#x000A;321: &#x000A;322: <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">read</span>&#x000A;323: <span class="ruby-identifier">handler</span> = <span class="ruby-ivar">@handler_set</span>[<span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">token_type</span>]&#x000A;324: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">handler</span>&#x000A;325: <span class="ruby-identifier">raise_unexpected_token</span>&#x000A;326: <span class="ruby-keyword kw">end</span>&#x000A;327: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">handler</span>.<span class="ruby-identifier">call</span>(<span class="ruby-keyword kw">self</span>)&#x000A;328: <span class="ruby-identifier">node</span> = <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@node_type</span> <span class="ruby-comment cmt"># otherwise, we reached the end of the file</span>&#x000A;329: <span class="ruby-keyword kw">break</span>&#x000A;330: <span class="ruby-keyword kw">end</span>&#x000A;331: <span class="ruby-keyword kw">end</span>&#x000A;332: &#x000A;333: <span class="ruby-identifier">node</span>&#x000A;334: <span class="ruby-keyword kw">end</span></pre>
589
+ </div>
590
+ </div>
591
+ <div class='method public-instance' id='method-M000022'>
592
+ <a name='M000022'></a>
593
+ <div class='synopsis'>
594
+ <span class='name'>self_closing?</span>
595
+ <span class='arguments'>()</span>
596
+ </div>
597
+ <div class='source'>
598
+ <a class='source-toggle' href='#' onclick="toggleCode('M000022-source'); return false">
599
+ [show source]
600
+ </a>
601
+ <pre id='M000022-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 249</span>&#x000A;249: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">self_closing?</span>&#x000A;250: <span class="ruby-ivar">@element</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">self_closing</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span>&#x000A;251: <span class="ruby-keyword kw">end</span></pre>
602
+ </div>
603
+ </div>
604
+ <div class='method public-instance' id='method-M000024'>
605
+ <a name='M000024'></a>
606
+ <div class='synopsis'>
607
+ <span class='name'>value</span>
608
+ <span class='arguments'>()</span>
609
+ </div>
610
+ <div class='description'>
611
+ <p>
612
+ Alias for <a href="Reader.html#M000023">values</a>
613
+ </p>
614
+ </div>
615
+ </div>
616
+ <div class='method public-instance' id='method-M000026'>
617
+ <a name='M000026'></a>
618
+ <div class='synopsis'>
619
+ <span class='name'>value?</span>
620
+ <span class='arguments'>()</span>
621
+ </div>
622
+ <div class='description'>
623
+ <p>
624
+ Alias for <a href="Reader.html#M000025">values?</a>
625
+ </p>
626
+ </div>
627
+ </div>
628
+ <div class='method public-instance' id='method-M000023'>
629
+ <a name='M000023'></a>
630
+ <div class='synopsis'>
631
+ <span class='name'>values</span>
632
+ <span class='arguments'>()</span>
633
+ </div>
634
+ <div class='description'>
635
+ <p>
636
+ @return the values of the current node, nil if there are none.
637
+ </p>
638
+ </div>
639
+ <div class='source'>
640
+ <a class='source-toggle' href='#' onclick="toggleCode('M000023-source'); return false">
641
+ [show source]
642
+ </a>
643
+ <pre id='M000023-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 261</span>&#x000A;261: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values</span>&#x000A;262: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@element</span>&#x000A;263: <span class="ruby-identifier">values</span> = <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">values</span>&#x000A;264: <span class="ruby-identifier">values</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">values</span>.<span class="ruby-identifier">clone</span>&#x000A;265: <span class="ruby-keyword kw">else</span>&#x000A;266: <span class="ruby-ivar">@value</span>&#x000A;267: <span class="ruby-keyword kw">end</span>&#x000A;268: <span class="ruby-keyword kw">end</span></pre>
644
+ </div>
645
+ </div>
646
+ <div class='method public-instance' id='method-M000025'>
647
+ <a name='M000025'></a>
648
+ <div class='synopsis'>
649
+ <span class='name'>values?</span>
650
+ <span class='arguments'>()</span>
651
+ </div>
652
+ <div class='source'>
653
+ <a class='source-toggle' href='#' onclick="toggleCode('M000025-source'); return false">
654
+ [show source]
655
+ </a>
656
+ <pre id='M000025-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 271</span>&#x000A;271: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values?</span>&#x000A;272: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@element</span>&#x000A;273: <span class="ruby-operator">!</span><span class="ruby-ivar">@element</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">empty?</span>&#x000A;274: <span class="ruby-keyword kw">else</span>&#x000A;275: <span class="ruby-operator">!</span><span class="ruby-ivar">@value</span>.<span class="ruby-identifier">nil?</span>&#x000A;276: <span class="ruby-keyword kw">end</span>&#x000A;277: <span class="ruby-keyword kw">end</span></pre>
657
+ </div>
658
+ </div>
659
+ <h2>Protected instance methods</h2>
660
+ <div class='method protected-instance' id='method-M000032'>
661
+ <a name='M000032'></a>
662
+ <div class='synopsis'>
663
+ <span class='name'>set_mode</span>
664
+ <span class='arguments'>(mode)</span>
665
+ </div>
666
+ <div class='source'>
667
+ <a class='source-toggle' href='#' onclick="toggleCode('M000032-source'); return false">
668
+ [show source]
669
+ </a>
670
+ <pre id='M000032-source'> <span class="ruby-comment cmt"># File lib/sdl4r/reader.rb, line 344</span>&#x000A;344: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_mode</span>(<span class="ruby-identifier">mode</span>)&#x000A;345: <span class="ruby-identifier">handler_set</span> = <span class="ruby-ivar">@@handler_sets</span>[<span class="ruby-identifier">mode</span>]&#x000A;346: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;unknown mode #{mode.to_s}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">handler_set</span>&#x000A;347: <span class="ruby-ivar">@mode</span> = <span class="ruby-identifier">mode</span>&#x000A;348: <span class="ruby-ivar">@handler_set</span> = <span class="ruby-identifier">handler_set</span>&#x000A;349: <span class="ruby-keyword kw">end</span></pre>
671
+ </div>
672
+ </div>
673
+ </div>
674
+ </div>
675
+ </div>
676
+ </div>
677
+ <div id='footer-push'></div>
678
+ </div>
679
+ <div id='footer'>
680
+ <a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
681
+ </div>
682
+ </body>
683
+ </html>