sdl4r 0.9.7 → 0.9.8
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +12 -2
- data/README +8 -0
- data/Rakefile +22 -32
- data/TODO +81 -41
- data/doc/classes/SDL4R.html +29 -14
- data/doc/classes/SDL4R/Parser.html +2 -2
- data/doc/classes/SDL4R/ParserTest.html +53 -25
- data/doc/classes/SDL4R/SDL4RTest.html +128 -128
- data/doc/classes/SDL4R/SDLTest.html +5 -5
- data/doc/classes/SDL4R/SdlParseError.html +1 -1
- data/doc/classes/SDL4R/Tag.html +9 -9
- data/doc/classes/SDL4R/TagTest.html +80 -80
- data/doc/created.rid +1 -1
- data/doc/files/CHANGELOG.html +19 -3
- data/doc/files/README.html +6 -1
- data/doc/files/lib/sdl4r/parser/tokenizer_rb.html +1 -1
- data/doc/files/lib/sdl4r/parser_rb.html +1 -1
- data/doc/files/lib/sdl4r/sdl4r_rb.html +1 -1
- data/doc/files/lib/sdl4r/sdl_parse_error_rb.html +1 -1
- data/doc/files/lib/sdl4r/tag_rb.html +1 -1
- data/doc/files/test/sdl4r/parser_test_rb.html +2 -1
- data/doc/files/test/sdl4r/sdl4r_test_rb.html +2 -1
- data/doc/files/test/sdl4r/sdl_test_rb.html +2 -1
- data/doc/files/test/sdl4r/tag_test_rb.html +2 -1
- data/doc/fr_method_index.html +104 -100
- data/lib/sdl4r/parser.rb +7 -3
- data/lib/sdl4r/parser/tokenizer.rb +2 -1
- data/lib/sdl4r/sdl4r.rb +15 -10
- data/lib/sdl4r/sdl_parse_error.rb +1 -1
- data/lib/sdl4r/tag.rb +7 -4
- data/test/sdl4r/parser_test.rb +43 -3
- data/test/sdl4r/sdl4r_test.rb +4 -4
- data/test/sdl4r/sdl_test.rb +1 -1
- data/test/sdl4r/tag_test.rb +19 -4
- metadata +79 -79
data/CHANGELOG
CHANGED
@@ -1,6 +1,16 @@
|
|
1
|
-
== v0.9.
|
1
|
+
== v0.9.9 (建設中)
|
2
|
+
== v0.9.8 (16-sep-2010)
|
2
3
|
|
3
|
-
|
4
|
+
=== Major changes:
|
5
|
+
|
6
|
+
* Bug fix: dollar ($) is now supported as a valid identifier character.
|
7
|
+
|
8
|
+
=== Minor changes:
|
9
|
+
|
10
|
+
* New constants: SDL4R#ANONYMOUS_TAG_NAME and SDL4R#ROOT_TAG_NAME.
|
11
|
+
* Bug fixes related to the error handling in the parser.
|
12
|
+
|
13
|
+
== v0.9.7 (26-aug-2010)
|
4
14
|
|
5
15
|
=== Major changes:
|
6
16
|
|
data/README
CHANGED
@@ -360,6 +360,14 @@ Alternatively you can use the following options when launching the Ruby interpre
|
|
360
360
|
|
361
361
|
/path/to/ruby -Ku -rjcode
|
362
362
|
|
363
|
+
== Ruby Support
|
364
|
+
|
365
|
+
SDL4R has been tested on:
|
366
|
+
|
367
|
+
* Ruby 1.8.7
|
368
|
+
* Ruby 1.9.1
|
369
|
+
* Ruby 1.9.2
|
370
|
+
* JRuby 1.5.1
|
363
371
|
|
364
372
|
== License
|
365
373
|
|
data/Rakefile
CHANGED
@@ -5,11 +5,11 @@ require 'rake/gempackagetask'
|
|
5
5
|
require 'rake/packagetask'
|
6
6
|
require 'rubygems'
|
7
7
|
|
8
|
-
if
|
9
|
-
|
8
|
+
# Use Hanna as the documentation template if installated,
|
9
|
+
# otherwise generate with the default RDoc generator.
|
10
|
+
if USING_HANNA = Gem.required_location("hanna", "hanna/rdoctask.rb")
|
10
11
|
require 'hanna/rdoctask'
|
11
12
|
else
|
12
|
-
puts "using standard RDoc template"
|
13
13
|
require 'rake/rdoctask'
|
14
14
|
end
|
15
15
|
|
@@ -17,7 +17,7 @@ spec = Gem::Specification.new do |s|
|
|
17
17
|
s.platform = Gem::Platform::RUBY
|
18
18
|
s.summary = "Simple Declarative Language for Ruby library"
|
19
19
|
s.name = 'sdl4r'
|
20
|
-
s.version = '0.9.
|
20
|
+
s.version = '0.9.8'
|
21
21
|
s.requirements << 'none'
|
22
22
|
s.require_path = 'lib'
|
23
23
|
s.authors = ['Philippe Vosges', 'Daniel Leuck']
|
@@ -35,23 +35,26 @@ spec = Gem::Specification.new do |s|
|
|
35
35
|
EOF
|
36
36
|
end
|
37
37
|
|
38
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
39
|
+
pkg.need_zip = true
|
40
|
+
pkg.need_tar = true
|
41
|
+
end
|
42
|
+
|
43
|
+
# FIXME The package task tries to package twice and it shouldn't:
|
44
|
+
# - once with the provided command (i.e. 7zip if zip is not available)
|
45
|
+
# - once with "zip" disregarding the configuration (that attempt fails if you do not have the
|
46
|
+
# "zip" command)
|
38
47
|
Rake::PackageTask.new(spec.name, spec.version) do |p|
|
39
48
|
p.need_zip = true
|
40
49
|
p.need_tar = false
|
41
50
|
p.need_tar_gz = false
|
42
51
|
p.need_tar_bz2 = false
|
43
|
-
#p.package_files.include("lib/sdl4r/**/*.rb")
|
44
52
|
|
45
53
|
# If "zip" is not available, we try 7-zip.
|
46
54
|
system("zip")
|
47
55
|
p.zip_command = "7z a -tzip" if $?.exitstatus == 127
|
48
56
|
end
|
49
57
|
|
50
|
-
Rake::GemPackageTask.new(spec) do |pkg|
|
51
|
-
pkg.need_zip = true
|
52
|
-
pkg.need_tar = true
|
53
|
-
end
|
54
|
-
|
55
58
|
Rake::RDocTask.new do |rd|
|
56
59
|
files = ['README', 'LICENSE', 'CHANGELOG', 'lib/**/*.rb', 'doc/**/*.rdoc', 'test/**/*.rb']
|
57
60
|
rd.main = 'README'
|
@@ -64,29 +67,16 @@ Rake::RDocTask.new do |rd|
|
|
64
67
|
rd.options << '--inline-source'
|
65
68
|
end
|
66
69
|
|
67
|
-
gen_rubyforge = task :gen_rubyforge => [:rdoc] do
|
68
|
-
# Modify the front page of the Rubyforge front page
|
69
|
-
File.open("doc/files/CHANGELOG.html", "r:UTF-8") do |f|
|
70
|
-
changelog = f.read
|
71
|
-
if changelog =~ /(<div id='content'>.*?)<div id='footer-push'>/im
|
72
|
-
changelog = $1
|
73
|
-
new_front_page = File.open("rubyforge/index.html", "r:UTF-8") do |f2|
|
74
|
-
f2.read.gsub(
|
75
|
-
/<!-- CHANGELOG_START -->.*?<!-- CHANGELOG_END -->/m,
|
76
|
-
"<!-- CHANGELOG_START -->\n" + changelog + "\n<!-- CHANGELOG_END -->")
|
77
|
-
end
|
78
|
-
File.open("rubyforge/index.html", "w:UTF-8") do |f2|
|
79
|
-
f2.write new_front_page
|
80
|
-
end
|
81
|
-
else
|
82
|
-
puts "couldn't extract info from changelog"
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
gen_rubyforge.comment = "Includes the CHANGELOG into the Rubyforge front page"
|
87
|
-
|
88
70
|
Rake::TestTask.new do |t|
|
89
|
-
t.libs << "lib"
|
90
71
|
t.test_files = FileList['test/**/*test.rb']
|
91
72
|
t.verbose = true
|
92
73
|
end
|
74
|
+
|
75
|
+
# Generates the SDL4R site with Nanoc.
|
76
|
+
nanoc_compile = task :nanoc_compile do
|
77
|
+
puts "The Nanoc tasks might work better from the command line." if ENV["NB_EXEC_EXTEXECUTION_PROCESS_UUID"]
|
78
|
+
Dir.chdir("nanoc") {
|
79
|
+
system("nanoc", "compile")
|
80
|
+
}
|
81
|
+
end
|
82
|
+
nanoc_compile.comment = "Builds the site with Nanoc"
|
data/TODO
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
[x]
|
2
|
-
==> Seems so after having implemented more of the standard tests.
|
3
|
-
[ ] Add more unit tests
|
1
|
+
[x] Add more unit tests
|
4
2
|
[x] Attribute tests
|
5
3
|
[x] Date tests
|
6
4
|
[x] Date + time test
|
@@ -10,9 +8,9 @@
|
|
10
8
|
[x] Sub tags tests
|
11
9
|
[x] "null" value test
|
12
10
|
[x] Comment tests
|
13
|
-
[
|
11
|
+
[x] Bad syntax tests
|
14
12
|
[ ] Test write (unit tests)
|
15
|
-
[
|
13
|
+
[x] Dates
|
16
14
|
[ ] Numbers
|
17
15
|
[A] Use YARD in order to generate documentation ?
|
18
16
|
==> alternatively, I tried to generate some RDoc templates but none worked in Rake...
|
@@ -39,33 +37,23 @@
|
|
39
37
|
[ ] Allow unicode characters in identifiers.
|
40
38
|
[ ] FUTURE: It might be useful to allow people to replace the standard types by their own. This
|
41
39
|
could be useful for dates or numbers, for instance.
|
42
|
-
[N] To install a gem in the Netbeans gems repository, it needs to run as an administrator.
|
43
|
-
Otherwise, it fails silently.
|
44
40
|
[ ] FUTURE: Consider being able to read text files that are not UTF-8(?)
|
45
41
|
[ ] BUG: the report on the line no in errors is off by 1 (at least in some cases)
|
46
|
-
[x] Return copies or original arrays in Tag?
|
47
|
-
==> we return the implementation Arrays or Hashes (or whatever) for efficiency.
|
48
|
-
However, we ask the users not to assume anything as we might protect the returned objects in
|
49
|
-
the future.
|
50
42
|
[ ] Tag.hash: the implementation is not very efficient.
|
51
43
|
==> Difficult to make better and still simple
|
52
44
|
==> Maybe possible when it's frozen.
|
53
45
|
[ ] FUTURE: xpath, ypath ==> sdlpath(?)
|
54
46
|
[ ] FUTURE: evenemential parsing(?)
|
55
|
-
[ ] FUTURE: add a way to insert a tag after or before another(?)
|
47
|
+
[ ] FUTURE: add a way to insert a tag after or before another or at some index(?)
|
56
48
|
[ ] FUTURE: allow some way of generating YAML(?)
|
57
49
|
[ ] FUTURE: allow to turn a YAML structure into a SDL one(?)
|
58
50
|
[ ] BUG: "rake package" tries to archive the contents twice: once with the command that I configure
|
59
51
|
in Rakefile, once with a zip command that can't work on my machine (zip is not installed). Why?
|
60
52
|
At least, the first archive is created and seems correct.
|
61
|
-
[
|
62
|
-
|
63
|
-
[x] Make the methods of Tag that take a block have a better yield doc/completion
|
64
|
-
==> I added :yields: RDoc directives, which doesn't look like it's helping but I guess that's
|
65
|
-
all I can do for now.
|
53
|
+
[A] FUTURE: Would we need a "write" method in SDL4R?
|
54
|
+
==> Na, there's already Tag.write(), I guess.
|
66
55
|
[N] Never call a class "Test" => it can easily conflict with the "Test" module of Test::Unit and
|
67
56
|
then, it becomes quite difficult to understand why.
|
68
|
-
[ ] Input relevant URLs on http://rubygems.org
|
69
57
|
[x] What prevents from doing the following?
|
70
58
|
tag.values << IO.new("toto.txt")
|
71
59
|
==> It doesn't break the behavior as long as the value type is OK. Even if it is not allowed,
|
@@ -76,37 +64,89 @@
|
|
76
64
|
(for the time being).
|
77
65
|
[x] If there is any success, maybe create/recreate the Rubyforge site for the support.
|
78
66
|
[ ] Should we allow to create a Tag without a name (== "content") for anonymous Tags?
|
79
|
-
[x]
|
80
|
-
|
81
|
-
Tag.new "toto" do |tag|
|
82
|
-
tag << 123
|
83
|
-
end
|
84
|
-
|
85
|
-
==> We can detect whether there is an argument or not.
|
86
|
-
|
87
|
-
Note that instance_eval() doesn't allow to pass parameters right now.
|
88
|
-
[ ] Add latest doc access to RubyForge:
|
67
|
+
[x] Add latest doc access to RubyForge:
|
89
68
|
==> Rake task?
|
90
69
|
|
91
|
-
[
|
92
|
-
attr1=null
|
93
|
-
into the XML
|
94
|
-
attr1="null"
|
95
|
-
?
|
96
|
-
Should we remove the attribute altogether? Check the Java version => same in Java
|
97
|
-
==> Maybe provide an options Hash in to_xml_string():
|
98
|
-
:uri_by_namespace => {...} (breaks the old interface)
|
99
|
-
:hide_null_attributes => true|false
|
100
|
-
[x] Where we accept Arrays (operator <<, for instance), let's accept Enumerable or something like
|
101
|
-
that.
|
102
|
-
[ ] Implement the [] operator in order to access attributes:
|
70
|
+
[ ] ONWAIT: Implement the [] operator in order to access attributes:
|
103
71
|
["attr"] <=> attribute("attr")
|
104
72
|
["ns:attr"] <=> attribute("ns", "attr") (should we allow this?)
|
105
73
|
["ns", "attr"] <=> attribute("ns", "attr")
|
106
74
|
Should we allow attribute("ns:attr")?
|
75
|
+
==> Mmmm, but it could also mean "get child with that name". Let's wait.
|
107
76
|
[ ] IDEA: marshaller? easy object <=> SDL read/write?
|
108
77
|
[ ] Check the coverage and make the tests better.
|
78
|
+
==> Might be better to use some other tool than
|
109
79
|
[ ] IDEA: add an option to the XML export allowing to write anonymous nodes as XML tag content?
|
110
80
|
[ ] IDEA: add an option to the XML export allowing to export without formatting?
|
111
81
|
[x] BUG: line continuation is not handled properly (skipping chars etc).
|
112
|
-
[ ] BUG: the rake task 'gen_rubyforge' doesn't work under 1.9 (only 1.8.7)
|
82
|
+
[ ] BUG: the rake task 'gen_rubyforge' doesn't work under 1.9 (only 1.8.7)
|
83
|
+
==> when Hanna is not installed the CHANGELOG HTML file must have a different name.
|
84
|
+
[ ] Look into performances, compared to YAML or XML parsers
|
85
|
+
[ ] Future: SDL + ERB to have dynamic config templates
|
86
|
+
see http://github.com/binarylogic/settingslogic
|
87
|
+
[ ] Future: object dump/load as YAML does
|
88
|
+
- add to_sdl(4r) to Object
|
89
|
+
|
90
|
+
- for each object:
|
91
|
+
- if it is an array => export values
|
92
|
+
- what if one of the values is a basic object? scan once first? series of anonymous tags with one value?
|
93
|
+
- if it is a hash?
|
94
|
+
- if String, dates etc => values
|
95
|
+
- otherwise create subtags
|
96
|
+
- for each variable
|
97
|
+
- create an attribute if simple value
|
98
|
+
- create a subtag otherwise
|
99
|
+
- what about fields that we don't want to serialize?
|
100
|
+
- what about references? We would need something like:
|
101
|
+
product _oid="&243" {
|
102
|
+
producer _oid="*189"
|
103
|
+
}
|
104
|
+
or
|
105
|
+
product &243 price=345.99 {
|
106
|
+
producer *189
|
107
|
+
code "123732u98r456"
|
108
|
+
}
|
109
|
+
- use Class.allocate() to have a blank object on deserialization.
|
110
|
+
|
111
|
+
[ ] Have to_string implement options
|
112
|
+
[x] Put the docs online
|
113
|
+
[ ] Document Rakefile and dependencies
|
114
|
+
[x] BUG: in Ruby 1.9.2
|
115
|
+
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- test/sdl4r/../../lib
|
116
|
+
/sdl4r/tag (LoadError)
|
117
|
+
from <internal:lib/rubygems/custom_require>:29:in `require'
|
118
|
+
from test/sdl4r/parser_test.rb:27:in `<module:SDL4R>'
|
119
|
+
from test/sdl4r/parser_test.rb:22:in `<top (required)>'
|
120
|
+
from C:/Ruby192/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `load'
|
121
|
+
from C:/Ruby192/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `block in <main>'
|
122
|
+
from C:/Ruby192/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `each'
|
123
|
+
from C:/Ruby192/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `<main>'
|
124
|
+
==> This is a problem triggered by the work-around I used in order to run tests individually in
|
125
|
+
Netbeans. Removed the work-around.
|
126
|
+
[x] Generate the static site with something like Jekyll (http://wiki.github.com/mojombo/jekyll)
|
127
|
+
==> Done with Nanoc
|
128
|
+
[x] Add a page for the SyntaxHighlighter Brush (plus a test page).
|
129
|
+
[x] Add a contact page or paragraph
|
130
|
+
[x] Add a readme page (generated from the rdoc readme)
|
131
|
+
==> We link to the RDoc for the time being.
|
132
|
+
====================================================================================================
|
133
|
+
[x] Add a line about the support of of 1.9 in README (1.9.1 and 1.9.2)
|
134
|
+
[ ] Get the version from some common (Rakefile?) place in Nanoc
|
135
|
+
[ ] Add a modification date to site pages?
|
136
|
+
[x] Clean up the Rakefile and see whether that Rubyforge upload task is necessary.
|
137
|
+
==> Easier to upload the site manually: I removed the code.
|
138
|
+
[ ] Future (not necessarily for Ruby): SDL parser ==> SAX
|
139
|
+
[ ] Optimization: cache strings in order not to duplicate them (especially tag names?)
|
140
|
+
[x] Add a constant for "content".
|
141
|
+
==> ANONYMOUS_TAG_NAME
|
142
|
+
==> Also added ROOT_TAG_NAME
|
143
|
+
[x] Fixed missing Parser.parse_error() error.
|
144
|
+
[ ] BUG: this is parsed
|
145
|
+
vegetable {
|
146
|
+
}
|
147
|
+
while this is not
|
148
|
+
vegetable {}
|
149
|
+
|
150
|
+
==> It seems this is not supported by the Java parser. Is it invalid/valid syntax?
|
151
|
+
It will be in the next version of SDL.
|
152
|
+
[x] BUG: '$' is a valid identifier character and it is not accepted.
|
data/doc/classes/SDL4R.html
CHANGED
@@ -48,18 +48,18 @@
|
|
48
48
|
<li class='other'>
|
49
49
|
<a href="../files/lib/sdl4r/parser/reader_rb.html">lib/sdl4r/parser/reader.rb</a>
|
50
50
|
</li>
|
51
|
-
<li class='other'>
|
52
|
-
<a href="../files/lib/sdl4r/parser/tokenizer_rb.html">lib/sdl4r/parser/tokenizer.rb</a>
|
53
|
-
</li>
|
54
51
|
<li class='other'>
|
55
52
|
<a href="../files/lib/sdl4r/parser/token_rb.html">lib/sdl4r/parser/token.rb</a>
|
56
53
|
</li>
|
57
54
|
<li class='other'>
|
58
|
-
<a href="../files/lib/sdl4r/
|
55
|
+
<a href="../files/lib/sdl4r/parser/tokenizer_rb.html">lib/sdl4r/parser/tokenizer.rb</a>
|
59
56
|
</li>
|
60
57
|
<li class='other'>
|
61
58
|
<a href="../files/lib/sdl4r/parser/time_span_with_zone_rb.html">lib/sdl4r/parser/time_span_with_zone.rb</a>
|
62
59
|
</li>
|
60
|
+
<li class='other'>
|
61
|
+
<a href="../files/lib/sdl4r/sdl4r_rb.html">lib/sdl4r/sdl4r.rb</a>
|
62
|
+
</li>
|
63
63
|
<li class='other'>
|
64
64
|
<a href="../files/test/sdl4r/parser_test_rb.html">test/sdl4r/parser_test.rb</a>
|
65
65
|
</li>
|
@@ -83,7 +83,12 @@
|
|
83
83
|
<hr size="1"></hr><p>
|
84
84
|
Gathers utility methods.
|
85
85
|
</p>
|
86
|
-
<hr size="1"></hr>
|
86
|
+
<hr size="1"></hr><p>
|
87
|
+
Work-around a bug in NetBeans (<a
|
88
|
+
href="http://netbeans.org/bugzilla/show_bug.cgi?id=188653">netbeans.org/bugzilla/show_bug.cgi?id=188653</a>)
|
89
|
+
$:[0] = File.join(File.dirname(<em>FILE</em>),’../../lib’) if
|
90
|
+
ENV[“NB_EXEC_EXTEXECUTION_PROCESS_UUID“]
|
91
|
+
</p>
|
87
92
|
</div>
|
88
93
|
<div id='method-list'>
|
89
94
|
<h2>Methods</h2>
|
@@ -142,6 +147,16 @@
|
|
142
147
|
<td>=</td>
|
143
148
|
<td class='context-item-value'>72</td>
|
144
149
|
</tr>
|
150
|
+
<tr class='top-aligned-row context-row'>
|
151
|
+
<td class='context-item-name'>ANONYMOUS_TAG_NAME</td>
|
152
|
+
<td>=</td>
|
153
|
+
<td class='context-item-value'>"content"</td>
|
154
|
+
</tr>
|
155
|
+
<tr class='top-aligned-row context-row'>
|
156
|
+
<td class='context-item-name'>ROOT_TAG_NAME</td>
|
157
|
+
<td>=</td>
|
158
|
+
<td class='context-item-value'>"root"</td>
|
159
|
+
</tr>
|
145
160
|
<tr class='top-aligned-row context-row'>
|
146
161
|
<td class='context-item-name'>ESCAPED_QUOTES</td>
|
147
162
|
<td>=</td>
|
@@ -201,7 +216,7 @@
|
|
201
216
|
<a class='source-toggle' href='#' onclick="toggleCode('M000004-source'); return false">
|
202
217
|
[show source]
|
203
218
|
</a>
|
204
|
-
<pre id='M000004-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line
|
219
|
+
<pre id='M000004-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line 156</span>
156: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">coerce_or_fail</span>(<span class="ruby-identifier">o</span>)
157: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">o</span>
158: 
159: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Rational</span>
160: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_f</span>
161: 
162: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">NilClass</span>,
163: <span class="ruby-constant">String</span>,
164: <span class="ruby-constant">Numeric</span>,
165: <span class="ruby-constant">Float</span>,
166: <span class="ruby-constant">TrueClass</span>,
167: <span class="ruby-constant">FalseClass</span>,
168: <span class="ruby-constant">Date</span>,
169: <span class="ruby-constant">DateTime</span>,
170: <span class="ruby-constant">Time</span>,
171: <span class="ruby-constant">SdlTimeSpan</span>,
172: <span class="ruby-constant">SdlBinary</span>
173: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>
174: 
175: <span class="ruby-keyword kw">end</span>
176: 
177: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"#{o.class.name} is not coercible to an SDL type"</span>
178: <span class="ruby-keyword kw">end</span></pre>
|
205
220
|
</div>
|
206
221
|
</div>
|
207
222
|
<div class='method public-class' id='method-M000002'>
|
@@ -234,7 +249,7 @@
|
|
234
249
|
<a class='source-toggle' href='#' onclick="toggleCode('M000002-source'); return false">
|
235
250
|
[show source]
|
236
251
|
</a>
|
237
|
-
<pre id='M000002-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line 44</span>
 44: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">o</span>, <span class="ruby-identifier">add_quotes</span> = <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">line_prefix</span> = <span class="ruby-value str">""</span>, <span class="ruby-identifier">indent</span> = <span class="ruby-value str">"\t"</span>)
 45: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
 46: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">add_quotes</span>
 47: <span class="ruby-identifier">o_length</span> = <span class="ruby-value">0</span>
 48: <span class="ruby-identifier">o</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/./</span><span class="ruby-identifier">m</span>) { <span class="ruby-identifier">o_length</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> } <span class="ruby-comment cmt"># counts the number of chars (as opposed of bytes)</span>
 49: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o_length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
 50: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">"'"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">escape</span>(<span class="ruby-identifier">o</span>, <span class="ruby-value str">"'"</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">"'"</span>
 51: <span class="ruby-keyword kw">else</span>
 52: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'"'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">escape</span>(<span class="ruby-identifier">o</span>, <span class="ruby-value str">'"'</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'"'</span>
 53: <span class="ruby-keyword kw">end</span>
 54: <span class="ruby-keyword kw">else</span>
 55: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">escape</span>(<span class="ruby-identifier">o</span>)
 56: <span class="ruby-keyword kw">end</span>
 57: 
 58: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Bignum</span>)
 59: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"BD"</span>
 60: 
 61: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Integer</span>)
 62: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">MIN_INTEGER_32</span> <span class="ruby-operator"><=</span> <span class="ruby-identifier">o</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">o</span> <span class="ruby-operator"><=</span> <span class="ruby-constant">MAX_INTEGER_32</span>
 63: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span>
 64: <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">MIN_INTEGER_64</span> <span class="ruby-operator"><=</span> <span class="ruby-identifier">o</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">o</span> <span class="ruby-operator"><=</span> <span class="ruby-constant">MAX_INTEGER_64</span>
 65: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"L"</span>
 66: <span class="ruby-keyword kw">else</span>
 67: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"BD"</span>
 68: <span class="ruby-keyword kw">end</span>
 69: 
 70: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Float</span>)
 71: <span class="ruby-keyword kw">return</span> (<span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"F"</span>)
 72: 
 73: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Rational</span>)
 74: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_f</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"F"</span>
 75: 
 76: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">BigDecimal</span>)
 77: <span class="ruby-identifier">s</span> = <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-value str">'F'</span>)
 78: <span class="ruby-identifier">s</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.0$/</span>, <span class="ruby-value str">""</span>)
 79: <span class="ruby-keyword kw">return</span> <span class="ruby-node">"#{s}BD"</span>
 80: 
 81: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">nil?</span>
 82: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">"null"</span>
 83: 
 84: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">SdlBinary</span>)
 85: <span class="ruby-identifier">encoded_o</span> = <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">encode64</span>(<span class="ruby-identifier">o</span>.<span class="ruby-identifier">bytes</span>)
 86: <span class="ruby-identifier">encoded_o</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/[\r\n]/</span><span class="ruby-identifier">m</span>, <span class="ruby-value str">""</span>) <span class="ruby-comment cmt"># Remove the EOL inserted every 60 chars</span>
 87: 
 88: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">add_quotes</span>
 89: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">encoded_o</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-constant">BASE64_WRAP_LINE_LENGTH</span>
 90: <span class="ruby-comment cmt"># FIXME: we should a constant or some parameter instead of hardcoded spaces</span>
 91: <span class="ruby-identifier">wrap_lines_in_ascii</span>(<span class="ruby-identifier">encoded_o</span>, <span class="ruby-constant">BASE64_WRAP_LINE_LENGTH</span>, <span class="ruby-node">"#{line_prefix}#{indent}"</span>)
 92: <span class="ruby-identifier">encoded_o</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-node">"[#{$/}"</span>)
 93: <span class="ruby-identifier">encoded_o</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{$/}#{line_prefix}]"</span>
 94: <span class="ruby-keyword kw">else</span>
 95: <span class="ruby-identifier">encoded_o</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-value str">"["</span>)
 96: <span class="ruby-identifier">encoded_o</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"]"</span>
 97: <span class="ruby-keyword kw">end</span>
 98: <span class="ruby-keyword kw">end</span>
 99: 
100: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">encoded_o</span>
101: 
102: <span class="ruby-comment cmt"># Below, we use "#{o.year}" instead of "%Y" because "%Y" always emit 4 chars at least even if</span>
103: <span class="ruby-comment cmt"># the date is before 1000.</span>
104: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">DateTime</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Time</span>)
105: <span class="ruby-identifier">milliseconds</span> = <span class="ruby-identifier">get_datetime_milliseconds</span>(<span class="ruby-identifier">o</span>)
106: 
107: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">milliseconds</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
108: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">zone</span>
109: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-node">"#{o.year}/%m/%d %H:%M:%S%Z"</span>)
110: <span class="ruby-keyword kw">else</span>
111: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-node">"#{o.year}/%m/%d %H:%M:%S"</span>)
112: <span class="ruby-keyword kw">end</span>
113: <span class="ruby-keyword kw">else</span>
114: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">zone</span>
115: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-node">"#{o.year}/%m/%d %H:%M:%S."</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">milliseconds</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">ljust</span>(<span class="ruby-value">3</span>, <span class="ruby-value str">'0'</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">"%Z"</span>)
116: <span class="ruby-keyword kw">else</span>
117: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-node">"#{o.year}/%m/%d %H:%M:%S."</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">milliseconds</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">ljust</span>(<span class="ruby-value">3</span>, <span class="ruby-value str">'0'</span>))
118: <span class="ruby-keyword kw">end</span>
119: <span class="ruby-keyword kw">end</span>
120: 
121: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Date</span>)
122: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-node">"#{o.year}/%m/%d"</span>)
123: 
124: <span class="ruby-keyword kw">else</span>
125: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span>
126: <span class="ruby-keyword kw">end</span>
127: <span class="ruby-keyword kw">end</span></pre>
|
252
|
+
<pre id='M000002-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line 47</span>
 47: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">o</span>, <span class="ruby-identifier">add_quotes</span> = <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">line_prefix</span> = <span class="ruby-value str">""</span>, <span class="ruby-identifier">indent</span> = <span class="ruby-value str">"\t"</span>)
 48: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
 49: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">add_quotes</span>
 50: <span class="ruby-identifier">o_length</span> = <span class="ruby-value">0</span>
 51: <span class="ruby-identifier">o</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/./</span><span class="ruby-identifier">m</span>) { <span class="ruby-identifier">o_length</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> } <span class="ruby-comment cmt"># counts the number of chars (as opposed of bytes)</span>
 52: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o_length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
 53: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">"'"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">escape</span>(<span class="ruby-identifier">o</span>, <span class="ruby-value str">"'"</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">"'"</span>
 54: <span class="ruby-keyword kw">else</span>
 55: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'"'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">escape</span>(<span class="ruby-identifier">o</span>, <span class="ruby-value str">'"'</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'"'</span>
 56: <span class="ruby-keyword kw">end</span>
 57: <span class="ruby-keyword kw">else</span>
 58: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">escape</span>(<span class="ruby-identifier">o</span>)
 59: <span class="ruby-keyword kw">end</span>
 60: 
 61: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Bignum</span>)
 62: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"BD"</span>
 63: 
 64: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Integer</span>)
 65: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">MIN_INTEGER_32</span> <span class="ruby-operator"><=</span> <span class="ruby-identifier">o</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">o</span> <span class="ruby-operator"><=</span> <span class="ruby-constant">MAX_INTEGER_32</span>
 66: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span>
 67: <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">MIN_INTEGER_64</span> <span class="ruby-operator"><=</span> <span class="ruby-identifier">o</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">o</span> <span class="ruby-operator"><=</span> <span class="ruby-constant">MAX_INTEGER_64</span>
 68: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"L"</span>
 69: <span class="ruby-keyword kw">else</span>
 70: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"BD"</span>
 71: <span class="ruby-keyword kw">end</span>
 72: 
 73: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Float</span>)
 74: <span class="ruby-keyword kw">return</span> (<span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"F"</span>)
 75: 
 76: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Rational</span>)
 77: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_f</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"F"</span>
 78: 
 79: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">BigDecimal</span>)
 80: <span class="ruby-identifier">s</span> = <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-value str">'F'</span>)
 81: <span class="ruby-identifier">s</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.0$/</span>, <span class="ruby-value str">""</span>)
 82: <span class="ruby-keyword kw">return</span> <span class="ruby-node">"#{s}BD"</span>
 83: 
 84: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">nil?</span>
 85: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">"null"</span>
 86: 
 87: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">SdlBinary</span>)
 88: <span class="ruby-identifier">encoded_o</span> = <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">encode64</span>(<span class="ruby-identifier">o</span>.<span class="ruby-identifier">bytes</span>)
 89: <span class="ruby-identifier">encoded_o</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/[\r\n]/</span><span class="ruby-identifier">m</span>, <span class="ruby-value str">""</span>) <span class="ruby-comment cmt"># Remove the EOL inserted every 60 chars</span>
 90: 
 91: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">add_quotes</span>
 92: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">encoded_o</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-constant">BASE64_WRAP_LINE_LENGTH</span>
 93: <span class="ruby-comment cmt"># FIXME: we should a constant or some parameter instead of hardcoded spaces</span>
 94: <span class="ruby-identifier">wrap_lines_in_ascii</span>(<span class="ruby-identifier">encoded_o</span>, <span class="ruby-constant">BASE64_WRAP_LINE_LENGTH</span>, <span class="ruby-node">"#{line_prefix}#{indent}"</span>)
 95: <span class="ruby-identifier">encoded_o</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-node">"[#{$/}"</span>)
 96: <span class="ruby-identifier">encoded_o</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{$/}#{line_prefix}]"</span>
 97: <span class="ruby-keyword kw">else</span>
 98: <span class="ruby-identifier">encoded_o</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-value str">"["</span>)
 99: <span class="ruby-identifier">encoded_o</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"]"</span>
100: <span class="ruby-keyword kw">end</span>
101: <span class="ruby-keyword kw">end</span>
102: 
103: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">encoded_o</span>
104: 
105: <span class="ruby-comment cmt"># Below, we use "#{o.year}" instead of "%Y" because "%Y" always emit 4 chars at least even if</span>
106: <span class="ruby-comment cmt"># the date is before 1000.</span>
107: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">DateTime</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Time</span>)
108: <span class="ruby-identifier">milliseconds</span> = <span class="ruby-identifier">get_datetime_milliseconds</span>(<span class="ruby-identifier">o</span>)
109: 
110: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">milliseconds</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
111: <span class="ruby-identifier">zone_part</span> = <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">"%:z"</span>)
112: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone_part</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">zone_part</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">"+00:00"</span>
113: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-node">"#{o.year}/%m/%d %H:%M:%S#{zone_part}"</span>)
114: <span class="ruby-keyword kw">else</span>
115: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-node">"#{o.year}/%m/%d %H:%M:%S"</span>)
116: <span class="ruby-keyword kw">end</span>
117: <span class="ruby-keyword kw">else</span>
118: <span class="ruby-identifier">ms_part</span> = <span class="ruby-identifier">milliseconds</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">ljust</span>(<span class="ruby-value">3</span>, <span class="ruby-value str">'0'</span>)
119: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">zone_part</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">zone_part</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">"+00:00"</span>
120: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-node">"#{o.year}/%m/%d %H:%M:%S."</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">ms_part</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">zone_part</span>)
121: <span class="ruby-keyword kw">else</span>
122: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-node">"#{o.year}/%m/%d %H:%M:%S."</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">ms_part</span>)
123: <span class="ruby-keyword kw">end</span>
124: <span class="ruby-keyword kw">end</span>
125: 
126: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Date</span>)
127: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-node">"#{o.year}/%m/%d"</span>)
128: 
129: <span class="ruby-keyword kw">else</span>
130: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">o</span>.<span class="ruby-identifier">to_s</span>
131: <span class="ruby-keyword kw">end</span>
132: <span class="ruby-keyword kw">end</span></pre>
|
238
253
|
</div>
|
239
254
|
</div>
|
240
255
|
<div class='method public-class' id='method-M000003'>
|
@@ -257,7 +272,7 @@
|
|
257
272
|
<a class='source-toggle' href='#' onclick="toggleCode('M000003-source'); return false">
|
258
273
|
[show source]
|
259
274
|
</a>
|
260
|
-
<pre id='M000003-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line
|
275
|
+
<pre id='M000003-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line 144</span>
144: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new_date_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">time_zone_offset</span>)
145: <span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">civil</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">time_zone_offset</span>)
146: <span class="ruby-keyword kw">end</span></pre>
|
261
276
|
</div>
|
262
277
|
</div>
|
263
278
|
<div class='method public-class' id='method-M000006'>
|
@@ -282,7 +297,7 @@
|
|
282
297
|
<a class='source-toggle' href='#' onclick="toggleCode('M000006-source'); return false">
|
283
298
|
[show source]
|
284
299
|
</a>
|
285
|
-
<pre id='M000006-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line
|
300
|
+
<pre id='M000006-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line 237</span>
237: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">input</span>)
238: <span class="ruby-constant">Tag</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">ROOT_TAG_NAME</span>).<span class="ruby-identifier">read</span>(<span class="ruby-identifier">input</span>)
239: <span class="ruby-keyword kw">end</span></pre>
|
286
301
|
</div>
|
287
302
|
</div>
|
288
303
|
<div class='method public-class' id='method-M000009'>
|
@@ -305,7 +320,7 @@
|
|
305
320
|
<a class='source-toggle' href='#' onclick="toggleCode('M000009-source'); return false">
|
306
321
|
[show source]
|
307
322
|
</a>
|
308
|
-
<pre id='M000009-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line
|
323
|
+
<pre id='M000009-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line 275</span>
275: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_attribute_map</span>(<span class="ruby-identifier">s</span>)
276: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"'s' cannot be null"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span>
277: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">read</span>(<span class="ruby-value str">"atts "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">s</span>).<span class="ruby-identifier">child</span>.<span class="ruby-identifier">attributes</span>
278: <span class="ruby-keyword kw">end</span></pre>
|
309
324
|
</div>
|
310
325
|
</div>
|
311
326
|
<div class='method public-class' id='method-M000007'>
|
@@ -324,7 +339,7 @@
|
|
324
339
|
<a class='source-toggle' href='#' onclick="toggleCode('M000007-source'); return false">
|
325
340
|
[show source]
|
326
341
|
</a>
|
327
|
-
<pre id='M000007-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line
|
342
|
+
<pre id='M000007-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line 247</span>
247: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_value</span>(<span class="ruby-identifier">s</span>)
248: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"'s' cannot be null"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span>
249: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">read</span>(<span class="ruby-identifier">s</span>).<span class="ruby-identifier">child</span>.<span class="ruby-identifier">value</span>
250: <span class="ruby-keyword kw">end</span></pre>
|
328
343
|
</div>
|
329
344
|
</div>
|
330
345
|
<div class='method public-class' id='method-M000008'>
|
@@ -350,7 +365,7 @@
|
|
350
365
|
<a class='source-toggle' href='#' onclick="toggleCode('M000008-source'); return false">
|
351
366
|
[show source]
|
352
367
|
</a>
|
353
|
-
<pre id='M000008-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line
|
368
|
+
<pre id='M000008-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line 261</span>
261: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_value_array</span>(<span class="ruby-identifier">s</span>)
262: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"'s' cannot be null"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span>
263: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">read</span>(<span class="ruby-identifier">s</span>).<span class="ruby-identifier">child</span>.<span class="ruby-identifier">values</span>
264: <span class="ruby-keyword kw">end</span></pre>
|
354
369
|
</div>
|
355
370
|
</div>
|
356
371
|
<div class='method public-class' id='method-M000005'>
|
@@ -363,7 +378,7 @@
|
|
363
378
|
<p>
|
364
379
|
Validates an SDL identifier String. SDL Identifiers must start with a
|
365
380
|
Unicode letter or underscore (_) and contain only unicode letters, digits,
|
366
|
-
underscores (_), dashes(-)
|
381
|
+
underscores (_), dashes(-), periods (.) and dollar signs ($).
|
367
382
|
</p>
|
368
383
|
<h2>Raises</h2>
|
369
384
|
<p>
|
@@ -377,7 +392,7 @@
|
|
377
392
|
<a class='source-toggle' href='#' onclick="toggleCode('M000005-source'); return false">
|
378
393
|
[show source]
|
379
394
|
</a>
|
380
|
-
<pre id='M000005-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line
|
395
|
+
<pre id='M000005-source'> <span class="ruby-comment cmt"># File lib/sdl4r/sdl4r.rb, line 189</span>
189: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">validate_identifier</span>(<span class="ruby-identifier">identifier</span>)
190: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">identifier</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">identifier</span>.<span class="ruby-identifier">empty?</span>
191: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"SDL identifiers cannot be null or empty."</span>
192: <span class="ruby-keyword kw">end</span>
193: 
194: <span class="ruby-comment cmt"># in Java, was if(!Character.isJavaIdentifierStart(identifier.charAt(0)))</span>
195: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">identifier</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^[a-zA-Z_]/</span>
196: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>,
197: <span class="ruby-value str">"'"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">identifier</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">0</span>] <span class="ruby-operator">+</span>
198: <span class="ruby-value str">"' is not a legal first character for an SDL identifier. "</span> <span class="ruby-operator">+</span>
199: <span class="ruby-value str">"SDL Identifiers must start with a unicode letter or "</span> <span class="ruby-operator">+</span>
200: <span class="ruby-value str">"an underscore (_)."</span>
201: <span class="ruby-keyword kw">end</span>
202: 
203: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">identifier</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">identifier</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^[a-zA-Z_][a-zA-Z_0-9\-\.\$]*$/</span>
204: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-identifier">identifier</span>.<span class="ruby-identifier">length</span>
205: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">identifier</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">..</span><span class="ruby-identifier">i</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^[a-zA-Z_0-9\-\.\$]$/</span>
206: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>,
207: <span class="ruby-value str">"'"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">identifier</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">..</span><span class="ruby-identifier">i</span>] <span class="ruby-operator">+</span> 
208: <span class="ruby-value str">"' is not a legal character for an SDL identifier. "</span> <span class="ruby-operator">+</span>
209: <span class="ruby-value str">"SDL Identifiers must start with a unicode letter or "</span> <span class="ruby-operator">+</span>
210: <span class="ruby-value str">"underscore (_) followed by 0 or more unicode "</span> <span class="ruby-operator">+</span>
211: <span class="ruby-value str">"letters, digits, underscores (_), dashes (-), periodss (.) and dollar signs ($)"</span>
212: <span class="ruby-keyword kw">end</span>
213: <span class="ruby-keyword kw">end</span>
214: <span class="ruby-keyword kw">end</span>
215: <span class="ruby-keyword kw">end</span></pre>
|
381
396
|
</div>
|
382
397
|
</div>
|
383
398
|
</div>
|
@@ -37,10 +37,10 @@
|
|
37
37
|
<a href="../../files/lib/sdl4r/parser/reader_rb.html">lib/sdl4r/parser/reader.rb</a>
|
38
38
|
</li>
|
39
39
|
<li class='other'>
|
40
|
-
<a href="../../files/lib/sdl4r/parser/
|
40
|
+
<a href="../../files/lib/sdl4r/parser/token_rb.html">lib/sdl4r/parser/token.rb</a>
|
41
41
|
</li>
|
42
42
|
<li class='other'>
|
43
|
-
<a href="../../files/lib/sdl4r/parser/
|
43
|
+
<a href="../../files/lib/sdl4r/parser/tokenizer_rb.html">lib/sdl4r/parser/tokenizer.rb</a>
|
44
44
|
</li>
|
45
45
|
<li class='other'>
|
46
46
|
<a href="../../files/lib/sdl4r/parser/time_span_with_zone_rb.html">lib/sdl4r/parser/time_span_with_zone.rb</a>
|
@@ -53,10 +53,12 @@
|
|
53
53
|
<li><a href="#M000101">test_date_time</a></li>
|
54
54
|
<li><a href="#M000106">test_double_quote_strings</a></li>
|
55
55
|
<li><a href="#M000090">test_empty</a></li>
|
56
|
+
<li><a href="#M000111">test_empty_block</a></li>
|
57
|
+
<li><a href="#M000110">test_identifiers</a></li>
|
56
58
|
<li><a href="#M000104">test_null</a></li>
|
57
59
|
<li><a href="#M000102">test_numbers</a></li>
|
58
60
|
<li><a href="#M000091">test_one_tag_alone</a></li>
|
59
|
-
<li><a href="#
|
61
|
+
<li><a href="#M000112">test_parse_error</a></li>
|
60
62
|
<li><a href="#M000109">test_sub_tags</a></li>
|
61
63
|
<li><a href="#M000098">test_tag_with_attributes</a></li>
|
62
64
|
<li><a href="#M000095">test_tag_with_back_quote_string_values</a></li>
|
@@ -81,7 +83,7 @@
|
|
81
83
|
<a class='source-toggle' href='#' onclick="toggleCode('M000108-source'); return false">
|
82
84
|
[show source]
|
83
85
|
</a>
|
84
|
-
<pre id='M000108-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
86
|
+
<pre id='M000108-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 339</span>
339: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_backquote_strings</span>
340: <span class="ruby-identifier">root</span> = <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span> <span class="ruby-value str">"winfile `c:\\\\directory\\\\myfile.xls`\ntalk `I said \"something\"`\nxml `\n<product>\n <shoes color=\"blue\"/>\n</product>\n`\nregex `\\\\w+\\\\.suite\\\\(\\\\)`\n"</span>
341: 
342: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"c:\\directory\\myfile.xls"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"winfile"</span>).<span class="ruby-identifier">value</span>
343: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">'I said "something"'</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"talk"</span>).<span class="ruby-identifier">value</span>
344: <span class="ruby-identifier">assert_equal</span>(
345: <span class="ruby-value str">"\n<product>\n <shoes color=\"blue\"/>\n</product>\n"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"xml"</span>).<span class="ruby-identifier">value</span>)
346: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"\\w+\\.suite\\(\\)"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"regex"</span>).<span class="ruby-identifier">value</span>
347: <span class="ruby-keyword kw">end</span></pre>
|
85
87
|
</div>
|
86
88
|
</div>
|
87
89
|
<div class='method public-instance' id='method-M000103'>
|
@@ -94,7 +96,7 @@
|
|
94
96
|
<a class='source-toggle' href='#' onclick="toggleCode('M000103-source'); return false">
|
95
97
|
[show source]
|
96
98
|
</a>
|
97
|
-
<pre id='M000103-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
99
|
+
<pre id='M000103-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 235</span>
235: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_booleans</span>
236: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 b1=true b2=false b3=on b4=off"</span>)
237: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"b1"</span>))
238: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"b2"</span>))
239: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"b3"</span>))
240: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"b4"</span>))
241: <span class="ruby-keyword kw">end</span></pre>
|
98
100
|
</div>
|
99
101
|
</div>
|
100
102
|
<div class='method public-instance' id='method-M000107'>
|
@@ -107,7 +109,7 @@
|
|
107
109
|
<a class='source-toggle' href='#' onclick="toggleCode('M000107-source'); return false">
|
108
110
|
[show source]
|
109
111
|
</a>
|
110
|
-
<pre id='M000107-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
112
|
+
<pre id='M000107-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 315</span>
315: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_characters</span>
316: <span class="ruby-identifier">root</span> = <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span> <span class="ruby-value str">"tag1 ' ' 'a' '\\\\' '\\t' '\\n' '\\r'"</span>
317: <span class="ruby-identifier">assert_equal</span> [<span class="ruby-value str">" "</span>, <span class="ruby-value str">"a"</span>, <span class="ruby-value str">"\\"</span>, <span class="ruby-value str">"\t"</span>, <span class="ruby-value str">"\n"</span>, <span class="ruby-value str">"\r"</span>], <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag1"</span>).<span class="ruby-identifier">values</span>
318: 
319: <span class="ruby-identifier">assert_raise</span> <span class="ruby-constant">SdlParseError</span> <span class="ruby-keyword kw">do</span>
320: <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span> <span class="ruby-value str">"tag1 '"</span>
321: <span class="ruby-keyword kw">end</span>
322: <span class="ruby-identifier">assert_raise</span> <span class="ruby-constant">SdlParseError</span> <span class="ruby-keyword kw">do</span>
323: <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span> <span class="ruby-value str">"tag1 'a"</span>
324: <span class="ruby-keyword kw">end</span>
325: <span class="ruby-identifier">assert_raise</span> <span class="ruby-constant">SdlParseError</span> <span class="ruby-keyword kw">do</span>
326: <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span> <span class="ruby-value str">"tag1 'abc'"</span>
327: <span class="ruby-keyword kw">end</span>
328: <span class="ruby-identifier">assert_raise</span> <span class="ruby-constant">SdlParseError</span> <span class="ruby-keyword kw">do</span>
329: <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span> <span class="ruby-value str">"tag1 ''"</span>
330: <span class="ruby-keyword kw">end</span>
331: <span class="ruby-identifier">assert_raise</span> <span class="ruby-constant">SdlParseError</span> <span class="ruby-keyword kw">do</span>
332: <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span> <span class="ruby-value str">"tag1 '\\'"</span>
333: <span class="ruby-keyword kw">end</span>
334: <span class="ruby-identifier">assert_raise</span> <span class="ruby-constant">SdlParseError</span> <span class="ruby-keyword kw">do</span>
335: <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span> <span class="ruby-value str">"tag1 '\\"</span>
336: <span class="ruby-keyword kw">end</span>
337: <span class="ruby-keyword kw">end</span></pre>
|
111
113
|
</div>
|
112
114
|
</div>
|
113
115
|
<div class='method public-instance' id='method-M000105'>
|
@@ -120,7 +122,7 @@
|
|
120
122
|
<a class='source-toggle' href='#' onclick="toggleCode('M000105-source'); return false">
|
121
123
|
[show source]
|
122
124
|
</a>
|
123
|
-
<pre id='M000105-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
125
|
+
<pre id='M000105-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 252</span>
252: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_comments</span>
253: <span class="ruby-identifier">root</span> = <span class="ruby-constant">Tag</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"root"</span>)
254: <span class="ruby-identifier">root</span>.<span class="ruby-identifier">read</span>(
255: <span class="ruby-value str">"tag1 123\n#tag2 456\ntag3 789\n--tag4 012\ntag5 345\n//tag6 678\ntag7 901\n/*tag8 234\ntag9 567*/\ntag10 890\n"</span>
256: )
257: <span class="ruby-identifier">children</span> = <span class="ruby-identifier">root</span>.<span class="ruby-identifier">children</span>
258: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">5</span>, <span class="ruby-identifier">children</span>.<span class="ruby-identifier">size</span>, <span class="ruby-value str">"children count"</span>)
259: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">123</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag1"</span>).<span class="ruby-identifier">value</span>)
260: <span class="ruby-identifier">assert_nil</span>(<span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag2"</span>))
261: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">789</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag3"</span>).<span class="ruby-identifier">value</span>)
262: <span class="ruby-identifier">assert_nil</span>(<span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag4"</span>))
263: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">345</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag5"</span>).<span class="ruby-identifier">value</span>)
264: <span class="ruby-identifier">assert_nil</span>(<span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag6"</span>))
265: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">901</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag7"</span>).<span class="ruby-identifier">value</span>)
266: <span class="ruby-identifier">assert_nil</span>(<span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag8"</span>))
267: <span class="ruby-identifier">assert_nil</span>(<span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag9"</span>))
268: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">890</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag10"</span>).<span class="ruby-identifier">value</span>)
269: <span class="ruby-keyword kw">end</span></pre>
|
124
126
|
</div>
|
125
127
|
</div>
|
126
128
|
<div class='method public-instance' id='method-M000099'>
|
@@ -133,7 +135,7 @@
|
|
133
135
|
<a class='source-toggle' href='#' onclick="toggleCode('M000099-source'); return false">
|
134
136
|
[show source]
|
135
137
|
</a>
|
136
|
-
<pre id='M000099-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
138
|
+
<pre id='M000099-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 141</span>
141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_date</span>
142: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 2005/12/05"</span>)
143: <span class="ruby-identifier">date</span> = <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">value</span>
144: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-constant">Date</span>.<span class="ruby-identifier">civil</span>(<span class="ruby-value">2005</span>, <span class="ruby-value">12</span>, <span class="ruby-value">5</span>), <span class="ruby-identifier">date</span>, <span class="ruby-value str">"date value"</span>)
145: <span class="ruby-keyword kw">end</span></pre>
|
137
139
|
</div>
|
138
140
|
</div>
|
139
141
|
<div class='method public-instance' id='method-M000101'>
|
@@ -146,7 +148,7 @@
|
|
146
148
|
<a class='source-toggle' href='#' onclick="toggleCode('M000101-source'); return false">
|
147
149
|
[show source]
|
148
150
|
</a>
|
149
|
-
<pre id='M000101-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
151
|
+
<pre id='M000101-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 169</span>
169: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_date_time</span>
170: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(
171: <span class="ruby-value str">"tag1 date1=2008/06/01 12:34"</span> <span class="ruby-operator">+</span>
172: <span class="ruby-value str">" date2=1999/12/31 23:59:58"</span> <span class="ruby-operator">+</span>
173: <span class="ruby-value str">" date3=2000/05/01 12:01:35.997"</span> <span class="ruby-operator">+</span>
174: <span class="ruby-value str">" date4=2015/12/05 14:12:23.345-JST"</span> <span class="ruby-operator">+</span>
175: <span class="ruby-value str">" date5=1414/05/12 03:00:01.107-UTC-04"</span> <span class="ruby-operator">+</span>
176: <span class="ruby-value str">" date6=1807/11/11 22:28:13.888-GMT-08:30"</span>)
177: <span class="ruby-identifier">assert_equal</span>(
178: <span class="ruby-identifier">local_civil_date</span>(<span class="ruby-value">2008</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span>, <span class="ruby-value">12</span>, <span class="ruby-value">34</span>),
179: <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"date1"</span>),
180: <span class="ruby-value str">"date1"</span>);
181: <span class="ruby-identifier">assert_equal</span>(
182: <span class="ruby-identifier">local_civil_date</span>(<span class="ruby-value">1999</span>, <span class="ruby-value">12</span>, <span class="ruby-value">31</span>, <span class="ruby-value">23</span>, <span class="ruby-value">59</span>, <span class="ruby-value">58</span>),
183: <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"date2"</span>),
184: <span class="ruby-value str">"date2"</span>);
185: <span class="ruby-identifier">assert_equal</span>(
186: <span class="ruby-identifier">local_civil_date</span>(<span class="ruby-value">2000</span>, <span class="ruby-value">5</span>, <span class="ruby-value">1</span>, <span class="ruby-value">12</span>, <span class="ruby-value">1</span>, <span class="ruby-constant">Rational</span>(<span class="ruby-value">35997</span>, <span class="ruby-value">1000</span>)),
187: <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"date3"</span>),
188: <span class="ruby-value str">"date3"</span>);
189: <span class="ruby-identifier">assert_equal</span>(
190: <span class="ruby-identifier">local_civil_date</span>(<span class="ruby-value">2015</span>, <span class="ruby-value">12</span>, <span class="ruby-value">5</span>, <span class="ruby-value">14</span>, <span class="ruby-value">12</span>, <span class="ruby-constant">Rational</span>(<span class="ruby-value">23345</span>, <span class="ruby-value">1000</span>), <span class="ruby-constant">Rational</span>(<span class="ruby-value">9</span>, <span class="ruby-value">24</span>)),
191: <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"date4"</span>),
192: <span class="ruby-value str">"date4"</span>);
193: <span class="ruby-identifier">assert_equal</span>(
194: <span class="ruby-identifier">local_civil_date</span>(<span class="ruby-value">1414</span>, <span class="ruby-value">5</span>, <span class="ruby-value">12</span>, <span class="ruby-value">3</span>, <span class="ruby-value">0</span>, <span class="ruby-constant">Rational</span>(<span class="ruby-value">1107</span>, <span class="ruby-value">1000</span>), <span class="ruby-constant">Rational</span>(<span class="ruby-value">-4</span>, <span class="ruby-value">24</span>)),
195: <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"date5"</span>),
196: <span class="ruby-value str">"date5"</span>);
197: <span class="ruby-identifier">assert_equal</span>(
198: <span class="ruby-identifier">local_civil_date</span>(<span class="ruby-value">1807</span>, <span class="ruby-value">11</span>, <span class="ruby-value">11</span>, <span class="ruby-value">22</span>, <span class="ruby-value">28</span>, <span class="ruby-constant">Rational</span>(<span class="ruby-value">13888</span>, <span class="ruby-value">1000</span>), <span class="ruby-constant">Rational</span>(<span class="ruby-value">-85</span>, <span class="ruby-value">240</span>)),
199: <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"date6"</span>),
200: <span class="ruby-value str">"date6"</span>);
201: 
202: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 2008/06/01 5d:12:34"</span>) <span class="ruby-comment cmt"># not a datetime: a date + a timespan</span>
203: <span class="ruby-identifier">assert_equal</span> <span class="ruby-constant">Date</span>.<span class="ruby-identifier">civil</span>(<span class="ruby-value">2008</span>, <span class="ruby-value">6</span>, <span class="ruby-value">1</span>), <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>[<span class="ruby-value">0</span>]
204: <span class="ruby-identifier">assert_equal</span> <span class="ruby-constant">SdlTimeSpan</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">5</span>, <span class="ruby-value">12</span>, <span class="ruby-value">34</span>), <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>[<span class="ruby-value">1</span>]
205: <span class="ruby-keyword kw">end</span></pre>
|
150
152
|
</div>
|
151
153
|
</div>
|
152
154
|
<div class='method public-instance' id='method-M000106'>
|
@@ -159,7 +161,7 @@
|
|
159
161
|
<a class='source-toggle' href='#' onclick="toggleCode('M000106-source'); return false">
|
160
162
|
[show source]
|
161
163
|
</a>
|
162
|
-
<pre id='M000106-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
164
|
+
<pre id='M000106-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 283</span>
283: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_double_quote_strings</span>
284: <span class="ruby-identifier">root</span> = <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span>(
285: <span class="ruby-value str">"tag1 \"cheese and cherry jam\"\ntag2 \"cheese and \\\\\n cherry jam\"\ntag3 \"cheese \\\\\n and \\\\\n cherry jam\"\ntag4 \"Did you say this soup was \\\\\"good\\\\\"?\"\ntag5 \"Even my dog wouldn't\\\\thave\\\\tit!\"\ntag6 \"\\\\\"\\\\t\\\\r\\\\n\\\\\\\\\"\ntag7 equation=\"is not x=y*z\" color=\"blue \\\\\n and yellow\"\n"</span>
286: )
287: 
288: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"cheese and cherry jam"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag1"</span>).<span class="ruby-identifier">value</span>, <span class="ruby-value str">"double-quote string"</span>
289: <span class="ruby-identifier">assert_equal</span>(
290: <span class="ruby-value str">"cheese and cherry jam"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag2"</span>).<span class="ruby-identifier">value</span>, <span class="ruby-value str">"continued double-quote string"</span>)
291: <span class="ruby-identifier">assert_equal</span>(
292: <span class="ruby-value str">"cheese and cherry jam"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag3"</span>).<span class="ruby-identifier">value</span>, <span class="ruby-value str">"continued double-quote string"</span>)
293: <span class="ruby-identifier">assert_equal</span>(
294: <span class="ruby-value str">'Did you say this soup was "good"?'</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag4"</span>).<span class="ruby-identifier">value</span>, <span class="ruby-value str">"escaped quotes"</span>)
295: <span class="ruby-identifier">assert_equal</span>(
296: <span class="ruby-value str">"Even my dog wouldn't\thave\tit!"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag5"</span>).<span class="ruby-identifier">value</span>, <span class="ruby-value str">"escaped tabs"</span>)
297: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"\"\t\r\n\\"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag6"</span>).<span class="ruby-identifier">value</span>, <span class="ruby-value str">"escaped white spaces"</span>
298: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"is not x=y*z"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag7"</span>).<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"equation"</span>)
299: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"blue and yellow"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>(<span class="ruby-value str">"tag7"</span>).<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"color"</span>)
300: <span class="ruby-keyword kw">end</span></pre>
|
163
165
|
</div>
|
164
166
|
</div>
|
165
167
|
<div class='method public-instance' id='method-M000090'>
|
@@ -172,7 +174,33 @@
|
|
172
174
|
<a class='source-toggle' href='#' onclick="toggleCode('M000090-source'); return false">
|
173
175
|
[show source]
|
174
176
|
</a>
|
175
|
-
<pre id='M000090-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
177
|
+
<pre id='M000090-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 38</span>
38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_empty</span>
39: <span class="ruby-identifier">root</span> = <span class="ruby-constant">Tag</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"root"</span>)
40: <span class="ruby-identifier">root</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value str">""</span>)
41: <span class="ruby-identifier">root</span>.<span class="ruby-identifier">children</span>(<span class="ruby-keyword kw">false</span>) { <span class="ruby-identifier">fail</span>(<span class="ruby-value str">"no child expected"</span>) }
42: <span class="ruby-keyword kw">end</span></pre>
|
178
|
+
</div>
|
179
|
+
</div>
|
180
|
+
<div class='method public-instance' id='method-M000111'>
|
181
|
+
<a name='M000111'></a>
|
182
|
+
<div class='synopsis'>
|
183
|
+
<span class='name'>test_empty_block</span>
|
184
|
+
<span class='arguments'>()</span>
|
185
|
+
</div>
|
186
|
+
<div class='source'>
|
187
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000111-source'); return false">
|
188
|
+
[show source]
|
189
|
+
</a>
|
190
|
+
<pre id='M000111-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 416</span>
416: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_empty_block</span>
417: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 {\n}"</span>)
418: <span class="ruby-identifier">assert_equal</span> [], <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>
419: <span class="ruby-identifier">assert_equal</span>({}, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attributes</span>)
420: <span class="ruby-identifier">assert_equal</span> [], <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">children</span>
421: 
422: <span class="ruby-comment cmt"># tag1 = parse_one_tag1("tag1 {}")</span>
423: <span class="ruby-comment cmt"># assert_equal [], tag1.values</span>
424: <span class="ruby-comment cmt"># assert_equal({}, tag1.attributes)</span>
425: <span class="ruby-comment cmt"># assert_equal [], tag1.children</span>
426: <span class="ruby-keyword kw">end</span></pre>
|
191
|
+
</div>
|
192
|
+
</div>
|
193
|
+
<div class='method public-instance' id='method-M000110'>
|
194
|
+
<a name='M000110'></a>
|
195
|
+
<div class='synopsis'>
|
196
|
+
<span class='name'>test_identifiers</span>
|
197
|
+
<span class='arguments'>()</span>
|
198
|
+
</div>
|
199
|
+
<div class='source'>
|
200
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000110-source'); return false">
|
201
|
+
[show source]
|
202
|
+
</a>
|
203
|
+
<pre id='M000110-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 394</span>
394: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_identifiers</span>
395: <span class="ruby-identifier">root</span> = <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span>(<span class="ruby-value str">"my_ns:my_tag my_ns2:my_attr=-13.8"</span>)
396: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"my_ns"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">namespace</span>
397: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"my_tag"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">name</span>
398: <span class="ruby-identifier">assert_equal</span>({ <span class="ruby-value str">"my_ns2:my_attr"</span> =<span class="ruby-operator">></span> <span class="ruby-value">-13.8</span> }, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">attributes</span>)
399: 
400: <span class="ruby-identifier">root</span> = <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span>(<span class="ruby-value str">"_my_ns:_my_tag _my_ns2:_my_attr=-13.8"</span>)
401: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"_my_ns"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">namespace</span>
402: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"_my_tag"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">name</span>
403: <span class="ruby-identifier">assert_equal</span>({ <span class="ruby-value str">"_my_ns2:_my_attr"</span> =<span class="ruby-operator">></span> <span class="ruby-value">-13.8</span> }, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">attributes</span>)
404: 
405: <span class="ruby-identifier">root</span> = <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span>(<span class="ruby-value str">"my.ns:my.tag my.ns2:my.attr=-13.8"</span>)
406: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"my.ns"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">namespace</span>
407: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"my.tag"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">name</span>
408: <span class="ruby-identifier">assert_equal</span>({ <span class="ruby-value str">"my.ns2:my.attr"</span> =<span class="ruby-operator">></span> <span class="ruby-value">-13.8</span> }, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">attributes</span>)
409: 
410: <span class="ruby-identifier">root</span> = <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span>(<span class="ruby-value str">"my$ns:my$tag my$ns2:my$attr=-13.8"</span>)
411: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"my$ns"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">namespace</span>
412: <span class="ruby-identifier">assert_equal</span> <span class="ruby-value str">"my$tag"</span>, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">name</span>
413: <span class="ruby-identifier">assert_equal</span>({ <span class="ruby-value str">"my$ns2:my$attr"</span> =<span class="ruby-operator">></span> <span class="ruby-value">-13.8</span> }, <span class="ruby-identifier">root</span>.<span class="ruby-identifier">child</span>.<span class="ruby-identifier">attributes</span>)
414: <span class="ruby-keyword kw">end</span></pre>
|
176
204
|
</div>
|
177
205
|
</div>
|
178
206
|
<div class='method public-instance' id='method-M000104'>
|
@@ -185,7 +213,7 @@
|
|
185
213
|
<a class='source-toggle' href='#' onclick="toggleCode('M000104-source'); return false">
|
186
214
|
[show source]
|
187
215
|
</a>
|
188
|
-
<pre id='M000104-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
216
|
+
<pre id='M000104-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 243</span>
243: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_null</span>
244: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 null attr1=null"</span>)
245: <span class="ruby-identifier">values</span> = <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>
246: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">values</span>.<span class="ruby-identifier">size</span>)
247: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">0</span>])
248: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"attr1"</span>))
249: <span class="ruby-identifier">assert</span>(<span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">has_attribute?</span>(<span class="ruby-value str">"attr1"</span>))
250: <span class="ruby-keyword kw">end</span></pre>
|
189
217
|
</div>
|
190
218
|
</div>
|
191
219
|
<div class='method public-instance' id='method-M000102'>
|
@@ -198,7 +226,7 @@
|
|
198
226
|
<a class='source-toggle' href='#' onclick="toggleCode('M000102-source'); return false">
|
199
227
|
[show source]
|
200
228
|
</a>
|
201
|
-
<pre id='M000102-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
229
|
+
<pre id='M000102-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 207</span>
207: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_numbers</span>
208: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(
209: <span class="ruby-value str">"tag1 123 3000000000 456l 789L 123.45f 67.8F 910.11 12.13d 1415.16D 171.8BD 1.920bd 12345678901234567890BD"</span>)
210: <span class="ruby-identifier">values</span> = <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>
211: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">123</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">0</span>])
212: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">3000000000</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">1</span>])
213: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">456</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">2</span>])
214: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">789</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">3</span>])
215: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">123.45</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">4</span>])
216: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">67.8</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">5</span>])
217: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">910.11</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">6</span>])
218: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">12.13</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">7</span>])
219: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">1415.16</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">8</span>])
220: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-constant">BigDecimal</span>(<span class="ruby-value str">"171.8"</span>), <span class="ruby-identifier">values</span>[<span class="ruby-value">9</span>])
221: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-constant">BigDecimal</span>(<span class="ruby-value str">"1.920"</span>), <span class="ruby-identifier">values</span>[<span class="ruby-value">10</span>])
222: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-constant">BigDecimal</span>(<span class="ruby-value str">"12345678901234567890"</span>), <span class="ruby-identifier">values</span>[<span class="ruby-value">11</span>])
223: 
224: <span class="ruby-identifier">assert_raise</span> <span class="ruby-constant">SdlParseError</span> <span class="ruby-keyword kw">do</span>
225: <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 123.2.2"</span>)
226: <span class="ruby-keyword kw">end</span>
227: <span class="ruby-identifier">assert_raise</span> <span class="ruby-constant">SdlParseError</span> <span class="ruby-keyword kw">do</span>
228: <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 123.2e"</span>)
229: <span class="ruby-keyword kw">end</span>
230: <span class="ruby-identifier">assert_raise</span> <span class="ruby-constant">SdlParseError</span> <span class="ruby-keyword kw">do</span>
231: <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 +-123.2"</span>)
232: <span class="ruby-keyword kw">end</span>
233: <span class="ruby-keyword kw">end</span></pre>
|
202
230
|
</div>
|
203
231
|
</div>
|
204
232
|
<div class='method public-instance' id='method-M000091'>
|
@@ -211,20 +239,20 @@
|
|
211
239
|
<a class='source-toggle' href='#' onclick="toggleCode('M000091-source'); return false">
|
212
240
|
[show source]
|
213
241
|
</a>
|
214
|
-
<pre id='M000091-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
242
|
+
<pre id='M000091-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 44</span>
44: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_one_tag_alone</span>
45: <span class="ruby-comment cmt"># Tag without namespace</span>
46: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1"</span>)
47: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"tag1"</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">name</span>, <span class="ruby-value str">"name"</span> )
48: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">""</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">namespace</span>, <span class="ruby-value str">"namespace"</span> )
49: 
50: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">size</span>, <span class="ruby-value str">"values"</span>)
51: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">size</span>, <span class="ruby-value str">"attributes"</span>)
52: 
53: <span class="ruby-comment cmt"># Tag with namespace</span>
54: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"ns1:tag1"</span>)
55: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"tag1"</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">name</span>, <span class="ruby-value str">"name"</span> )
56: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"ns1"</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">namespace</span>, <span class="ruby-value str">"namespace"</span> )
57: <span class="ruby-keyword kw">end</span></pre>
|
215
243
|
</div>
|
216
244
|
</div>
|
217
|
-
<div class='method public-instance' id='method-
|
218
|
-
<a name='
|
245
|
+
<div class='method public-instance' id='method-M000112'>
|
246
|
+
<a name='M000112'></a>
|
219
247
|
<div class='synopsis'>
|
220
248
|
<span class='name'>test_parse_error</span>
|
221
249
|
<span class='arguments'>()</span>
|
222
250
|
</div>
|
223
251
|
<div class='source'>
|
224
|
-
<a class='source-toggle' href='#' onclick="toggleCode('
|
252
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000112-source'); return false">
|
225
253
|
[show source]
|
226
254
|
</a>
|
227
|
-
<pre id='
|
255
|
+
<pre id='M000112-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 428</span>
428: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_parse_error</span>
429: <span class="ruby-comment cmt"># WARNING: the line and col of an error is not accurate science. The goal here is to point to</span>
430: <span class="ruby-comment cmt"># coordinates that are useful to the user.</span>
431: <span class="ruby-comment cmt"># Exampe for a string litteral that spans over several line, some errors could be point to</span>
432: <span class="ruby-comment cmt"># the start or to the end without too much ambiguity.</span>
433: <span class="ruby-comment cmt"># Consequently, feel free to change the coordinates, if a change in the implementation</span>
434: <span class="ruby-comment cmt"># modifies the x/y of the error and they still make sense.</span>
435: <span class="ruby-identifier">assert_error_xy</span> <span class="ruby-value str">"="</span>, <span class="ruby-value">1</span>, <span class="ruby-value">1</span>
436: <span class="ruby-identifier">assert_error_xy</span> <span class="ruby-value str">"tag1 xyz"</span>, <span class="ruby-value">1</span>, <span class="ruby-value">6</span>
437: <span class="ruby-identifier">assert_error_xy</span> <span class="ruby-value str">"tag1 \\\nxyz"</span>, <span class="ruby-value">2</span>, <span class="ruby-value">1</span>
438: <span class="ruby-identifier">assert_error_xy</span> <span class="ruby-value str">"tag1 \\\n xyz"</span>, <span class="ruby-value">2</span>, <span class="ruby-value">4</span>
439: 
440: <span class="ruby-identifier">source</span> = <span class="ruby-value str">"-- my comment\n=\n"</span>
441: <span class="ruby-identifier">assert_error_xy</span> <span class="ruby-identifier">source</span>, <span class="ruby-value">2</span>, <span class="ruby-value">1</span>
442: 
443: <span class="ruby-identifier">source</span> = <span class="ruby-value str">"murder_plot 123 \\\\\n weight=456 \\\\\n * \\\\\n length=789\n"</span>
444: <span class="ruby-identifier">assert_error_xy</span> <span class="ruby-identifier">source</span>, <span class="ruby-value">3</span>, <span class="ruby-value">6</span>
445: 
446: <span class="ruby-identifier">assert_error_xy</span> <span class="ruby-value str">'tag1 "text\\"'</span>, <span class="ruby-value">1</span>, <span class="ruby-value">13</span>
447: 
448: <span class="ruby-identifier">source</span> = <span class="ruby-value str">"murder_plot \"abcd\\\\\n efghij\\\\\n kl\\\\\n mnopq\n"</span>
449: <span class="ruby-identifier">assert_error_xy</span> <span class="ruby-identifier">source</span>, <span class="ruby-value">4</span>, <span class="ruby-value">13</span>
450: <span class="ruby-keyword kw">end</span></pre>
|
228
256
|
</div>
|
229
257
|
</div>
|
230
258
|
<div class='method public-instance' id='method-M000109'>
|
@@ -237,7 +265,7 @@
|
|
237
265
|
<a class='source-toggle' href='#' onclick="toggleCode('M000109-source'); return false">
|
238
266
|
[show source]
|
239
267
|
</a>
|
240
|
-
<pre id='M000109-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
268
|
+
<pre id='M000109-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 359</span>
359: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_sub_tags</span>
360: <span class="ruby-identifier">root</span> = <span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span> <span class="ruby-value str">"wax {\n}\nsteack {\n bees {\n monopoly {\n }\n }\n goat_cheese\n truck {\n cathedral\n }\n}\npeanut.butter\n"</span>
361: 
362: <span class="ruby-identifier">expected</span> = <span class="ruby-constant">Tag</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"root"</span>) <span class="ruby-keyword kw">do</span>
363: <span class="ruby-identifier">new_child</span>(<span class="ruby-value str">"wax"</span>)
364: <span class="ruby-identifier">new_child</span>(<span class="ruby-value str">"steack"</span>) <span class="ruby-keyword kw">do</span>
365: <span class="ruby-identifier">new_child</span>(<span class="ruby-value str">"bees"</span>) <span class="ruby-keyword kw">do</span>
366: <span class="ruby-identifier">new_child</span>(<span class="ruby-value str">"monopoly"</span>)
367: <span class="ruby-keyword kw">end</span>
368: <span class="ruby-identifier">new_child</span>(<span class="ruby-value str">"goat_cheese"</span>)
369: <span class="ruby-identifier">new_child</span>(<span class="ruby-value str">"truck"</span>) <span class="ruby-keyword kw">do</span>
370: <span class="ruby-identifier">new_child</span>(<span class="ruby-value str">"cathedral"</span>)
371: <span class="ruby-keyword kw">end</span>
372: <span class="ruby-keyword kw">end</span>
373: <span class="ruby-identifier">new_child</span>(<span class="ruby-value str">"peanut.butter"</span>)
374: <span class="ruby-keyword kw">end</span>
375: 
376: <span class="ruby-identifier">assert_equal</span> <span class="ruby-identifier">expected</span>, <span class="ruby-identifier">root</span>
377: <span class="ruby-keyword kw">end</span></pre>
|
241
269
|
</div>
|
242
270
|
</div>
|
243
271
|
<div class='method public-instance' id='method-M000098'>
|
@@ -250,7 +278,7 @@
|
|
250
278
|
<a class='source-toggle' href='#' onclick="toggleCode('M000098-source'); return false">
|
251
279
|
[show source]
|
252
280
|
</a>
|
253
|
-
<pre id='M000098-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
281
|
+
<pre id='M000098-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 130</span>
130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_tag_with_attributes</span>
131: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(
132: <span class="ruby-value str">"tag1 attr1=\"99\" ns:attr2=[QmVhdXR5IGlzIG5vdCBlbm91Z2gu]"</span>)
133: <span class="ruby-identifier">assert_not_nil</span>(<span class="ruby-identifier">tag1</span>, <span class="ruby-value str">"tag1"</span>)
134: 
135: <span class="ruby-identifier">attributes</span> = <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attributes</span>
136: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">2</span>, <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">size</span>, <span class="ruby-value str">"attribute count"</span>)
137: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"99"</span>, <span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"attr1"</span>], <span class="ruby-value str">"attr1"</span>)
138: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-constant">SdlBinary</span>(<span class="ruby-value str">"Beauty is not enough."</span>), <span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"ns:attr2"</span>], <span class="ruby-value str">"attr2"</span>)
139: <span class="ruby-keyword kw">end</span></pre>
|
254
282
|
</div>
|
255
283
|
</div>
|
256
284
|
<div class='method public-instance' id='method-M000095'>
|
@@ -263,7 +291,7 @@
|
|
263
291
|
<a class='source-toggle' href='#' onclick="toggleCode('M000095-source'); return false">
|
264
292
|
[show source]
|
265
293
|
</a>
|
266
|
-
<pre id='M000095-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
294
|
+
<pre id='M000095-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 82</span>
82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_tag_with_back_quote_string_values</span>
83: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(
84: <span class="ruby-value str">"tag1 `abc` \"d`e`f\" `g\"h\"i` `j\\k+l` `m\\\nn\\\r\n \t o\r`"</span>)
85: <span class="ruby-identifier">assert_not_nil</span>(<span class="ruby-identifier">tag1</span>, <span class="ruby-value str">"tag1"</span>)
86: <span class="ruby-identifier">values</span> = <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>
87: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"abc"</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">0</span>], <span class="ruby-value str">"values[0]"</span>)
88: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"d`e`f"</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">1</span>], <span class="ruby-value str">"values[1]"</span>)
89: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"g\"h\"i"</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">2</span>], <span class="ruby-value str">"values[2]"</span>)
90: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"j\\k+l"</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">3</span>], <span class="ruby-value str">"values[3]"</span>)
91: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"m\\\nn\\\n \t o\r"</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">4</span>], <span class="ruby-value str">"values[4]"</span>)
92: <span class="ruby-keyword kw">end</span></pre>
|
267
295
|
</div>
|
268
296
|
</div>
|
269
297
|
<div class='method public-instance' id='method-M000096'>
|
@@ -276,7 +304,7 @@
|
|
276
304
|
<a class='source-toggle' href='#' onclick="toggleCode('M000096-source'); return false">
|
277
305
|
[show source]
|
278
306
|
</a>
|
279
|
-
<pre id='M000096-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
307
|
+
<pre id='M000096-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 94</span>
 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_tag_with_base64_values</span>
 95: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(
 96: <span class="ruby-value str">"tag1 [V2VsY29tZSB0byB0aGUgY3J1ZWwgd29ybGQu] [\n SG9wZSB5\n b3UnbGwg\n ZmluZCB5\n b3VyIHdh\n eS4=\n]\n"</span>
 97: )
 98: <span class="ruby-identifier">assert_not_nil</span>(<span class="ruby-identifier">tag1</span>, <span class="ruby-value str">"tag1"</span>)
 99: <span class="ruby-identifier">values</span> = <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>
100: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-constant">SdlBinary</span>(<span class="ruby-value str">"Welcome to the cruel world."</span>), <span class="ruby-identifier">values</span>[<span class="ruby-value">0</span>], <span class="ruby-value str">"values[0]"</span>)
101: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-constant">SDL4R</span><span class="ruby-operator">::</span><span class="ruby-constant">SdlBinary</span>(<span class="ruby-value str">"Hope you'll find your way."</span>), <span class="ruby-identifier">values</span>[<span class="ruby-value">1</span>], <span class="ruby-value str">"values[1]"</span>)
102: <span class="ruby-keyword kw">end</span></pre>
|
280
308
|
</div>
|
281
309
|
</div>
|
282
310
|
<div class='method public-instance' id='method-M000094'>
|
@@ -289,7 +317,7 @@
|
|
289
317
|
<a class='source-toggle' href='#' onclick="toggleCode('M000094-source'); return false">
|
290
318
|
[show source]
|
291
319
|
</a>
|
292
|
-
<pre id='M000094-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
320
|
+
<pre id='M000094-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 73</span>
73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_tag_with_double_quote_string_values</span>
74: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 \"abc\" \"d\\\ne\\\nf\" \"g\\\n \t hi\""</span>)
75: <span class="ruby-identifier">assert_not_nil</span>(<span class="ruby-identifier">tag1</span>, <span class="ruby-value str">"tag1"</span>)
76: <span class="ruby-identifier">values</span> = <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>
77: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"abc"</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">0</span>], <span class="ruby-value str">"values[0]"</span>)
78: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"def"</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">1</span>], <span class="ruby-value str">"values[1]"</span>)
79: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"ghi"</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">2</span>], <span class="ruby-value str">"values[2]"</span>)
80: <span class="ruby-keyword kw">end</span></pre>
|
293
321
|
</div>
|
294
322
|
</div>
|
295
323
|
<div class='method public-instance' id='method-M000097'>
|
@@ -302,7 +330,7 @@
|
|
302
330
|
<a class='source-toggle' href='#' onclick="toggleCode('M000097-source'); return false">
|
303
331
|
[show source]
|
304
332
|
</a>
|
305
|
-
<pre id='M000097-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
333
|
+
<pre id='M000097-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 113</span>
113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_tag_with_one_attribute</span>
114: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 attr1=99"</span>)
115: <span class="ruby-identifier">assert_not_nil</span>(<span class="ruby-identifier">tag1</span>, <span class="ruby-value str">"tag1"</span>)
116: 
117: <span class="ruby-identifier">values</span> = <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>
118: <span class="ruby-identifier">assert</span>(<span class="ruby-identifier">values</span>.<span class="ruby-identifier">empty?</span>, <span class="ruby-value str">"value count"</span>)
119: 
120: <span class="ruby-identifier">attributes</span> = <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attributes</span>
121: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">size</span>, <span class="ruby-value str">"attribute count"</span>)
122: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">99</span>, <span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"attr1"</span>], <span class="ruby-value str">"attr1"</span>)
123: 
124: <span class="ruby-comment cmt"># check the parsing with line continuations</span>
125: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1\\\nattr1=\\\n99"</span>)
126: <span class="ruby-identifier">assert_not_nil</span>(<span class="ruby-identifier">tag1</span>, <span class="ruby-value str">"tag1"</span>)
127: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">99</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"attr1"</span>), <span class="ruby-value str">"attr1"</span>)
128: <span class="ruby-keyword kw">end</span></pre>
|
306
334
|
</div>
|
307
335
|
</div>
|
308
336
|
<div class='method public-instance' id='method-M000092'>
|
@@ -315,7 +343,7 @@
|
|
315
343
|
<a class='source-toggle' href='#' onclick="toggleCode('M000092-source'); return false">
|
316
344
|
[show source]
|
317
345
|
</a>
|
318
|
-
<pre id='M000092-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
346
|
+
<pre id='M000092-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 59</span>
59: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_tag_with_one_value</span>
60: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 1"</span>)
61: <span class="ruby-identifier">assert_not_nil</span>(<span class="ruby-identifier">tag1</span>, <span class="ruby-value str">"tag1"</span>)
62: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">value</span>, <span class="ruby-value str">"value"</span>)
63: <span class="ruby-keyword kw">end</span></pre>
|
319
347
|
</div>
|
320
348
|
</div>
|
321
349
|
<div class='method public-instance' id='method-M000093'>
|
@@ -328,7 +356,7 @@
|
|
328
356
|
<a class='source-toggle' href='#' onclick="toggleCode('M000093-source'); return false">
|
329
357
|
[show source]
|
330
358
|
</a>
|
331
|
-
<pre id='M000093-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
359
|
+
<pre id='M000093-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 65</span>
65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_tag_with_two_values</span>
66: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(<span class="ruby-value str">"tag1 1 \"abc\""</span>)
67: <span class="ruby-identifier">assert_not_nil</span>(<span class="ruby-identifier">tag1</span>, <span class="ruby-value str">"tag1"</span>)
68: <span class="ruby-identifier">values</span> = <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">values</span>
69: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">0</span>], <span class="ruby-value str">"1st value"</span>)
70: <span class="ruby-identifier">assert_equal</span>(<span class="ruby-value str">"abc"</span>, <span class="ruby-identifier">values</span>[<span class="ruby-value">1</span>], <span class="ruby-value str">"2nd value"</span>)
71: <span class="ruby-keyword kw">end</span></pre>
|
332
360
|
</div>
|
333
361
|
</div>
|
334
362
|
<div class='method public-instance' id='method-M000100'>
|
@@ -341,7 +369,7 @@
|
|
341
369
|
<a class='source-toggle' href='#' onclick="toggleCode('M000100-source'); return false">
|
342
370
|
[show source]
|
343
371
|
</a>
|
344
|
-
<pre id='M000100-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line
|
372
|
+
<pre id='M000100-source'> <span class="ruby-comment cmt"># File test/sdl4r/parser_test.rb, line 147</span>
147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_time</span>
148: <span class="ruby-identifier">tag1</span> = <span class="ruby-identifier">parse_one_tag1</span>(
149: <span class="ruby-value str">"tag1 time=12:23:56 short_time=00:12:32.423"</span> <span class="ruby-operator">+</span>
150: <span class="ruby-value str">" long_time=30d:15:23:04.023 before=-00:02:30"</span>)
151: <span class="ruby-identifier">assert_equal</span>(
152: <span class="ruby-constant">SdlTimeSpan</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>, <span class="ruby-value">12</span>, <span class="ruby-value">23</span>, <span class="ruby-value">56</span>),
153: <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"time"</span>),
154: <span class="ruby-value str">"time"</span>);
155: <span class="ruby-identifier">assert_equal</span>(
156: <span class="ruby-constant">SdlTimeSpan</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">12</span>, <span class="ruby-value">32</span>, <span class="ruby-value">423</span>),
157: <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"short_time"</span>),
158: <span class="ruby-value str">"short_time"</span>);
159: <span class="ruby-identifier">assert_equal</span>(
160: <span class="ruby-constant">SdlTimeSpan</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">30</span>, <span class="ruby-value">15</span>, <span class="ruby-value">23</span>, <span class="ruby-value">4</span>, <span class="ruby-value">23</span>),
161: <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"long_time"</span>),
162: <span class="ruby-value str">"long_time"</span>);
163: <span class="ruby-identifier">assert_equal</span>(
164: <span class="ruby-constant">SdlTimeSpan</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">-2</span>, <span class="ruby-value">-30</span>),
165: <span class="ruby-identifier">tag1</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-value str">"before"</span>),
166: <span class="ruby-value str">"before"</span>);
167: <span class="ruby-keyword kw">end</span></pre>
|
345
373
|
</div>
|
346
374
|
</div>
|
347
375
|
</div>
|