[x] Add more unit tests [x] Attribute tests [x] Date tests [x] Date + time test [x] Time zone tests [x] Number literal tests [x] Strings literals (especially with line continuations) [x] Sub tags tests [x] "null" value test [x] Comment tests [x] Bad syntax tests [ ] Test write (unit tests) [x] Dates [ ] Numbers [A] Use YARD in order to generate documentation ? ==> alternatively, I tried to generate some RDoc templates but none worked in Rake... [ ] BUG: the line number is too high by 1 (the column is correct). [/] Fix the differences between test_basic_types.sdl and what is generated from the parsed structure [x] chars [x] longs [x] doubles [x] decimals [x] booleans [x] null [x] dates [x] times [x] negative times [x] datetimes [/] zone codes ==> Time only works in UTC, which means that the original zone code is lost. ==> DateTime doesn't give the zone code but only the offset. [ ] Use TzTime? Use a custom object that knows whether a time zone was specified? ==> http://tztime.rubyforge.org/ ==> along with TzInfo: http://tzinfo.rubyforge.org/ [ ] See how Ruby floats relate to Java floats and doubles. [ ] Add tests for the SDL class [ ] Allow unicode characters in identifiers. [ ] FUTURE: It might be useful to allow people to replace the standard types by their own. This could be useful for dates or numbers, for instance. [ ] FUTURE: Consider being able to read text files that are not UTF-8(?) [ ] BUG: the report on the line no in errors is off by 1 (at least in some cases) [ ] Tag.hash: the implementation is not very efficient. ==> Difficult to make better and still simple ==> Maybe possible when it's frozen. [ ] FUTURE: xpath, ypath ==> sdlpath(?) [ ] FUTURE: evenemential parsing(?) [ ] FUTURE: add a way to insert a tag after or before another or at some index(?) [ ] FUTURE: allow some way of generating YAML(?) [ ] FUTURE: allow to turn a YAML structure into a SDL one(?) [ ] BUG: "rake package" tries to archive the contents twice: once with the command that I configure in Rakefile, once with a zip command that can't work on my machine (zip is not installed). Why? At least, the first archive is created and seems correct. [A] FUTURE: Would we need a "write" method in SDL4R? ==> Na, there's already Tag.write(), I guess. [N] Never call a class "Test" => it can easily conflict with the "Test" module of Test::Unit and then, it becomes quite difficult to understand why. [x] What prevents from doing the following? tag.values << IO.new("toto.txt") ==> It doesn't break the behavior as long as the value type is OK. Even if it is not allowed, it still is not too bad. [x] Look at the returned values of method who do not have their return values documented e.g. Tag.add_value ==> Minor change: we return nil for the methods were nothing was really returned explicitely (for the time being). [x] If there is any success, maybe create/recreate the Rubyforge site for the support. [ ] Should we allow to create a Tag without a name (== "content") for anonymous Tags? [x] Add latest doc access to RubyForge: ==> Rake task? [ ] ONWAIT: Implement the [] operator in order to access attributes: ["attr"] <=> attribute("attr") ["ns:attr"] <=> attribute("ns", "attr") (should we allow this?) ["ns", "attr"] <=> attribute("ns", "attr") Should we allow attribute("ns:attr")? ==> Mmmm, but it could also mean "get child with that name". Let's wait. [x] IDEA: marshaller? easy object <=> SDL read/write? SEE SPECS @ Ikayzo: http://www.ikayzo.org/confluence/display/SDL/Draft+-+Serialization+with+SDL [ ] Check the coverage and make the tests better. ==> Might be better to use some other tool than [ ] IDEA: add an option to the XML export allowing to write anonymous nodes as XML tag content? [ ] IDEA: add an option to the XML export allowing to export without formatting? [x] BUG: line continuation is not handled properly (skipping chars etc). [ ] BUG: the rake task 'gen_rubyforge' doesn't work under 1.9 (only 1.8.7) ==> when Hanna is not installed the CHANGELOG HTML file must have a different name. [ ] Look into performances, compared to YAML or XML parsers [ ] Future: SDL + ERB to have dynamic config templates see http://github.com/binarylogic/settingslogic [x] Future: object dump/load as YAML does SEE SPECS @ Ikayzo: http://www.ikayzo.org/confluence/display/SDL/Draft+-+Serialization+with+SDL - add to_sdl(4r) to Object - for each object: - if it is an array => export values - what if one of the values is a basic object? scan once first? series of anonymous tags with one value? - if it is a hash? - if String, dates etc => values - otherwise create subtags - for each variable - create an attribute if simple value - create a subtag otherwise - what about fields that we don't want to serialize? - what about references? We would need something like: product _oid="&243" { producer _oid="*189" } or product &243 price=345.99 { producer *189 code "123732u98r456" } - use Class.allocate() to have a blank object on deserialization. [ ] Have to_string implement options [x] Put the docs online [ ] Document Rakefile and dependencies [x] BUG: in Ruby 1.9.2 :29:in `require': no such file to load -- test/sdl4r/../../lib /sdl4r/tag (LoadError) from :29:in `require' from test/sdl4r/parser_test.rb:27:in `' from test/sdl4r/parser_test.rb:22:in `' from C:/Ruby192/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `load' from C:/Ruby192/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `block in
' from C:/Ruby192/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `each' from C:/Ruby192/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `
' ==> This is a problem triggered by the work-around I used in order to run tests individually in Netbeans. Removed the work-around. [x] Generate the static site with something like Jekyll (http://wiki.github.com/mojombo/jekyll) ==> Done with Nanoc [x] Add a page for the SyntaxHighlighter Brush (plus a test page). [x] Add a contact page or paragraph [x] Add a readme page (generated from the rdoc readme) ==> We link to the RDoc for the time being. ==================================================================================================== [x] Add a line about the support of of 1.9 in README (1.9.1 and 1.9.2) [ ] Get the version from some common (Rakefile?) place in Nanoc [ ] Add a modification date to site pages? [x] Clean up the Rakefile and see whether that Rubyforge upload task is necessary. ==> Easier to upload the site manually: I removed the code. [ ] Future (not necessarily for Ruby): SDL parser ==> SAX [ ] Optimization: cache strings in order not to duplicate them (especially tag names?) [x] Add a constant for "content". ==> ANONYMOUS_TAG_NAME ==> Also added ROOT_TAG_NAME [x] Fixed missing Parser.parse_error() error. [ ] BUG: this is parsed vegetable { } while this is not vegetable {} ==> It seems this is not supported by the Java parser. Is it invalid/valid syntax? ==> It will be in the next version of SDL. [x] BUG: '$' is a valid identifier character and it is not accepted. ==================================================================================================== [x] Check that if you write 2 values, a date and a timespan, you get both normally when you load. ==> Considered as a bug in the language spec by Dan. [x] BUG: negative years seem not to be supported in dates (somehow mistaken for integers: -4712/01/01) [ ] Allow Symbols as attribute/child names