TODO in sdl4r-0.9.7 vs TODO in sdl4r-0.9.8

- old
+ new

@@ -1,20 +1,18 @@ -[x] Is Base64 really compatible with the format defined in the Java version ? - ==> Seems so after having implemented more of the standard tests. -[ ] Add more unit tests +[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 - [ ] Bad syntax tests + [x] Bad syntax tests [ ] Test write (unit tests) - [ ] Dates + [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 @@ -37,76 +35,118 @@ [ ] 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. -[N] To install a gem in the Netbeans gems repository, it needs to run as an administrator. - Otherwise, it fails silently. [ ] 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) -[x] Return copies or original arrays in Tag? - ==> we return the implementation Arrays or Hashes (or whatever) for efficiency. - However, we ask the users not to assume anything as we might protect the returned objects in - the future. [ ] 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(?) +[ ] 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. -[ ] FUTURE: Would we need a "write" method in SDL4R? -[x] Add tests and release a RC or beta version -[x] Make the methods of Tag that take a block have a better yield doc/completion - ==> I added :yields: RDoc directives, which doesn't look like it's helping but I guess that's - all I can do for now. +[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. -[ ] Input relevant URLs on http://rubygems.org [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] It would be cool to be able to write this: - - Tag.new "toto" do |tag| - tag << 123 - end - - ==> We can detect whether there is an argument or not. - -Note that instance_eval() doesn't allow to pass parameters right now. -[ ] Add latest doc access to RubyForge: +[x] Add latest doc access to RubyForge: ==> Rake task? -[x] Is it right to translate the SDL - attr1=null - into the XML - attr1="null" - ? - Should we remove the attribute altogether? Check the Java version => same in Java - ==> Maybe provide an options Hash in to_xml_string(): - :uri_by_namespace => {...} (breaks the old interface) - :hide_null_attributes => true|false -[x] Where we accept Arrays (operator <<, for instance), let's accept Enumerable or something like - that. -[ ] Implement the [] operator in order to access attributes: +[ ] 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. [ ] IDEA: marshaller? easy object <=> SDL read/write? [ ] 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) +[ ] 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 +[ ] Future: object dump/load as YAML does + - 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 +<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- test/sdl4r/../../lib +/sdl4r/tag (LoadError) + from <internal:lib/rubygems/custom_require>:29:in `require' + from test/sdl4r/parser_test.rb:27:in `<module:SDL4R>' + from test/sdl4r/parser_test.rb:22:in `<top (required)>' + 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 <main>' + 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 `<main>' + ==> 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. \ No newline at end of file