-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
42 lines (37 loc) · 1.96 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
= ToDo list for lingo
(most important first)
== General considerations
* New code *should* meet the guidelines outlined in the RubyStyleGuide
<http://www.rubygarden.org/Ruby/page/show/RubyStyleGuide>, existing code
will be adjusted along the way.
* New comments and documentation and stuff *should* be in English, existing
texts will be translated as time allows. Use Ri18n or Ruby-GetText for the
UI (to not loose existing translations).
== Specific features
* Reorganize file and module structure (directories: bin/, config/, dict/,
lib/{lingo,tasks}; Lingo namespace).
* Refactor Rakefile (lib/tasks/).
* Update some older documentation (particularly, the README).
* Package lingo as gem, allowing it to be installed system-wide, with user
documents, dictionaries and configuration files separate from system files
and dictionaries. (Location for user configuration and dictionaries, maybe:
~/.lingo)
* Use OptionParser (optparse) or similar for command-line processing instead
of custom-made routines.
* Allow for handling of documents in various encodings, not just the one the
dictionaries are encoded in.
* Provide automatic encoding detection.
* Provide automatic language detection (as fine-grained as possible).
* Make lingo run faster!? (benchmark - profile - optimize)
* Replace SDBM by DBM (more platform-independent, no 1k limit on record size);
maybe QDBM/Tokyo Cabinet or even CDB for faster access.
* In-memory (volatile) vs. on-disk (persistent) dictionaries. It should be
possible to simply use the Lingo API without caring about dictionary storage.
* That being said, provide an easy-to-use Lingo API -- just 'require "lingo"'
and go for it!
* In addition to that, provide sensible string extensions: String#tokenize,
String#lemmatize, ...
* Provide a DSL for configuration -- in addition to, or instead of, the current
YAML format.
* Make sure the Crypter is sufficiently secure.
* Use RSpec for testing.