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