Fetching contributors…
Cannot retrieve contributors at this time
404 lines (284 sloc) 13.1 KB

5.0.4 2012-03-23

  • Update ActiveRecord::AttributeMethods#Write for Rails 3.2.2 (Travis Warlick)

5.0.4 2012-03-23

  • Yanked

5.0.2 2012-03-16

  • Use .rdoc extension on RDoc files (Elia Schito)

  • Update documentation to use self.primary_keys instead of set_primary_keys (Miguel Fonseca)

  • Added tests for comparing composite ids (Jim Jones)

  • Updating the README for clarity (Brett Fishman)

  • Fix method signature mismatch with active_record (Miguel Fonseca)

  • Fix ref in README (Elia Schito)

  • Add test for habm create (Charlie Savage)

5.0.1 2012-02-13

  • Fix deprecation warning that was exactly backwards (Tom Hughes)

  • Fix primary_keys handling in models that inherit from other models but don't redefine their primary_key. Problem was the inherited models didn't correctly reference their parents primary_keys (Charlie Savage)

5.0.0 2012-02-12

  • Fix tests so they pass on MySql (Charlie Savage)

  • Fix calculations to work with duplicate column names (cleesmith)

  • Switch rake tasks for Postgresql and MySql to use ActiveRecord API for creating and dropping databases (Charlie Savage)

  • Follow AR 3.2 lead and introduce self.primary_keys and deprecate set_primary_keys (Charlie Savage)

  • Switch from set_primary_key to self.primary_key= to avoid Rails deprecation (Charlie Savage)

  • Fix issue when using multiple database connections (David Doan)

  • Fix homepage in gemspec and remove email address (Charlie Savage)

  • Add support for string keys to exists? (Jan Vlnas)

  • Fix typo (Jason Karns)

5.0.0.rc1 2012-01-16

  • ActiveRecord 3.2 support

4.1.2 2012-01-12

  • Helper to allow the same tests to be used for both Oracle and other DBs

by replacing quoted identifiers with all-caps equivalents on Oracle (Rhett Sutphin)

  • Update Oracle tests (Rhett Sutphin)

4.1.1 2011-08-31

  • Support for AR 3.1.1

  • Make polymorphic belongs_to work in rails 3.1.1 (Tom Hughes)

  • Eliminate relative paths from the test suite (Rhett Sutphin)

  • Minor improvements to the CPK test runner w/o relative path changes (Rhett Sutphin)

  • Remove stray puts (Rhett Sutphin)

  • Allow AR logs to go to a file when running tests. This commit allows you to specify a file to use instead via the CPK_LOGFILE environment variable. STDOUT is still the default. (Rhett Sutphin)

  • Use ADAPTER env variable to select database to test. For example:

    ADAPTER=sqlite3 ruby test/test_suite.rb
    (Rhett Sutphin)
  • Eliminate constant redef warnings during test runs (Rhett Sutphin)

  • Add missing fixture declarations (Rhett Sutphin)

  • Standardize on integer PKs in polymorphic fixtures (Rhett Sutphin)

  • Fix tiny file name typos (Buck)

4.0.0 2011-08-31

  • Support for AR 3.1

4.0.0.beta9 2011-08-22

  • Fix eager-loading in AR 3.1.rc6.

4.0.0.beta9 2011-082-22

  • Fix eager-loading in AR 3.1.rc6.

4.0.0.beta8 2011-082-22

  • Sqlite 3 fixes (Jan Vlnas)

  • Fixes for to_key method (Jan Vlnas)

  • Compatible with Rails 3.1 RC6 (Ari Epstein, Travis Warlick)

4.0.0.beta7 2011-07-26

  • Compatible with Rails 3.1 RC5 (TycoooN)

  • Do not use Arel::Nodes::Or to combine predicates because it creates a deeply nested stack that blows up.

4.0.0.beta4 2011-07-22

  • Compatible with Rails 3.1 stable branch. No longer works with RC4 (Charlie Savage)

  • Do not require loading of postgresql gem unless needed (Charlie Savage)

4.0.0.beta3 2011-07-08

  • Fix the ability to update the values of a primary key (Travis Warlick)

  • Support port and host configurations for postgres rake tasks (Travis Warlick)

4.0.0.beta2 2011-06-21

  • ActiveRecord 3.1 RC4 compatibility.

  • Fix instantiation of CPK models with included associations

4.0.0.beta1 2011-06-09

  • ActiveRecord 3.1 RC1 compatibility. This required a significant rewrite due to all the changes in AR 3.1 versus 3.0.

3.1.10 2011-07-08

  • Bugfix for belongs_to with includes (John Ash)

  • Improved tests for calling clear on a habtm association, which involved (David Rueck)

  • Fixed bug that resulted in unrelated records being deleted when calling (David Rueck)

  • Output deprecation warnings about extra columns in join table CPK-aware (David Rueck)

3.1.9 2011-06-04

  • Improve HABTM association tests (David Rueck)

  • Remove deprecated Rake tasks (Charlie Savage)

3.1.8 2011-05-26

  • Fix calling clear on a HABTM associate (David Rueck)

3.1.7 2011-05-26

  • Support regular AR models having one or many composite models (Jacques Fuentes)

  • Minor test cleanup (Charlie Savage)

  • Make version requirements more explicit (Charlie Savage)

  • Remove Arel extensions used for calculations (Charlie Savage)

  • Fix test that included wrong error constant

3.1.6 2011-04-03

  • Updated belongs_to association to be a bit more flexible with non-CPK (Charlie Savage) base models (Jacques Fuentes)

  • Fix uniqueness check (David Rueck)

  • Fix write issue when one of they keys in a composite key is called id (Tom Hughes)

3.1.5 2011-03-24

  • Fix simple calculation methods (Charlie Savage)

  • Fix instantiation of cpk records via associations (Charlie Savage)

  • Fix Relation#delete (Charlie Savage)

  • Fix Relation#destroy (Charlie Savage)

3.1.4 2011-03-06

  • Support ActiveRecord 3.0.5 - interpolate_sql was removed and replaced by interpolate_and_sanitize_sql (Charlie Savage)

  • Fix persistence methods to support destroy callbacks (Charlie Savage)

  • Support rake 0.9.0 beta (Charlie Savage)

3.1.2 2011-02-26

  • Add back in support for find('3,3') which makes it possible to do find(params). This implementation is simpler than earlier version improving code readability.

  • Support for finding multiple records either via find(, [3,4])

  • Remove to_composite_ids method which is no longer needed

3.1.1 2011-02-07

  • Implement id_before_type_cast (Jason Lewis)

  • Add in tests for Model.includes(:other_model)

  • Fix object comparison with nil in composite primary keys (StackNG)

  • Make it easier to run tests with different database adapters (Toby Cabot)

  • Fix AssociationReflection#primary_key_name for polymorphic relationships (Dave Doan)

3.1.0 2010-12-17

  • Add back in rake test tasks (Toby Cabot)

  • Add support for multiple string composite keys (wouter)

  • Remove support for find('3,3'). Instead use find()

3.0.9 2010-12-04

  • Fix up support for composite key fixtures.

3.0.8 2010-12-04

  • Fix for translation issue in unique validation. Thanks to Daniel Berger for the patch.

  • Fix to support child classes of composite primary key models

3.0.7 2010-11-29

  • Fix has and belongs to many associations implementation.

3.0.6 2010-11-29 (yanked)

  • Add full support for has and belongs to many associations.

3.0.5 2010-11-28 (yanked)

  • Apply patch from Marian Rudzynski for fixing up attribute_methods/primary_key

  • Apply patch from Toby Cabot to fix up various sqlite3 issues

  • Add partial support for has and belongs to many associations. Currently a cpk model can have a habtm, but a normal model cannot have a habtm to a cpk model (its actually not too hard to add, but one step at a time…)

3.0.4 2010-11-21

  • Support deleting records when dependent is set to :delete_all

  • Switch the method #id to return a CompositeKeys instance (thus going back to how this was done in previous CPK versions)

3.0.3 2010-11-19

  • Support ActiveRecord 3.0.3 and Arel 2+

  • Require ActiveRecord 3.0.3 as minimum dependency

  • Fix double quoting issue with table names - thanks to Kevin Motschiedler for a patch.

  • Fix SQLiteAdapter class inheritance issue - thanks to Brandon Hauff for a patch.

3.0.1.b3 2010-11-07

  • Fix bug in joining to :has_one association

  • Added support for Model.find(:last)

  • Added support for finding via associations with limited ids. For example find(:include => :foo, :limit => 1)

3.0.1.b2 2010-11-06

  • Port to Rails 3.0 and Ruby 1.9.2

  • Backwards compatability issues + You can no longer define a composite primary key with a single field. If you

    try, your model will just default to a standard active record model.  Removing
    this corner case simplified the code.

    + Removed CompositePrimaryKeys::CompositeKeys. This was done so that the #to_s

    method on composite ids, such as [1,2], returns "[1, 2]".  This in turns
    reduces the amount of core Rails code that needs to be overridden.

    + Setting attribute values by string is no longer supported. For example, this

    no longer works:
      my_record[[:main_id, :secondary_id]] = '1,2'
    Instead, do  this:
      my_record[[:main_id, :secondary_id]] = [1,2]
    Once again, this was done to reduce the amount of overridden Rails code

    + At the moment, complex finds with nested arrays do not work. For example

    find([[1,2], [3,4]))

    + Count methods no longer work. For example, Tariff.count(:include => :product_tariffs)

    in the TestAssociations#test_count test returns an error.  This is because Rails 3.0
    uses Arel to perform such calculations, and its not obvious (at least to me) how to
    hook into this new mechanism to support tables with composite keys.

    + The TestPolymorphic#test_polymorphic_has_many_through is currently failing, but this

    looks like an ActiveRecord 3.0 bug to me. 2010-02-13

  • Resolved “warning: already initialized constant HasManyThroughCantAssociateThroughHasManyReflection” [Titi Ala'ilima]

2.3.5 2009-12-16

  • Fixed several bugs in has_one and has_many associations when :primary_key specified [kpumuk]

2.3.2 2009-07-16

  • explicitly load associations.rb due to some getting an unitialized constant error

2.3.2 2009-05-28

  • get tests working again with AR 2.3.2

2.2.1 2009-01-21

  • fix ActiveRecord#exists? to work when passing conditions instead of ids

2.2.0 2008-10-29

  • Rails 2.2.0 compatibility

1.1.0 2008-10-29

  • fixes to get cpk working for Rails 2.1.2

1.0.10 2008-10-22

  • add composite key where clause creator method [timurv]

1.0.9 2008-09-08

  • fix postgres tests

  • fix for delete_records when has_many association has composite keys [darxriggs]

  • more consistent table/column name quoting [pbrant]

1.0.8 2008-08-27

  • fix has_many :through for non composite models [thx rcarver]

1.0.7 2008-08-12

  • fix for the last fix – when has_many is composite and belongs_to is single

1.0.6 2008-08-06

  • fix associations create

1.0.5 2008-07-25

  • fix for calculations with a group by clause [thx Sirius Black]

1.0.4 2008-07-15

  • support for oracle_enhanced adapter [thx Raimonds Simanovskis]

1.0.3 2008-07-13

  • more fixes and tests for has many through [thx Menno van der Sman]

1.0.2 2008-06-07

  • fix for has many through when through association has composite keys

1.0.1 2008-06-06

  • Oracle fixes

1.0.0 2008-06-05

  • Support for Rails 2.1

0.9.93 2008-06-01

  • set fixed dependency on activerecord 2.0.2

0.9.92 2008-02-22

  • Support for has_and_belongs_to_many

0.9.91 2008-01-27

  • Incremented activerecord dependency to 2.0.2 [thx emmanuel.pirsch]

0.9.90 2008-01-27

  • Trial release for rails/activerecord 2.0.2 supported

0.9.1 2007-10-28

  • Migrations fix - allow :primary_key => [:name] to work [no unit test] [thx Shugo Maeda]

0.9.0 2007-09-28

  • Added support for polymorphs [thx nerdrew]

  • init.rb file so gem can be installed as a plugin for Rails [thx nerdrew]

  • Added ibm_db support [thx K Venkatasubramaniyan]

  • Support for cleaning dependents [thx K Venkatasubramaniyan]

  • Rafactored db rake tasks into namespaces

  • Added namespaced tests (e.g. mysql:test for test_mysql)

0.8.6 / 2007-6-12

  • 1 emergency fix due to Rails Core change

    • Rails v7004 removed #quote; fixed with connection.quote_column_name [thx nerdrew]

0.8.5 / 2007-6-5

  • 1 change due to Rails Core change

    • Can no longer use RAILS_CONNECTION_ADAPTERS from Rails core

  • 7 dev improvement:

    • Changed History.txt syntax to rdoc format

    • Added deploy tasks

    • Removed CHANGELOG + migrated into History.txt

    • Changed PKG_NAME -> GEM_NAME in Rakefile

    • Renamed README -> README.txt for :publish_docs task

    • Added :check_version task

    • VER => VERS in rakefile

  • 1 website improvement:

    • website/index.txt includes link to “8 steps to fix other ppls code”

0.8.4 / 2007-5-3

  • 1 bugfix

    • Corrected ids_list => ids in the exception message. That'll teach me for not adding unit tests before fixing bugs.

0.8.3 / 2007-5-3

  • 1 bugfix

    • Explicit reference to ::ActiveRecord::RecordNotFound

  • 1 website addition:

    • Added routing help [Pete Sumskas]

0.8.2 / 2007-4-11

  • 1 major enhancement:

    • Oracle unit tests!! [Darrin Holst]

    • And they work too

0.8.1 / 2007-4-10

  • 1 bug fix:

    • Fixed the distinct(count) for oracle (removed 'as')

0.8.0 / 2007-4-6

  • 1 major enhancement:

    • Support for calcualtions on associations

  • 2 new DB supported:

    • Tests run on sqlite

    • Tests run on postgresql

  • History.txt to keep track of changes like these

  • Using Hoe for Rakefile

  • Website generator rake tasks


  • id=

  • create now work


  • it was important that #{primary_key} for composites –> 'key1,key2' and not 'key1key2' so created PrimaryKeys class


  • Initial version

  • set_primary_keys(*keys) is the activation class method to transform an ActiveRecord into a composite primary key AR

  • find(*ids) supports the passing of

    • id sets: Foo.find(2,1),

    • lists of id sets: Foo.find(, [7,3], [8,12]),

    • and even stringified versions of the above:

    • Foo.find '2,1' or Foo.find '2,1;7,3'