Announcements

TPF Grant Proposal Approved: Mango

Much to my surprise, The Perl Foundation has approved the grant proposal for Mango. For those who hadn’t heard about Mango yet, it is going to be an “ecommerce solution” built using Catalyst+Handel. The main goal of Mango is to be one of those ‘Web 2.0′ buzzword applications [but better] to help promote Catalyst outside of the circle of us who already know its virtues.

Please feel free to add any comments, thoughts, concerns, requirements etc to the Mango wiki space.

Right now, I’m still pushing hard to get Handel 1.0 done so I can dole out maint bits and concentrate on Mango. I’m also a bit in shock about the grant. I’m a little bit hyped, a whole lot scared, and quite a bit rock and roll. Here’s hoping that I can live up to the promises I’ve made and not make us all look bad in the process. :-)

-=Chris

Announcements

Comments Off

Permalink

Handel 0.99_05 Released

It’s that time of the month again. Another round of bits and bytes has escaping from the coding monkeys. These new bits and bytes formed:

  • Changed create_result in Base to create_instance
  • Added create/search/uuid_maker/copyable_item_columns to Storage
  • Storage->clone now clones even with an active schema instance
  • Schema configuration in Storage now uses a clone of the item_classes storage instead of the original, and redirects result->storage
  • Cart/Order/Items now use storage create/search
  • Cart/Order add() now use copyable_item_columns when passed objects
  • Cart/Order add() now look for source columns and methods to fill destination column values
  • Various pod fixes
  • Added more tests for create_instance/clone changes
  • Cart/Order/Item new/load/destroy now take \%options, specifically $options{storage}
  • Order->new $process argument moved into \%options
  • Order->copy_cart_items now just uses add
  • Added checkout_class to Storage
  • Storage now uses exception_action rather than dbh->{HandleError}
  • Storage process_error now creates a Storage Exception for unknown errors
  • Moved storage settings in Cart/Order Item into Storage::Cart/Order::Item
  • Applied Catalyst Helper test patch from Todd W.
  • Added Storage::Result, which is now returned by storage actions
  • Handel::Currency convert now returns a new currency object
  • Cart/Order/Item now use generic result objects
  • Cart/Order clear now returns result of action like delete does
  • Renamed Cart/Order/Item new() to create()
  • Renamed Cart/Order/Item load() to search()
  • Added load/new/items to Compat.t w/subclass tests

At this point, I think I’m close to being done rearranging the API and there’s even a good bit of compat tests for those -4 people using the old API in subclasses. Now that the big stuff is out of the way, it’s time to get busy reworking the Catalyst helpers and I still need to fix the demo code and get some good Cookbook stuff in place.

Announcements

Comments Off

Permalink

CatInABox Update

With a little prompting on #catalyst, I’ve updated CatInABox to use Catalyst 5.7001. I’ve also updated a few of the plugins including View::TT, Template-Toolkit and Authentication. As always, you can download a copy from the downloads directory.

For the brave Win32 users out there, I’ve also posted the CatInABox directory I use on my USB thumb drive that includes just about everything plus the kitchen sink compiled for Perl 5.8.x on win32.

Happy coding.

Announcements

Comments Off

Permalink

Handel 0.99_04 Released

Just because I can’t seem to stop, here’s another development release which includes the following changes:

  • Schema configuration now finally uses load_components without the Class::C3 recalc slowdown
  • Validation component now uses throw_exception/next::method now that load_components is used
  • Major pod cleanup
  • Excised all forms of RETURN_AS
  • TEST_SPELLING is now TEST_POD, which all pod tests now use
  • Order created/updated fields now return DateTime objects using DBIx::Class::InflateColumn::DateTime
  • Excised remaining UNIVERSAL::isa mistakes. Blessed is your friend
  • Order created/updated fields now default to DateTime->now

Announcements

Comments Off

Permalink

Handel 0.99_03 Released

Once again, the well trained monkey servants have put forth a new development version of Handel. Their master coding includes:

  • Fixed AxKit Exception Error (RT#19707,TKP)
  • Added start of Handel::Manual
  • uuid is now new_uuid, and now in Storage
  • Removed setup_columns_accessors in favor or create_accessors in Base
  • Cart/Order/Item classes now have a instance of storage instead of subclassing it
  • Added Handel::Base as super class for Cart/Order/Item classes
  • Added Handel::Storage tests
  • Handel::Storage now does all schema configurate during first schema_instance call
  • Added Handel::Storage::new/setup
  • Cart/Order/Item classes now delegate direct schema access to Storage
  • Added validation/constraint/default_value_class to Storage
  • Converted Storage from Class::Data::Accessor to Class::Accesssor::Grouped
  • Refactored injection of components into schema source classes
  • schema_instance now creates a clone using compose_namespace and does its component injection into the clone instead
  • Added currency_class/currency_columns to Storage
  • Added value() to Handel::Currency
  • Added autoupdate to results that inherits from storage->autoupdate
  • Added basic compatibility layer for older subclasses

If you are one of the brave souls that is using 0.99_01/02, I apologize now. There has been a major rewrite of the storage layer, and you will have to change code. But hey, that’s why they call it a development release right? :-)

Announcements

Comments Off

Permalink

Handel 0.99_02 Released

Fresh from the assembly line, I present Handel 0.99_02:

  • Fixed test counts in t/order_new.t (RT#19700,TKP)
  • Moved _error_handler in Storage to process_error and set dbh->{HandelError} using $self->can
  • Use blessed when setting schema_instance in Storage
  • Abstracted schema setup when setting Storage->schema_instance($schema)

Announcements

Comments Off

Permalink

Handel 0.99_01 Released

After what seems like an eternity, the first dev version of the upcoming Handel 1.0 is now available. It should be available on CPAN shortly, or you can get the latest version from SVN here.

Changes in the release include:

  • RETURN_AS has been removed from the API
  • Data filters now take SQL::Abstract syntax for wildcards
  • Converted from Class::DBI to DBIx::Class schemas
  • Handel::ConfigReader is now a singleton via instance()
  • Handel::DBI is deprecated in favor if Handel::Storage
  • Moved column defaults into Handel::Components::DefaultValues
  • Added constraint_cart_name

Note: Handel 1.0 is not API compatible with Handel 0.32 and older. One of the major goals of 1.0 was to correct some bad API decisions I shouldn’t have made to begin with. I’ve tried to keep the incompatible changes down to a minimum. The main change is that new/load/item now always returns an interator in scalar context, and a list in list context. New/load/items no longer returns a cart/item object if there is only one result. That was bad magic that I shouldn’t have ever done.

Announcements

Comments Off

Permalink

Handel IRC Channel

For those of you who need help, or just want to abuse me [claco] on IRC, feel free to join the #handel channel on irc.perl.org. Beware or purl. She’s a saucy little infobot. :-)

Announcements

Comments Off

Permalink

Handel 0.32 Released

Just because I can…

  • Added order_reconcile.t tests
  • Order::reconcile now uses copy_cart/copy_cart_items

Announcements

Comments Off

Permalink

Handel 0.31 Released

Live from the monkey pit, Handel version 0.31 had been scrape from the
programming mouldes and set free against the world. Changes in 0.31 include:

  • Fixed order creation from cart uuid to use cart_class
  • Fixed order reconcile to use cart_class
  • Added ccissuenumber, ccstartdate and ccenddate temp fieds to orders
  • Use version to property compare CDBI versions (3.0.1 doesn’t use version)
  • Added clear_messages to Handel::Checkout
  • Checkout plugin handlers are now run in the order of their declared preference number
  • Fixed Carts item_class to return a default
  • Fixed Carts items(), delete(), destroy() and restore() to use item_class
  • Fixed Orders item_class to return a default
  • Fixed Orders items(), delete() to use item_class
  • PRAGMA synchronous = OFF and temp_store = MEMORY for SQLite tests to reduce disk trashing during testing
  • Handel::Exception::Taglib subclasses Apache::AxKit::Exception if available to play nice with AxKits exception handling
  • Added destroy() to Handel::Order
  • Added subclassing tests to current cart/order/checkout tests
  • Checkout::process now clears the stash before the call to plugin init, so plugins can set stash data
  • Added Handel::Checkout::Stash to checkout process
  • Added Checkout->stash_class to allow the use of a custom stash class in Checkout subclasses
  • Checkout::new how takes the stash option, which should contain a instance of a Handel::Checkout::Stash subclass
  • Added t/checkout_stash,t tests
  • Class setter methods (order_class, item_class, stash_class, cart_class) now try to require the specified class

Happy coding.

Announcements

Comments Off

Permalink