=== 1.5.1 (2008-04-30) * Fix Dataset#eager_graph when not all objects have associated objects (jeremyevans) === 1.5.0 (2008-04-29) * Make the validation errors API compatible with Merb (Inviz) * Add validates_uniqueness_of, for protecting against duplicate entries in the database (neaf, jeremyevans) * Alias Model#dataset= to Model#set_dataset (tmm1) * Make some Model class methods private: def_hook_method, hooks, add_hook, plugin_module, plugin_gem (jeremyevans) * Add the eager! and eager_graph! mutation methods to model datasets (jeremyevans) * Remove Model.database_opened (jeremyevans) * Remove Model.super_dataset (jeremyevans) * Deprecate .create_with_params, .create_with, #set, #update, #update_with, and #new_record from Sequel::Model (jeremyevans) * Add Model.def_dataset_method, for defining methods on the model that reference methods on the dataset (jeremyevans) * Deprecate Model.method_missing, add dataset methods to Model via metaprogramming (jeremyevans) * Remove Model.join, so it is the same as Dataset#join (jeremyevans) * Use reciprocal associations for all types of associations in the getter/setter/add_/remove_ methods (jeremyevans) * Fix many_to_one associations to cache negative lookups (jeremyevans) * Change Model#=== to always be false if the primary key is nil (jeremyevans) * Add Model#hash, which should be unique for a given class and primary key (or values if primary key is nil) (jeremyevans) * Add Model#eql? as a alias to Model#== (jeremyevans) * Make Model#reload clear any cached associations (jeremyevans) * No longer depend on the assistance gem, merge the Inflector and Validations code (jeremyevans) * Add Model#set_with_params, which is Model#update_with_params without the save (jeremyevans) * Fix Model#destroy so that it returns self, not the result of after_destroy (jeremyevans) * Define Model column accessors in set_dataset, so they should always be avaiable, deprecate Model#method_missing (jeremyevans) * Add eager loading of associations via new sequel_core object graphing feature (jeremyevans) * Fix many_to_many associations with classes inside modules without an explicit join table (jeremyevans) * Allow creation of new records that don't have primary keys when the cache is on (jeremyevans) (#213) * Make Model#initialize, Model#set, and Model#update_with_params invulnerable to memory exhaustion (jeremyevans) (#210) * Add Model.str_columns, which gives a list of columns as frozen strings (jeremyevans) * Remove pretty_table.rb from sequel, since it is in sequel_core (jeremyevans) === 1.4.0 (2008-04-08) * Don't mark a column as changed unless the new value is different from the current value (tamas.denes, jeremyevans) (#203). * Switch gem name from "sequel_model" to just "sequel", which required large version bump (jeremyevans). * Add :select option to many_to_many associations, default to selecting only the associated model table and not the join table (jeremyevans) (#208). * Add :reciprocal one_to_many association option, for setting corresponding many_to_one instance variable (jeremyevans). * Add eager loading implementation (jeremyevans). * Change *_to_many associations so that the all associations are considered :cache=>true (jeremyevans). * Fix associations with block arguments and :cache=>true (jeremyevans). === 0.5.0.2 (2008-03-12) * More fixes for Model.associate to accept strings and symbols as class references. === 0.5.0.1 (2008-03-09) * Fixed Model.associate to accept class and class name in :class option. === 0.5 (2008-03-08) * Merged new associations branch into trunk. * Rewrote RDoc for associations. * Added has_and_belongs_to_many alias for many_to_many. * Added support for optional dataset block. * Added :order option to order association datasets. * Added :cache option to return and cache array of objects for association. * Changed one_to_many, many_to_many associations to return dataset by default. * Added has_many, belongs_to aliases. * Refactored associations code. * Added deprecations for old-style relations. * Completed specs for new associations code. * New associations code by Jeremy Evans (replaces relations code.) === 0.4.2 (2008-02-29) * Fixed one_to_many implicit key to work correctly for namespaced classes (#167). * Fixed Model.db= to affect the underlying dataset (#183). * Fixed Model.implicit_table_name to disregard namespaces. === 0.4.1 (2008-02-10) * Implemented Model#inspect (#151). * Changed Model#method_missing to short-circuit and bypass checking #columns if the values hash already contains the relevant column (#150). * Updated to reflect changes in sequel_core (Dataset#clone_merge renamed to Dataset#clone). === 0.4 (2008-02-05) * Fixed Model#set to work with string keys (#143). * Fixed Model.create to correctly initialize instances marked as new (#135). * Fixed Model#initialize to convert string keys into symbol keys. This also fixes problem with validating objects initialized with string keys (#136). === 0.3.3 (2008-01-25) * Finalized support for virtual attributes. === 0.3.2.1 (2008-01-24) * Fixed Model.dataset to correctly set the dataset if using implicit naming or inheriting the superclass dataset (thanks celldee). === 0.3.2 (2008-01-24) * Added Model#update_with_params method with support for virtual attributes and auto-filtering of unrelated parameters, and changed Model.create_with_params to support virtual attributes (#128). * Cleaned up gem spec (#132). * Removed validations code. Now relying on validations in assistance gem. === 0.3.1 (2008-01-21) * Changed Model.dataset to use inflector to pluralize the class name into the table name. Works in similar fashion to table names in AR or DM. === 0.3 (2008-01-18) * Implemented Validatable::Errors class. * Added Model#reload as alias to Model#refresh. * Changed Model.create to accept a block (#126). * Rewrote validations. * Fixed Model#initialize to accept nil values (#115). === 0.2 (2008-01-02) * Removed deprecated Model.recreate_table method. * Removed deprecated :class and :on options from one_to_many macro. * Removed deprecated :class option from one_to_one macro. * Removed deprecated Model#pkey method. * Changed dependency to sequel_core. * Removed examples from sequel core. * Additional specs. We're now at 100% coverage. * Refactored hooks code. Hooks are now inheritable, and can be defined by supplying a block or a method name, or by overriding the hook instance method. Hook chains can now be broken by returning false (#111, #112). === 0.1 (2007-12-30) * Moved model code from sequel into separate model sub-project.