From dean at aspectprogramming.com Sat Sep 15 23:06:00 2007 From: dean at aspectprogramming.com (Dean Wampler) Date: Sat, 15 Sep 2007 22:06:00 -0500 Subject: [Aquarium-devel] Proposals for "0.1.5" release of Aquarium Message-ID: <68D39E2E-3429-4A52-B612-7F906C11CDFB@aspectprogramming.com> Hi, I'm working on the next release, which will fix the following bugs: 13650 Loading Aquarium interferes with Rails filters 13864 Bug with negative object_id I want to tag the release "0.1.5" because fixing 13650 will require an API change, but it doesn't seem to warrant a jump to "0.2.0". Here is what I propose to fix 13650: Previously, requiring "aquarium.rb" in the top-level "lib" directory would implicitly require lib/aquarium/aspects/dsl/aspect_dsl.rb, which has Object include the AspectDSL module. This module adds methods like :before and :after to Object. Unfortunately, those methods collide with methods of the same name that Rails adds to Object. It was also a bit presumptuous of me to assume that everyone wanted those methods on Object ;) In this release, aspect_dsl.rb is still implicitly included and it still defines the AspectDSL module. Now, however, it does not include the AspectDSL module in Object. Instead, if you want this behavior for all types, you'll have to require a new lib/aquarium/aspects/dsl/ object_dsl.rb explicitly. As an alternative, if you just want the AspectDSL module included selectively in certain types (a good suggestion by the bug submitter - thanks if you're reading!), then do the following: require 'aquarium/aspects/dsl/aspect_dsl' class MyClass # reopen "MyClass" include Aquarium::Aspects::DSL::AspectDSL end (or something along those lines...) Feedback is welcome. Although I've almost completed the work, I'll wait until Monday evening in case anyone has any alternative suggestions or concerns. Thanks, dean Dean Wampler, Ph.D. dean at objectmentor.com http://www.objectmentor.com See also: http://www.aspectprogramming.com AOP advocacy site http://aquarium.rubyforge.org AOP for Ruby http://www.contract4j.org Design by Contract for Java5 I want my tombstone to say: Unknown Application Error in Dean Wampler.exe. Application Terminated. [Okay] [Cancel] -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/aquarium-devel/attachments/20070915/ab7bca86/attachment.html From dean at aspectprogramming.com Sun Sep 16 10:18:40 2007 From: dean at aspectprogramming.com (Dean Wampler) Date: Sun, 16 Sep 2007 09:18:40 -0500 Subject: [Aquarium-devel] Tracker items now reported to this list Message-ID: <83398C57-D713-4371-88F6-CB306FF89136@aspectprogramming.com> I've just configured tracker to send events to this list. dean Dean Wampler, Ph.D. dean at objectmentor.com http://www.objectmentor.com See also: http://www.aspectprogramming.com AOP advocacy site http://aquarium.rubyforge.org AOP for Ruby http://www.contract4j.org Design by Contract for Java5 I want my tombstone to say: Unknown Application Error in Dean Wampler.exe. Application Terminated. [Okay] [Cancel] -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/aquarium-devel/attachments/20070916/1e5e0806/attachment.html From dean at aspectprogramming.com Mon Sep 17 22:27:32 2007 From: dean at aspectprogramming.com (Dean Wampler) Date: Mon, 17 Sep 2007 21:27:32 -0500 Subject: [Aquarium-devel] New V0.1.5 Release of Aquarium Message-ID: <2F9DF84F-2344-409F-AE40-7E096EC55FC1@aspectprogramming.com> As discussed previously, this is primarily a bug-fix release that I labeled as "v0.1.5" instead of "v0.1.1", because of the required API change. Aquarium no longer automatically adds methods to Object, due to collisions with Rails. This means that users of the "DSL methods" will need to require a new file or include a new module. The "CHANGES" file in the distribution (or here: http:// aquarium.rubyforge.org/changes.html) has the details. In a nutshell, "require 'aquarium'" still defines the "AspectDSL" module, but it doesn't include it automatically in "Object". If you want that behavior, then require 'aquarium/aspects/dsl/object_dsl' You now also have the option of including the DSL methods in individual modules, classes, or even objects. For modules and classes, just include Aquarium::Aspects::DSL::AspectDSL This adds the methods as _class_ methods on the module or class. For objects, just my_object.extend (Aquarium::Aspects::DSL::AspectDSL) This adds the methods as _instance_ methods on the object. There are some other bug fixes and minor enhancements listed in the CHANGES. dean Dean Wampler, Ph.D. dean at objectmentor.com http://www.objectmentor.com See also: http://www.aspectprogramming.com AOP advocacy site http://aquarium.rubyforge.org AOP for Ruby http://www.contract4j.org Design by Contract for Java5 I want my tombstone to say: Unknown Application Error in Dean Wampler.exe. Application Terminated. [Okay] [Cancel] -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/aquarium-devel/attachments/20070917/5c49e572/attachment.html