Version 0.1.1 - Agile Web Development with Rails… and KirbyBase
===========================================================
- Issues & Patches from Jamey Cribbs:
- Fixed roundtrip of AR::Schema’s :datetime type to Ruby’s Time objects
- Base.find now accepts a list of IDs given as string (i.e. "1" and not the integer 1).
- Translating NULL is now case insensitive
- Fixed Base.count to handle explicit nil as a parameter
All these issues were discovered when building the sample ‘Depot’ app from the Pragmatic Programmers’ Agile Web Development with Rails (houseonfire.wordpress.com/2006/02/18/hello-world/)
- Other issues:
- Time values: For some reason the AR::Base tests expect Time values where just the hours are given (ie. no date) is then assumed to be on Jan 1st, 2000. Now if the Time conversion is failing we call string_to_dummy_time.
- YAML fixes for serialize
- Added tests for Ruby code in conditionals and nil values in conditionals
Version 0.1.0 - Initial Release
=========================
- Override methods in AR::Base (class and instance) to support KB CRUDs
- Override Associations to support KB
- Simple test suite for boostrapping
- Tests use modified versrion of AR::Fixtures
- Added runner for the AR test suite Importing test classes one by one and removing inapplicable tests Forcing non-transactional fixtures
- Added an SQL fragment translator (mostly around conditions)
- serialize‘d attributes will cause the corresponding column to be changed to YAML
- The adapter indexes method will return a default index name. Index names are not used as in SQL, but the name is generated each time from the table name and the relevant columns.
- All blocks passed to :finder_sql and :counter_sql might be called with
multiple parameters:
- has_one and belongs_to: remote record
- has_many: remote record and this record
- has_and_belongs_to_many: join-table record and this record
Additionally HasAndBelongsToManyAssociation :delete_sql will be called with three parameters: join record, this record and remote record Make sure that all blocks passed adhere to this convention. See ar_base_tests_runner & ar_model_adaptation for examples.
- There are some minor extensions to the stdlib, with asosciated tests. See
the bottom of kirbybase_adapter.rb, but the short list is:
- Array#sort_by - takes a symbol or a block
- Array#sort_by! - inplace
- Array#stable_sort and Array#stable_sort_by - based on Matz’s post to ruby-talk
- Object#in(ary) - equal to ary.include?(o)