sdl4r 0.9.9 → 0.9.11
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +70 -1
- data/LICENSE +499 -497
- data/Rakefile +38 -28
- data/TODO +194 -45
- data/doc/classes/SDL4R/AbbreviationTimezoneProxy.html +151 -0
- data/doc/classes/SDL4R/ConstantTimezone.html +129 -0
- data/doc/classes/SDL4R/Element.html +148 -0
- data/doc/classes/SDL4R/Reader.html +683 -0
- data/doc/classes/SDL4R/RelativeTimezone.html +187 -0
- data/doc/classes/SDL4R/SdlBinary.html +188 -0
- data/doc/classes/SDL4R/SdlParseError.html +110 -0
- data/doc/classes/SDL4R/SdlTimeSpan.html +651 -0
- data/doc/classes/SDL4R/Serializer.html +557 -0
- data/doc/classes/SDL4R/Serializer/Ref.html +138 -0
- data/doc/classes/SDL4R/TZAbbreviationDB/Record.html +117 -0
- data/doc/classes/SDL4R/Tag.html +1274 -0
- data/doc/classes/SDL4R/Token.html +131 -0
- data/doc/created.rid +1 -0
- data/doc/files/CHANGELOG.html +290 -0
- data/doc/files/LICENSE.html +53 -0
- data/doc/files/README.html +405 -0
- data/doc/files/lib/sdl4r/abbreviation_timezone_proxy_rb.html +63 -0
- data/doc/files/lib/sdl4r/constant_timezone_rb.html +54 -0
- data/doc/files/lib/sdl4r/element_rb.html +54 -0
- data/doc/files/lib/sdl4r/reader_rb.html +68 -0
- data/doc/files/lib/sdl4r/relative_timezone_rb.html +62 -0
- data/doc/files/lib/sdl4r/sdl4r_rb.html +66 -0
- data/doc/files/lib/sdl4r/sdl4r_tzinfo_rb.html +64 -0
- data/doc/files/lib/sdl4r/sdl4r_version_rb.html +54 -0
- data/doc/files/lib/sdl4r/sdl_binary_rb.html +54 -0
- data/doc/files/lib/sdl4r/sdl_parse_error_rb.html +54 -0
- data/doc/files/lib/sdl4r/sdl_time_span_rb.html +54 -0
- data/doc/files/lib/sdl4r/serializer_rb.html +62 -0
- data/doc/files/lib/sdl4r/tag_rb.html +66 -0
- data/doc/files/lib/sdl4r/token_rb.html +54 -0
- data/doc/files/lib/sdl4r/tokenizer_rb.html +64 -0
- data/doc/files/lib/sdl4r/tz_abbreviation_db_rb.html +67 -0
- data/doc/files/lib/sdl4r_rb.html +54 -0
- data/doc/files/lib/sdl4r_tzinfo_rb.html +54 -0
- data/doc/fr_class_index.html +23 -0
- data/doc/fr_file_index.html +40 -0
- data/doc/fr_method_index.html +4711 -0
- data/doc/index.html +15 -0
- data/doc/rdoc-style.css +328 -0
- data/lib/sdl4r.rb +3 -1
- data/lib/sdl4r/abbreviation_timezone_proxy.rb +38 -0
- data/lib/sdl4r/constant_timezone.rb +58 -0
- data/{test/sdl4r/sdl_test.rb → lib/sdl4r/element.rb} +19 -14
- data/lib/sdl4r/reader.rb +772 -0
- data/lib/sdl4r/relative_timezone.rb +156 -0
- data/lib/sdl4r/sdl4r.rb +187 -45
- data/lib/sdl4r/sdl4r_tzinfo.rb +75 -0
- data/lib/sdl4r/sdl4r_version.rb +24 -0
- data/lib/sdl4r/sdl_parse_error.rb +1 -1
- data/lib/sdl4r/sdl_time_span.rb +5 -1
- data/lib/sdl4r/serializer.rb +473 -60
- data/lib/sdl4r/tag.rb +126 -51
- data/lib/sdl4r/token.rb +49 -0
- data/lib/sdl4r/tokenizer.rb +431 -0
- data/lib/sdl4r/tz_abbreviation_db.rb +266 -0
- data/read_jprof.html +16934 -0
- data/read_jprof_pull.html +14451 -0
- data/read_prof.html +4983 -0
- data/read_prof_pull.html +4896 -0
- data/test/sdl4r/parser_test.rb +577 -503
- data/test/sdl4r/read_jprof.rb +58 -0
- data/test/sdl4r/read_prof.rb +70 -0
- data/test/sdl4r/reader_test.rb +173 -0
- data/test/sdl4r/relative_timezone_test.rb +102 -0
- data/test/sdl4r/sdl4r_test.rb +611 -528
- data/test/sdl4r/sdl4r_tzinfo_test.rb +108 -0
- data/test/sdl4r/sdl_test_case.rb +60 -0
- data/test/sdl4r/serializer_test.rb +448 -11
- data/test/sdl4r/tag_test.rb +84 -5
- data/test/sdl4r/tokenizer_test.rb +128 -0
- metadata +69 -11
- data/lib/sdl4r/parser.rb +0 -648
- data/lib/sdl4r/parser/reader.rb +0 -184
- data/lib/sdl4r/parser/time_span_with_zone.rb +0 -57
- data/lib/sdl4r/parser/token.rb +0 -138
- 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 ‘JST’ 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>
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>)
29: <span class="ruby-identifier">o</span> = <span class="ruby-keyword kw">super</span>()
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>)
31: <span class="ruby-identifier">o</span>
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>
46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">identifier</span>
47: <span class="ruby-ivar">@identifier</span>
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>
50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">period_for_utc</span>(<span class="ruby-identifier">utc</span>)
51: <span class="ruby-ivar">@period</span>
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>
54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">periods_for_local</span>(<span class="ruby-identifier">local</span>)
55: [<span class="ruby-ivar">@period</span>]
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’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>
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>)
30: <span class="ruby-ivar">@prefix</span> = <span class="ruby-identifier">prefix</span>
31: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
32: <span class="ruby-ivar">@attributes</span> = []
33: <span class="ruby-ivar">@values</span> = []
34: <span class="ruby-ivar">@self_closing</span> = <span class="ruby-keyword kw">false</span>
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>
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>)
38: <span class="ruby-ivar">@attributes</span> <span class="ruby-operator"><<</span> [[<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">name</span>], <span class="ruby-identifier">value</span>]
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>
41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_value</span>(<span class="ruby-identifier">value</span>)
42: <span class="ruby-ivar">@values</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">value</span>
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’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>
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>)
41: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:NULL</span>] = <span class="ruby-identifier">handler</span>
42: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:INTEGER</span>] = <span class="ruby-identifier">handler</span>
43: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:FLOAT</span>] = <span class="ruby-identifier">handler</span>
44: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:BOOLEAN</span>] = <span class="ruby-identifier">handler</span>
45: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:CHARACTER</span>] = <span class="ruby-identifier">handler</span>
46: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:INLINE_BACKQUOTE_STRING</span>] = <span class="ruby-identifier">handler</span>
47: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:INLINE_DOUBLE_QUOTE_STRING</span>] = <span class="ruby-identifier">handler</span>
48: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:MULTILINE_BACKQUOTE_STRING_START</span>] = <span class="ruby-identifier">handler</span>
49: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:MULTILINE_DOUBLE_QUOTE_STRING_START</span>] = <span class="ruby-identifier">handler</span>
50: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:INLINE_BINARY</span>] = <span class="ruby-identifier">handler</span>
51: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:MULTILINE_BINARY_START</span>] = <span class="ruby-identifier">handler</span>
52: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:DATE</span>] = <span class="ruby-identifier">handler</span>
53: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">:TIME_OR_TIMESPAN</span>] = <span class="ruby-identifier">handler</span>
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>
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>)
281: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">io</span>)
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>
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>)
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>))
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>
154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">io</span>)
155: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"io == nil"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">io</span>.<span class="ruby-identifier">nil?</span>
156: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"io is not an IO"</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>)
157: 
158: <span class="ruby-ivar">@io</span> = <span class="ruby-identifier">io</span>
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>)
160: <span class="ruby-ivar">@element</span> = <span class="ruby-keyword kw">nil</span>
161: <span class="ruby-ivar">@element_pool</span> = []
162: <span class="ruby-ivar">@depth</span> = <span class="ruby-value">1</span>
163: 
164: <span class="ruby-identifier">clear_node</span>()
165: <span class="ruby-identifier">set_mode</span>(<span class="ruby-identifier">:top</span>)
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>
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>)
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>
180: 
181: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>
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>
183: <span class="ruby-keyword kw">else</span>
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>
185: <span class="ruby-keyword kw">end</span>
186: 
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>
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">&&</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>
189: <span class="ruby-keyword kw">end</span>
190: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
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>
194: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attribute_at</span>(<span class="ruby-identifier">index</span>)
195: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@element</span>
196: <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">index</span>]
197: <span class="ruby-keyword kw">else</span>
198: <span class="ruby-keyword kw">nil</span>
199: <span class="ruby-keyword kw">end</span>
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>
203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attribute_count</span>
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>
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><code>[ [["ns1", "attr1"], 123], [["", "attr2"], true] ]</code></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>
170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes</span>
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>
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>
208: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes?</span>
209: <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>
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'>(&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("sample.sdl") do |io|
 SDL4R::Reader.from_io(io).each do |node]
 puts node.node_type
 end
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>
299: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
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>
301: <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">node</span>)
302: <span class="ruby-keyword kw">end</span>
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 <= 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>
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>)
219: <span class="ruby-identifier">stack</span> = []
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>
221: 
222: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">node</span> = <span class="ruby-identifier">read</span>
223: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">node_type</span>
224: 
225: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">TYPE_ELEMENT</span>
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>
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>
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>])
229: <span class="ruby-keyword kw">end</span>
230: <span class="ruby-identifier">values</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">values</span>
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>
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>
233: 
234: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">self_closing?</span>
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"><=</span> <span class="ruby-value">1</span>
236: <span class="ruby-keyword kw">else</span>
237: <span class="ruby-identifier">stack</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">tag</span>
238: <span class="ruby-keyword kw">end</span>
239: 
240: <span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt"># definition ended here</span>
241: 
242: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">TYPE_END_ELEMENT</span>
243: <span class="ruby-identifier">tag</span> = <span class="ruby-identifier">stack</span>.<span class="ruby-identifier">pop</span>
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"><=</span> <span class="ruby-value">1</span>
245: <span class="ruby-keyword kw">end</span>
246: <span class="ruby-keyword kw">end</span>
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)
 Time.utc(year, month, day, hour, min, sec, msec, timezone_code)
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>
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>)
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>)
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>
548: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_character</span>(<span class="ruby-identifier">s</span>)
549: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">s</span>
550: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A.\Z/</span>
551: <span class="ruby-identifier">s</span>
552: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"\\\\"</span>
553: <span class="ruby-value str">"\\"</span>
554: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"\\'"</span>
555: <span class="ruby-value str">"'"</span>
556: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"\\n"</span>
557: <span class="ruby-value str">"\n"</span>
558: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"\\r"</span>
559: <span class="ruby-value str">"\r"</span>
560: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"\\t"</span>
561: <span class="ruby-value str">"\t"</span>
562: <span class="ruby-keyword kw">else</span>
563: <span class="ruby-identifier">raise</span> <span class="ruby-node">"illegal character literal #{s.inspect}"</span>
564: <span class="ruby-keyword kw">end</span>
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>
592: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_date</span>(<span class="ruby-identifier">literal</span>)
593: <span class="ruby-comment cmt"># here, we're being stricter than strptime() alone as we forbid trailing chars (also faster)</span>
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>
595: <span class="ruby-identifier">date_year</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">to_i</span>
596: <span class="ruby-identifier">date_month</span> = <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">to_i</span>
597: <span class="ruby-identifier">date_day</span> = <span class="ruby-identifier">$3</span>.<span class="ruby-identifier">to_i</span>
598: 
599: <span class="ruby-identifier">skip_whitespaces</span>(<span class="ruby-keyword kw">false</span>)
600: 
601: <span class="ruby-comment cmt"># Check whether the next tag is the time part</span>
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>
603: <span class="ruby-comment cmt"># Is it a time or timespan?</span>
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> =
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>)
606: 
607: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span>
608: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">unread</span>
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>)
610: <span class="ruby-keyword kw">else</span>
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>)
612: <span class="ruby-keyword kw">end</span>
613: 
614: <span class="ruby-keyword kw">else</span>
615: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">unread</span>
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>)
617: <span class="ruby-keyword kw">end</span>
618: 
619: <span class="ruby-keyword kw">else</span>
620: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"Malformed Date <#{literal}>"</span>
621: <span class="ruby-keyword kw">end</span>
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>
470: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_double_quote_string</span>(<span class="ruby-identifier">s</span>)
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>
472: 
473: <span class="ruby-identifier">string</span> = <span class="ruby-value str">""</span>
474: <span class="ruby-identifier">escaped</span> = <span class="ruby-keyword kw">false</span>
475: 
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>
477: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">escaped</span>
478: <span class="ruby-identifier">escaped</span> = <span class="ruby-keyword kw">false</span>
479: 
480: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">c</span>
481: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"\\"</span>, <span class="ruby-value str">"\""</span>
482: <span class="ruby-identifier">string</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
483: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"n"</span>
484: <span class="ruby-identifier">string</span> <span class="ruby-operator"><<</span> <span class="ruby-value">?\n</span>
485: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"r"</span>
486: <span class="ruby-identifier">string</span> <span class="ruby-operator"><<</span> <span class="ruby-value">?\r</span>
487: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"t"</span>
488: <span class="ruby-identifier">string</span> <span class="ruby-operator"><<</span> <span class="ruby-value">?\t</span>
489: <span class="ruby-keyword kw">else</span>
490: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">raise_parse_error</span>(<span class="ruby-node">"Illegal escape character in string literal: '#{c}'."</span>)
491: <span class="ruby-keyword kw">end</span>
492: 
493: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"\\"</span>
494: <span class="ruby-identifier">escaped</span> = <span class="ruby-keyword kw">true</span>
495: 
496: <span class="ruby-keyword kw">else</span>
497: <span class="ruby-identifier">string</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
498: <span class="ruby-keyword kw">end</span>
499: <span class="ruby-keyword kw">end</span>
500: 
501: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">raise_parse_error</span>(<span class="ruby-value str">"orphan backslash"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">escaped</span>
502: 
503: <span class="ruby-identifier">string</span>
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>
577: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_float</span>(<span class="ruby-identifier">s</span>)
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>
579: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">BigDecimal</span>(<span class="ruby-identifier">$1</span>)
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>
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">"not a float '#{$1}'"</span>)
582: <span class="ruby-keyword kw">else</span>
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">"not a float '#{s}'"</span>)
584: <span class="ruby-keyword kw">end</span>
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>
568: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_integer</span>(<span class="ruby-identifier">s</span>)
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>
570: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Integer</span>(<span class="ruby-identifier">$1</span>)
571: <span class="ruby-keyword kw">else</span>
572: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Integer</span>(<span class="ruby-identifier">s</span>)
573: <span class="ruby-keyword kw">end</span>
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>
530: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_multiline_backquote_string</span>(<span class="ruby-identifier">s</span>)
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>
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>
542: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_multiline_binary</span>(<span class="ruby-identifier">s</span>)
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>
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>)
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>
535: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_multiline_double_quote_string</span>(<span class="ruby-identifier">s</span>)
536: <span class="ruby-identifier">parse_double_quote_string</span>(
537: <span class="ruby-identifier">parse_multiline_string</span>(
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>))
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>
630: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_time_span</span>(<span class="ruby-identifier">literal</span>)
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> =
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>)
633: 
634: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone_code</span>
635: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">raise_parse_error</span>(<span class="ruby-node">"got a time when expecting a timespan: \"#{literal}\""</span>)
636: <span class="ruby-keyword kw">end</span>
637: 
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>)
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>
337: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">raise_unexpected_token</span>
338: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">raise_parse_error</span>(
339: <span class="ruby-node">"unexpected token #{@tokenizer.token_type} #{@tokenizer.token.inspect}"</span>,
340: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">token_line_no</span>,
341: <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">token_pos</span>)
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("sample.sdl") do |io|
 reader = SDL4R::Reader.from_io(io)
 while node = reader.read
 puts node.node_type
 end
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>
317: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read</span>
318: <span class="ruby-identifier">clear_node</span>
319: 
320: <span class="ruby-identifier">node</span> = <span class="ruby-keyword kw">nil</span>
321: 
322: <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@tokenizer</span>.<span class="ruby-identifier">read</span>
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>]
324: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">handler</span>
325: <span class="ruby-identifier">raise_unexpected_token</span>
326: <span class="ruby-keyword kw">end</span>
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>)
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>
329: <span class="ruby-keyword kw">break</span>
330: <span class="ruby-keyword kw">end</span>
331: <span class="ruby-keyword kw">end</span>
332: 
333: <span class="ruby-identifier">node</span>
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>
249: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">self_closing?</span>
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>
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>
261: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values</span>
262: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@element</span>
263: <span class="ruby-identifier">values</span> = <span class="ruby-ivar">@element</span>.<span class="ruby-identifier">values</span>
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>
265: <span class="ruby-keyword kw">else</span>
266: <span class="ruby-ivar">@value</span>
267: <span class="ruby-keyword kw">end</span>
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>
271: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values?</span>
272: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@element</span>
273: <span class="ruby-operator">!</span><span class="ruby-ivar">@element</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">empty?</span>
274: <span class="ruby-keyword kw">else</span>
275: <span class="ruby-operator">!</span><span class="ruby-ivar">@value</span>.<span class="ruby-identifier">nil?</span>
276: <span class="ruby-keyword kw">end</span>
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>
344: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_mode</span>(<span class="ruby-identifier">mode</span>)
345: <span class="ruby-identifier">handler_set</span> = <span class="ruby-ivar">@@handler_sets</span>[<span class="ruby-identifier">mode</span>]
346: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"unknown mode #{mode.to_s}"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">handler_set</span>
347: <span class="ruby-ivar">@mode</span> = <span class="ruby-identifier">mode</span>
348: <span class="ruby-ivar">@handler_set</span> = <span class="ruby-identifier">handler_set</span>
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>
|