sdl4r 0.9.7 → 0.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|