File: TODO

package info (click to toggle)
libbadger-perl 0.16-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,400 kB
  • sloc: perl: 11,004; makefile: 9
file content (184 lines) | stat: -rw-r--r-- 4,781 bytes parent folder | download
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
Badger::Class
-------------

* Also think about different debug flags, e.g. DEBUG_THIS, DEBUG_THAT
  UPDATE: Badger::Debug now does this - just need to hook class in

* make debug hook work better: allow import of other items, e.g.
  debug => ':dump'.  Also generate DEBUG constant using any existing
  value of $DEBUG.
  
* AUTOLOAD method to delegate to real class if possible?

* add 'hook' subroutine attribute 

* add a way for B::C subclasses to register hooks that automatically
  get called on import, e.g. for B::Factory::Class to push base()

* Remove class($class, $target) second argument in export hooks
  because UBER should now handle that - needs testing
  UPDATE - no, I think it's still required to make The Right Thing happen.

* Make CLASS static.

* Change message() to snippet()
  NOTE - already changed Badger::Base XXX_msg() method to explicitly 
  package-scope message() to Badger::Base so that problem is mitigated.
  A subclass can now define a message() method and it will still Just Work[tm]


Badger::Codec
--------------

* encoded()/decoded() methods (e.g. for utf8)

* update docs to clarify the fact that utf8, etc., are available as named
  codecs via Encode/Encoding modules.


Badger::Config
--------------

* Just a basic implementation at moment.  Merge in TT3 config, AppConfig
  and other stuff.


Badger::Class::Config
--------------
  
* Add 'constant' as alias for 'method'.  e.g. 'FOO|class:FOO|constant:FOO'


Badger::Debug
-------------

* See if we can make this a low-level mixin that we can import into 
  Badger::Utils et al.
  
* make debug enabler export :debug and :dump into module


Badger::Docs
------------

* Finish writing it / cleaning it up and release.


Badger::Exception
-----------------

* Do we still want to add a higher-level catch() method?


Badger::Factory
---------------

* Subclass out into base class (returns loaded module name), object
  creator, object creator + cache (e.g. for hub), or whatever.

* have it bind fetch methods to item/items if undefined, e.g
  node => item, nodes => items.

* support multi-element names, e.g. node.foo.bar


Badger::Filesystem
------------------

* directory files/directories/dirs as grep across children

* need to handle encoding better in read_file() and write_file() methods.

* read-only filesystem option

* write_file() should have an option for writing to a temporary file and
  renaming into place to avoid race conditions.

* I'm considering refactoring this.  I'd like to unify the different
  filesystem-specific formats to an underlying URI-based one.  It would
  require a lens (combined parser + presenter) for each O/S.  Unix (inc
  Mac OSX) are simple, Win32 isn't hard.  Delegate to File::Spec for 
  everything else.

  Some info about Win32 path <-> uri translation, snarfed from 
  http://blogs.msdn.com/ie/archive/2006/12/06/file-uris-in-windows.aspx
  
  For the UNC Windows file path
     \\laptop\My Documents\FileSchemeURIs.doc

  The corresponding valid file URI in Windows is the following:
     file://laptop/My%20Documents/FileSchemeURIs.doc

  For the local Windows file path
     C:\Documents and Settings\davris\FileSchemeURIs.doc

  The corresponding valid file URI in Windows is:
     file:///C:/Documents%20and%20Settings/davris/FileSchemeURIs.doc 
  
  Functions currently used from File::Spec are: catpath, catdir, 
  canonpath, splitpath, splitdir, filename_is_absolute, abs2rel, 
  no_upwards.  Most of those can be moved out to lenses.  Path 
  manipulation becomes much easier internally when the path can be
  stored as a list of path nodes.


Badger::Log
-----------

* Add code to detect Log::Dispatch objects and forward messages.


Badger::Storage
---------------

* This is available in the git repository but not yet included in the released
  distribution.

* unify parameter parsing and identity definition between filesystem and
  database storage modules.

* get/put which take data / return id

* fetch/store which returns 

* create/destroy   connect/disconnect  open/close


Badger::Test
------------

* Could do with some proper testing.  Although all the other test scripts
  do tend to thrash it quite well...

* Change if_env to use Badger::Logic so we can specify things like:
      if_env => 'RELEASE_TESTING or AUTOMATED_TESTING'
 


Badger::Utils
-------------

* hashlike, listlike, numlike


BadgerX
-------

* add path to any bases missing it

* document



Longer Terms Goals / Larger Projects
------------------------------------

* incorporate re-write of AppConfig into Badger::Config

* consider doing the same with Pod::POM into Badger::Pod and combining
  with Badger::Docs.  (update: doing now)

* Finish cleaning Badger-Web and release

* Finish refactoring Badger-Database and release