sdl4r 0.9.1 → 0.9.2
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 +0 -0
- data/LICENSE +502 -0
- data/README +296 -1
- data/Rakefile +7 -4
- data/TODO.txt +33 -21
- data/doc/created.rid +1 -0
- data/doc/fr_class_index.html +36 -0
- data/doc/fr_file_index.html +39 -0
- data/doc/fr_method_index.html +141 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/lib/sdl4r/parser.rb +1 -30
- data/lib/sdl4r/parser/reader.rb +175 -0
- data/lib/sdl4r/parser/time_span_with_zone.rb +52 -0
- data/lib/sdl4r/parser/token.rb +133 -0
- data/lib/sdl4r/parser/tokenizer.rb +506 -0
- data/lib/sdl4r/sdl.rb +126 -76
- data/lib/sdl4r/tag.rb +108 -54
- data/test/sdl4r/parser_test.rb +90 -19
- data/test/sdl4r/test.rb +93 -101
- data/test/sdl4r/test_basic_types.sdl +3 -3
- metadata +49 -37
- data/lib/scratchpad.rb +0 -49
- data/lib/sdl4r/reader.rb +0 -171
- data/lib/sdl4r/token.rb +0 -129
- data/lib/sdl4r/tokenizer.rb +0 -501
data/README
CHANGED
@@ -1,3 +1,298 @@
|
|
1
|
-
==
|
1
|
+
== SDL (Simple Declarative Language)
|
2
2
|
|
3
|
+
SDL documents are made up of Tags. A Tag contains
|
3
4
|
|
5
|
+
* a name (if not present, the name "content" is used)
|
6
|
+
* a namespace (optional)
|
7
|
+
* 0 or more values (optional)
|
8
|
+
* 0 or more attributes (optional)
|
9
|
+
* 0 or more children (optional)
|
10
|
+
|
11
|
+
For the SDL code:
|
12
|
+
|
13
|
+
size 4
|
14
|
+
smoker false
|
15
|
+
|
16
|
+
|
17
|
+
Assuming this code is in a file called <tt>values.sdl</tt>, the values can be read
|
18
|
+
using the following code (ignoring exceptions):
|
19
|
+
|
20
|
+
root = Tag.new("root").read(Pathname.new("values.sdl"))
|
21
|
+
size = root.child("size").value
|
22
|
+
smoker = root.child("smoker").value
|
23
|
+
|
24
|
+
A tag is basically a data structure with a list of values, a map of
|
25
|
+
attributes, and (if it has a body) child tags. In the example above, the
|
26
|
+
<tt>values.sdl</tt> file is read into a tag called "root". It has two children
|
27
|
+
(tags) called "size" and "smoker". Both these children have one value, no
|
28
|
+
attributes, and no bodies.
|
29
|
+
|
30
|
+
SDL is often used for simple key-value mappings. To simplify things Tag
|
31
|
+
has the methods getValue and setValue which operate on the first element in
|
32
|
+
the values list. Also notice SDL understands types which are determined
|
33
|
+
using type inference.
|
34
|
+
|
35
|
+
The example above used the simple format common in property files:
|
36
|
+
|
37
|
+
name value
|
38
|
+
|
39
|
+
The full SDL tag format is:
|
40
|
+
|
41
|
+
namespace:name value_list attribute_list {
|
42
|
+
children_tags
|
43
|
+
}
|
44
|
+
|
45
|
+
where value_list is zero or more space separated SDL literals and
|
46
|
+
attribute_list is zero or more space separated <tt>(namespace:)key=value</tt> pairs.
|
47
|
+
The name, namespace, and keys are SDL identifiers. Values are SDL literals.
|
48
|
+
Namespace is optional for both tag names and attributes. Tag bodies are also
|
49
|
+
optional. SDL identifiers begin with a unicode letter or an underscore (_)
|
50
|
+
followed by zero or more unicode letters, numbers, underscores (_),
|
51
|
+
dashes (-) and periods (.).
|
52
|
+
|
53
|
+
== Anonymous Tags
|
54
|
+
|
55
|
+
SDL also supports anonymous tags which are assigned the name "content".
|
56
|
+
An anonymous tag starts with a literal and is followed by zero or more
|
57
|
+
additional literals and zero or more attributes. The examples section below
|
58
|
+
demonstrates the use of anonymous tags.
|
59
|
+
|
60
|
+
Tags without bodies are terminated by a new line character (\n) and may be
|
61
|
+
continue onto the next line by placing a backslash (\) at the end of the
|
62
|
+
line. Tags may be nested to an arbitrary depth. SDL ignores all other white
|
63
|
+
space characters between tokens. Although nested blocks are indented by
|
64
|
+
convention, tabs have no significance in the language.
|
65
|
+
|
66
|
+
== String literals
|
67
|
+
|
68
|
+
There are two ways to write String literals.
|
69
|
+
|
70
|
+
=== Starting and ending with double quotes (")
|
71
|
+
|
72
|
+
Double quotes, backslash characters (\), and new lines (\n) within this type of String literal
|
73
|
+
must be escaped like so:
|
74
|
+
|
75
|
+
file "C:\\folder\\file.txt"
|
76
|
+
say "I said \"something\""
|
77
|
+
|
78
|
+
This type of String literal can be continued on the next line by placing a
|
79
|
+
backslash (\) at the end of the line like so:
|
80
|
+
|
81
|
+
line "this is a \
|
82
|
+
long string of text"
|
83
|
+
|
84
|
+
White space before the first character in the second line will be ignored.
|
85
|
+
|
86
|
+
=== Starting and ending with a backquote (`)
|
87
|
+
|
88
|
+
This type of string literal
|
89
|
+
can only be ended with a second backquote (`). It is not necessary (or
|
90
|
+
possible) to escape any type of character within a backquote string
|
91
|
+
literal. This type of literal can also span lines. All white spaces are
|
92
|
+
preserved including new lines.
|
93
|
+
|
94
|
+
Examples:
|
95
|
+
|
96
|
+
file `C:\folder\file.txt`
|
97
|
+
say `I said "something"`
|
98
|
+
regex `\w+\.suite\(\)`
|
99
|
+
long_line `This is
|
100
|
+
a long line
|
101
|
+
fee fi fo fum`
|
102
|
+
|
103
|
+
Note: SDL interprets new lines in `` String literals as a single new line
|
104
|
+
character (\n) regarless of the platform.
|
105
|
+
|
106
|
+
== Binary literals
|
107
|
+
|
108
|
+
Binary literals use base64 characters enclosed in square brackets ([]).
|
109
|
+
The binary literal type can also span lines. White space is ignored.
|
110
|
+
|
111
|
+
Examples:
|
112
|
+
key [sdf789GSfsb2+3324sf2] name="my key"
|
113
|
+
image [
|
114
|
+
R3df789GSfsb2edfSFSDF
|
115
|
+
uikuikk2349GSfsb2edfS
|
116
|
+
vFSDFR3df789GSfsb2edf
|
117
|
+
]
|
118
|
+
upload from="ikayzo.com" data=[
|
119
|
+
R3df789GSfsb2edfSFSDF
|
120
|
+
uikuikk2349GSfsb2edfS
|
121
|
+
vFSDFR3df789GSfsb2edf
|
122
|
+
]
|
123
|
+
|
124
|
+
== Date and Time Literals
|
125
|
+
|
126
|
+
SDL supports date, time span, and date/time literals. Date and Date/Time
|
127
|
+
literals use a 24 hour clock (0-23). If a timezone is not specified, the
|
128
|
+
default locale's timezone will be used.
|
129
|
+
|
130
|
+
Examples:
|
131
|
+
|
132
|
+
* create a tag called "date" with a date value of Dec 5, 2005
|
133
|
+
date 2005/12/05
|
134
|
+
|
135
|
+
* various time span literals
|
136
|
+
hours 03:00:00
|
137
|
+
minutes 00:12:00
|
138
|
+
seconds 00:00:42
|
139
|
+
short_time 00:12:32.423 # 12 minutes, 32 seconds, 423 milliseconds
|
140
|
+
long_time 30d:15:23:04.023 # 30 days, 15 hours, 23 mins, 4 secs, 23 millis
|
141
|
+
before -00:02:30 # 2 hours and 30 minutes ago
|
142
|
+
|
143
|
+
* a date time literal
|
144
|
+
in_japan 2005/12/05 14:12:23.345-JST
|
145
|
+
|
146
|
+
== Literal Types
|
147
|
+
|
148
|
+
SDL 1.0 has thirteen literal types (parenthesis indicate optional components)
|
149
|
+
|
150
|
+
1. string (unicode) - examples: <tt>"hello"</tt> or <tt>`aloha`</tt>
|
151
|
+
2. character (unicode) - example: <tt>'/'</tt>
|
152
|
+
Note: \uXXXX style unicode escapes are not supported (or needed because sdl files are UTF8)
|
153
|
+
3. integer (32 bits signed) - example: <tt>123</tt>
|
154
|
+
4. long integer (64 bits signed) - examples: <tt>123L</tt> or <tt>123l</tt>
|
155
|
+
5. float (32 bits signed) - examples <tt>123.43F</tt> <tt>123.43f</tt>
|
156
|
+
6. double float (64 bits signed) - example: <tt>123.43</tt> or <tt>123.43d</tt> or <tt>123.43D</tt>
|
157
|
+
7. decimal (128+ bits signed) - example: <tt>123.44BD</tt> or <tt>123.44bd</tt>
|
158
|
+
8. boolean - examples: <tt>true</tt> or <tt>false</tt> or <tt>on</tt> or <tt>off</tt>
|
159
|
+
9. date yyyy/mm/dd - example <tt>2005/12/05</tt>
|
160
|
+
10. date time yyyy/mm/dd hh:mm(:ss)(.xxx)(-ZONE)
|
161
|
+
example - <tt>2005/12/05 05:21:23.532-JST</tt>
|
162
|
+
notes: uses a 24 hour clock (0-23), only hours and minutes are mandatory
|
163
|
+
11. time span using the format (d:)hh:mm:ss(.xxx)
|
164
|
+
notes: if the day component is included it must be suffixed with a lower case 'd'
|
165
|
+
examples
|
166
|
+
12:14:42 # (12 hours, 14 minutes, 42 seconds)
|
167
|
+
00:09:12 # (9 minutes, 12 seconds)
|
168
|
+
00:00:01.023 # (1 second, 23 milliseconds)
|
169
|
+
23d:05:21:23.532 # (23 days, 5 hours, 21 minutes, 23 seconds, 532 milliseconds)
|
170
|
+
12. binary [base64] example - <tt>[sdf789GSfsb2+3324sf2]</tt>
|
171
|
+
13. <tt>null</tt>
|
172
|
+
|
173
|
+
|
174
|
+
Timezones must be specified using a valid time zone ID (ex. America/Los_Angeles), three letter
|
175
|
+
abbreviation (ex. HST), or GMT(+/-)hh(:mm) formatted custom timezone (ex. GMT+02 or GMT+02:30)
|
176
|
+
|
177
|
+
These types are designed to be portable across Java, .NET, and other popular platforms.
|
178
|
+
|
179
|
+
== SDL Comments
|
180
|
+
|
181
|
+
SDL supports four comment types.
|
182
|
+
|
183
|
+
1. // single line comments identicle to those used in Java, C, etc. // style
|
184
|
+
comments can occur anywhere in a line. All text after // up to the new line
|
185
|
+
will be ignored.
|
186
|
+
2. # property style comments. They work the same way as //
|
187
|
+
3. -- separator comments useful for visually dividing content. They work the same way as //
|
188
|
+
4. Slash star (/*) style multiline comments. These begin with a slash
|
189
|
+
star and end with a star slash. Everything in between is ignored.
|
190
|
+
|
191
|
+
|
192
|
+
== Example
|
193
|
+
|
194
|
+
An example SDL file:
|
195
|
+
|
196
|
+
# a tag having only a name
|
197
|
+
my_tag
|
198
|
+
|
199
|
+
# three tags acting as name value pairs
|
200
|
+
first_name "Akiko"
|
201
|
+
last_name "Johnson"
|
202
|
+
height 68
|
203
|
+
|
204
|
+
# a tag with a value list
|
205
|
+
person "Akiko" "Johnson" 68
|
206
|
+
|
207
|
+
# a tag with attributes
|
208
|
+
person first_name="Akiko" last_name="Johnson" height=68
|
209
|
+
|
210
|
+
# a tag with values and attributes
|
211
|
+
person "Akiko" "Johnson" height=60
|
212
|
+
|
213
|
+
# a tag with attributes using namespaces
|
214
|
+
person name:first-name="Akiko" name:last-name="Johnson"
|
215
|
+
|
216
|
+
# a tag with values, attributes, namespaces, and children
|
217
|
+
my_namespace:person "Akiko" "Johnson" dimensions:height=68 {
|
218
|
+
son "Nouhiro" "Johnson"
|
219
|
+
daughter "Sabrina" "Johnson" location="Italy" {
|
220
|
+
hobbies "swimming" "surfing"
|
221
|
+
languages "English" "Italian"
|
222
|
+
smoker false
|
223
|
+
}
|
224
|
+
}
|
225
|
+
|
226
|
+
------------------------------------------------------------------
|
227
|
+
// (notice the separator style comment above...)
|
228
|
+
|
229
|
+
# a log entry
|
230
|
+
# note - this tag has two values (date_time and string) and an
|
231
|
+
# attribute (error)
|
232
|
+
entry 2005/11/23 10:14:23.253-GMT "Something bad happened" error=true
|
233
|
+
|
234
|
+
# a long line
|
235
|
+
mylist "something" "another" true "shoe" 2002/12/13 "rock" \
|
236
|
+
"morestuff" "sink" "penny" 12:15:23.425
|
237
|
+
|
238
|
+
# a long string
|
239
|
+
text "this is a long rambling line of text with a continuation \
|
240
|
+
and it keeps going and going..."
|
241
|
+
|
242
|
+
# anonymous tag examples
|
243
|
+
|
244
|
+
files {
|
245
|
+
"/folder1/file.txt"
|
246
|
+
"/file2.txt"
|
247
|
+
}
|
248
|
+
|
249
|
+
# To retrieve the files as a list of strings
|
250
|
+
#
|
251
|
+
# List files = tag.getChild("files").getChildrenValues("content");
|
252
|
+
#
|
253
|
+
# We us the name "content" because the files tag has two children, each of
|
254
|
+
# which are anonymous tags (values with no name.) These tags are assigned
|
255
|
+
# the name "content"
|
256
|
+
|
257
|
+
matrix {
|
258
|
+
1 2 3
|
259
|
+
4 5 6
|
260
|
+
}
|
261
|
+
|
262
|
+
# To retrieve the values from the matrix (as a list of lists)
|
263
|
+
#
|
264
|
+
# List rows = tag.getChild("matrix").getChildrenValues("content");
|
265
|
+
|
266
|
+
|
267
|
+
Example of getting the "location" attribute from the "daughter" tag
|
268
|
+
above (ignoring exceptions)
|
269
|
+
|
270
|
+
root = SDL4R.read(Pathname.new("myfile.sdl"))
|
271
|
+
daughter = root.child("daughter", true) // recursive search
|
272
|
+
location = daughter.attribute("location")
|
273
|
+
|
274
|
+
SDL is normally stored in a file with the .sdl extension. These files
|
275
|
+
should always be encoded using UTF8. SDL fully supports unicode in
|
276
|
+
identifiers and literals.
|
277
|
+
|
278
|
+
== Ruby and SDL types
|
279
|
+
|
280
|
+
The following list gives what types are used in Ruby in order to represent SDL types.
|
281
|
+
|
282
|
+
*SDL*:: *Ruby*
|
283
|
+
unicode string:: String
|
284
|
+
unicode character:: single-character String
|
285
|
+
integer (32 bits signed):: Integer (Fixnum or Bignum)
|
286
|
+
long integer (64 bits signed):: Integer (Fixnum or Bignum)
|
287
|
+
float (32 bits signed):: Float
|
288
|
+
double float (64 bits signed):: Float
|
289
|
+
decimal (128+ bits signed):: Flt::DecNum (if installed; see http://flt.rubyforge.org/), core numeric classes otherwise
|
290
|
+
boolean:: true (TrueClass) and false (FalseClass)
|
291
|
+
date (day):: Date
|
292
|
+
date time:: DateTime
|
293
|
+
time span:: SdlTimeSpan
|
294
|
+
binary:: SdlBinary (to avoid confusion with simple strings)
|
295
|
+
null:: nil (NilClass)
|
296
|
+
|
297
|
+
TO FIX: the handling of floating numbers in Ruby being different from the Java world, the behavior
|
298
|
+
of SDL4R at limits might not be perfect for the time being.
|
data/Rakefile
CHANGED
@@ -9,14 +9,14 @@ spec = Gem::Specification.new do |s|
|
|
9
9
|
s.platform = Gem::Platform::RUBY
|
10
10
|
s.summary = "Simple Declarative Language for Ruby library"
|
11
11
|
s.name = 'sdl4r'
|
12
|
-
s.version = '0.9.
|
12
|
+
s.version = '0.9.2'
|
13
13
|
s.requirements << 'none'
|
14
14
|
s.require_path = 'lib'
|
15
|
-
s.
|
15
|
+
s.authors = ['Philippe Vosges', 'Daniel Leuck' ]
|
16
16
|
s.email = 'sdl-users@ikayzo.org'
|
17
17
|
s.rubyforge_project = 'sdl4r'
|
18
18
|
s.homepage = 'http://www.ikayzo.org/confluence/display/SDL/Home'
|
19
|
-
s.files = FileList['lib/**/*.rb', 'bin/*', '[A-Z]*', 'test/**/*'].to_a
|
19
|
+
s.files = FileList['lib/sdl4r/**/*.rb', 'bin/*', '[A-Z]*', 'test/**/*', 'doc/*'].to_a
|
20
20
|
s.test_files = FileList[ 'test/**/*test.rb' ].to_a
|
21
21
|
s.description = <<EOF
|
22
22
|
The Simple Declarative Language provides an easy way to describe lists, maps,
|
@@ -33,7 +33,10 @@ Rake::GemPackageTask.new(spec) do |pkg|
|
|
33
33
|
end
|
34
34
|
|
35
35
|
Rake::RDocTask.new do |rd|
|
36
|
-
|
36
|
+
files = ['README', 'LICENSE', 'CHANGELOG',
|
37
|
+
'lib/sdl4r/**/*.rb', 'doc/**/*.rdoc', 'test/*.rb']
|
38
|
+
rd.main = 'README'
|
39
|
+
rd.rdoc_files.include(files)
|
37
40
|
rd.rdoc_dir = "doc"
|
38
41
|
rd.title = "Simple Declarative Language for Ruby"
|
39
42
|
end
|
data/TODO.txt
CHANGED
@@ -27,16 +27,17 @@
|
|
27
27
|
[x] Date + time test
|
28
28
|
[x] Time zone tests
|
29
29
|
[x] Number literal tests
|
30
|
-
[
|
31
|
-
[
|
30
|
+
[x] Strings literals (especially with line continuations)
|
31
|
+
[x] Sub tags tests
|
32
32
|
[x] "null" value test
|
33
33
|
[x] Comment tests
|
34
34
|
[ ] Bad syntax tests
|
35
35
|
[ ] Test write (unit tests)
|
36
36
|
[ ] Dates
|
37
37
|
[ ] Numbers
|
38
|
-
[
|
39
|
-
|
38
|
+
[A] Use YARD in order to generate documentation ?
|
39
|
+
==> alternatively, I tried to generate some RDoc templates but none worked in Rake...
|
40
|
+
[x] In the documentation, present a table giving the returned Ruby type for each SDL type.
|
40
41
|
[A] Change the interface of SdlTimeSpan to look like the interfaces of Date, DateTime or Time
|
41
42
|
==> Really? This is a timespan, not a date.
|
42
43
|
[x] Have SdlTimeSpan implement Comparable
|
@@ -71,47 +72,58 @@
|
|
71
72
|
[ ] See how Ruby floats relate to Java floats and doubles.
|
72
73
|
[ ] Add tests for the SDL class
|
73
74
|
[ ] Allow unicode characters in identifiers.
|
74
|
-
[ ] It would probably be useful to allow people to replace the standard types by their own. This
|
75
|
+
[ ] FUTURE: It would probably be useful to allow people to replace the standard types by their own. This
|
75
76
|
could be useful for dates or numbers, for instance.
|
76
77
|
[N] To install a gem in the Netbeans gems repository, it needs to run as an administrator.
|
77
78
|
Otherwise, it fails silently.
|
78
|
-
[
|
79
|
+
[x] Make it so that the tests pass (with errors or not), when Ftl (DecNum) is not available.
|
79
80
|
[x] Fix the ParserTest test.
|
80
81
|
[x] SDL 1.1: tag1; tag2 "a value"; tag3 name="foo"
|
81
82
|
[x] Create a Tokenizer class
|
82
83
|
[A] Test attributes with/without namespaces
|
83
84
|
==> Guess this is done in test_structures...
|
84
|
-
[ ] Propose to Dan that the top level is considered as a root tag that can't have values but
|
85
|
-
just attributes and sub-tags.
|
86
85
|
[x] Fix Test.test_strings: support for Unicode
|
87
86
|
==> Seems to work.
|
88
|
-
[ ] Consider being able to read text files that are not UTF-8(?)
|
87
|
+
[ ] FUTURE: Consider being able to read text files that are not UTF-8(?)
|
89
88
|
[ ] BUG: the report on the line no in errors is off by 1 (at least in some cases)
|
90
|
-
[
|
89
|
+
[x] Try to move Reader, Tokenizer, etc to the private part of the SDL module
|
91
90
|
==> Doesn't seem to make a difference.
|
91
|
+
==> Moved to the Parser namespace.
|
92
92
|
[x] Factorize "each_child..." methods in Tag and refactor "children(recursive, name)" consequently
|
93
93
|
+ invert "name" and "recursive" in "children()"
|
94
94
|
[ ] Return copies or original arrays in Tag?
|
95
|
-
[
|
95
|
+
[A] BUG: test_tag_write_parse() does not work from the command line (ruby v1.8.7).
|
96
|
+
==> This is normal provided that flt was not installed.
|
96
97
|
[ ] Tag.to_string(): break up long lines using the backslash
|
97
98
|
[ ] Tag.hash: the implementation is not very efficient.
|
98
|
-
[
|
99
|
+
[x] Implement reading from a URL(?) Other sources idiomatic in Ruby?
|
100
|
+
==> Strings, URIs, Pathnames, IOs
|
99
101
|
[ ] See the XML and YAML APIs to find enhancements.
|
100
102
|
[ ] Check the XML functionalities of Tag.
|
101
103
|
[ ] Add tests for Tag
|
102
104
|
[ ] Maybe some methods in the SDL module are not so useful to the general user: make them protected?
|
103
105
|
[ ] FUTURE: xpath, ypath ==> sdlpath(?)
|
104
106
|
[ ] FUTURE: evenemential parsing(?)
|
105
|
-
[
|
107
|
+
[x] Move Tokenizer, Reader, etc into the Parser module/class or prefix by Sdl
|
108
|
+
==> moved to sdl4r/parser
|
106
109
|
[ ] FUTURE: add a way to insert a tag after or before another(?)
|
107
110
|
[ ] FUTURE: allow some way of generating YAML(?)
|
108
111
|
[ ] FUTURE: allow to turn a YAML structure into a SDL one(?)
|
109
|
-
[
|
110
|
-
[
|
112
|
+
[x] Make a Gem
|
113
|
+
[x] Implement the convenience method of SDL (value(), list(), map())
|
111
114
|
[x] Move the test files to a sdl4r subdir
|
112
|
-
[
|
113
|
-
[
|
114
|
-
[
|
115
|
-
[
|
116
|
-
[
|
117
|
-
[
|
115
|
+
[x] 1.2: Ensure that there is a SDL.read() that returns a Tag
|
116
|
+
[x] 1.2: hasChild(), hasChildren() methods
|
117
|
+
[x] 1.2: getChildMap(), getChildStringMap() methods
|
118
|
+
[x] 1.3: periods in identifiers
|
119
|
+
[A] Create a History.txt file ==> See CHANGELOG
|
120
|
+
[x] Setup the Rubyforge website
|
121
|
+
[A] See how both Subversion repositories can be handled (is it necessary?)
|
122
|
+
==> No need for the Rubyforge project anymore, it seems (we use Rubygem and gemcutter directly)
|
123
|
+
[x] Add info to README
|
124
|
+
[x] Add LICENSE & CHANGELOG files
|
125
|
+
[x] State in the README that without Flt, all the tests can't run.
|
126
|
+
==> it's stated explicitely in the test
|
127
|
+
[w] Make it so that each test appears separately in test.rb (if possible)
|
128
|
+
[ ] Have the use of Flt be optional.
|
129
|
+
[ ] Turn Rationals to Floats in coerc_or_fail()?
|
data/doc/created.rid
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Sat, 31 Jul 2010 01:26:33 +0900
|
@@ -0,0 +1,36 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Classes
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Classes</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Classes</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
<a href="classes/SDL4R.html">SDL4R</a><br />
|
24
|
+
<a href="classes/SDL4R/Parser.html">SDL4R::Parser</a><br />
|
25
|
+
<a href="classes/SDL4R/Parser/Reader.html">SDL4R::Parser::Reader</a><br />
|
26
|
+
<a href="classes/SDL4R/Parser/TimeSpanWithZone.html">SDL4R::Parser::TimeSpanWithZone</a><br />
|
27
|
+
<a href="classes/SDL4R/Parser/Token.html">SDL4R::Parser::Token</a><br />
|
28
|
+
<a href="classes/SDL4R/Parser/Tokenizer.html">SDL4R::Parser::Tokenizer</a><br />
|
29
|
+
<a href="classes/SDL4R/SdlBinary.html">SDL4R::SdlBinary</a><br />
|
30
|
+
<a href="classes/SDL4R/SdlParseError.html">SDL4R::SdlParseError</a><br />
|
31
|
+
<a href="classes/SDL4R/SdlTimeSpan.html">SDL4R::SdlTimeSpan</a><br />
|
32
|
+
<a href="classes/SDL4R/Tag.html">SDL4R::Tag</a><br />
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
</body>
|
36
|
+
</html>
|