about summary refs log tree commit homepage
DateCommit message (Collapse)
2011-01-21clogger 0.8.0 - delegating away! v0.8.0
Clogger now delegates all unknown methods to the response body in cases where it needs to wrap the response body. This allows apps that use non-standard Rack extensions to continue working. Eric Wong (4): pass along "to_io" calls to the body delegate method_missing calls to the response body pure: simpler autoload trigger switch to pkg.mk for maintenance tasks
2011-01-21switch to pkg.mk for maintenance tasks
I like make :D
2011-01-21pure: simpler autoload trigger
No need to actually create the hash, just load the constant
2011-01-21delegate method_missing calls to the response body
Since we delegated response_to?, we also need to delegate method_missing to the response body in case there are non-standard methods defined outside of Rack.
2011-01-21pass along "to_io" calls to the body
This optimization is used by Rainbows! to pass IO objects to the response body.
2011-01-14clogger 0.7.0 - portability improvements, cleanups v0.7.0
Broken/crazy systems without CLOCK_MONOTONIC (in varying degrees) and/or clock_gettime() should be supported by using gettimeofday(). Thanks to Lawrence Pit for reporting and helping us test. The Clogger::ToPath proxy class is gone, Clogger itself can proxy to_path/close calls correctly to the response body. $time_utc with a default strftime-format is now supported, and time formats can now be arbitrarily long in the C extension.
2011-01-14properly support $time_utc as documented
nginx doesn't have this, only time_local, but we do
2011-01-14handle abitrarily long time formats in C extension
In case some folks need to use insanely long time formats, we'll support them.
2011-01-14RDoc fixups
call-seq is needed to make C functions look good
2011-01-14remove dead RSTRUCT* compatibility macros
The Clogger::ToPath proxy struct class is gone and so is our need to access it.
2011-01-14remove Clogger::ToPath proxy class
We can just make Clogger#respond_to? smarter and forward everything except :close to the body we're proxying.
2011-01-14test_clogger_to_path: do not assume implementation details
We'll be getting rid of an unnecessary wrapper class
2011-01-14another try to fix systems without CLOCK_MONOTONIC
Fix a reversed typedef and also deal with the case where CLOCK_MONOTONIC is a function call and not a constant macro.
2011-01-14another workaround for systems with broken CLOCK_MONOTONIC
This should also detect cases where CLOCK_MONOTONIC is available at build but not at runtime.
2011-01-12attempt to support broken/crazy systems
clock_gettime() is not available on some systems and/or CLOCK_MONOTONIC. This is totally broken considering the POSIX standard was 10 years ago, now. Nothing in gnulib, either, wtf?! http://www.gnu.org/software/gnulib/manual/html_node/clock_005fgettime.html
2011-01-12remove unused function (obj_fileno)
2010-12-26release: publish_news runs by default
It's interactive and sucks less, now.
2010-12-25README: updates
Remove unnecessary "DESCRIPTION" header, also added note about Rubinius support.
2010-12-25clogger 0.6.0 - :path shortcut, minor bugfixes v0.6.0
Clogger may now be initialized with a :path instead of :logger to avoid typing "::File" in config.ru files to avoid conflicting with the completely-unrelated Rack::File. $request_time is now uses the monotonic clock, making it immune to system clock changes. $usec and $msec statements were completely broken in the pure-Ruby code and now fixed. Rubinius is supported by the optional C extension as well, the pure-Ruby code always worked.
2010-12-25fix $msec and $usec in pure Ruby variant
It was totally broken but nobody uses uses it, so it went unnoticed since the beginning of time.
2010-12-25add support for Rubinius
RSTRUCT_PTR access is unlikely to ever happen for Rubinius, so we'll just make a method dispatch and leave the faster code for Ruby 1.8 and 1.9.
2010-12-25GNUmakefile: better external RUBYLIB support
Duh!
2010-12-24eliminate unnecessary freeze and dup
They're not needed and a waste of code.
2010-12-24doc: switch to wrongdoc for documentation
wrongdoc eliminates JavaScript from our website and also enables us to cut down on our management scripts/code for supporting the project.
2010-12-24GNUmakefile: preserve RUBYLIB env for tests
2010-12-24fix #include ordering under FreeBSD 7.2
ruby.h doesn't seem to like being included after time.h
2010-12-24use clock_gettime for time resolution
This lets us use CLOCK_MONOTONIC so we are not affected by system clock changes. We still convert to microseconds instead of nanoseconds for (pure)-Ruby 1.8 code compatibility. There is also little need for nanosecond timer resolution in log files (microsecond is not needed, even).
2010-12-24accept a new :path argument in initialize
This lessens confusion for people configuring Clogger in config.ru, since "File" could be mistaken for Rack::File and "::File" needs to be specified.
2010-12-24GNUmakefile: fix running of extension test
Oops
2010-10-05GNUmakefile: use portable tar invocation
We've been spoiled by GNU tar.
2010-06-06README: Rack 1.1 is out (and has been for a while)
2010-06-06clogger 0.5.0 - body.to_path forwarding v0.5.0
This release allows middleware like Rack::Contrib::Sendfile to work properly higher up the stack from Clogger. Certain configurations of the Rainbows! and Zbatery web servers are able to use the return value of body.to_path to serve static files efficiently (via IO.copy_stream under 1.9 or stream_file_data with EventMachine). There are some small cleanups and documentation improvements as well. I've relicensed to LGPLv2.1+ (from LGPLv3-only) to allow bundling with GPLv2-only applications (I'm currently the sole copyright holder). Signed-off-by: Eric Wong <normalperson@yhbt.net>
2010-06-06README: document CLOGGER_PURE environment variable
There may also be some MRI users uncomfortable running C extensions.
2010-06-06CLOGGER_PURE=0 disables the C ext
It's unintuitive that merely setting the environment variable to an empty string or zero would be a boolean true.
2010-06-06ext: comment why we do what we do in to_path
2010-06-06ext: the N in /dev/fd/N must be unsigned
There's no way in hell a valid file descriptor can have a negative number attached to it.
2010-06-06ext: handle weird regular files with O_NONBLOCK set
Sometimes programmers can blindly set O_NONBLOCK on everything in sight. However, O_NONBLOCK has no effect on regular files, so ignore it and allow the raw file descriptor to be used.
2010-06-06ext: cleanup -Wshadow warning
2010-06-06no point in using autoload for Rack
Rack is always used, and Rack itself uses autoload to save memory.
2010-06-06gemspec: update test files
2010-06-06relicense as LGPLv2.1 or later (from LGPLv3)
This allows GPLv2-only programs to bundle us. Signed-off-by: Eric Wong <normalperson@yhbt.net>
2010-06-06doc: RDoc cleanups, split out LICENSE file
2010-06-06pass-through body.to_path when wrapping the body
Certain configurations of Rainbows! (and Zbatery) are able to use the return value of body.to_path to serve static files more efficiently. This also allows middleware like Rack::Contrib::Sendfile to work properly higher up the stack, too.
2010-06-06when wrapping the body, body.close writes the log
We no longer write the log out at the end of the body.each call. This is a behavioral change, but fortunately all Rack servers I've seen call body.close inside an ensure. This allows us to later pass along the "to_path" method and not rely on "each" to write the log.
2010-06-06GNUmakefile: allow multiple tests to run in parallel
2010-04-21clogger 0.4.0 v0.4.0
Small cleanups and minor enhancements (mainly for the optional C extension) for this release: Eric Wong (10): ext: use FIX macros instead of generic NUM macros if possible ext: preserve subclasses of Rack::Utils::HeaderHash test: fix Linux memory usage test avoid direct require of "rack" to quiet warnings ext: GC safety fix when throwing an exception ext: eliminate unused variable ext: fix signedness and shadow warnings ext: sparse cleanups ext: avoid void pointer arithmetic clogger 0.4.0
2010-04-21ext: avoid void pointer arithmetic
default CFLAGS for 1.9.2dev complains
2010-04-21ext: sparse cleanups
2010-04-21ext: fix signedness and shadow warnings
These were (fortunately) harmless, but better safe than sorry.
2010-04-21ext: eliminate unused variable