forked from cardmagic/dm-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
144 lines (136 loc) · 7.67 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
-- 0.1.0
* Initial Public Release
-- 0.1.1
* Removed /lib/data_mapper/extensions
* Moved ActiveRecordImpersonation into DataMapper::Support module
* Moved CallbackHelper methods into DataMapper::Base class
* Moved ValidationHelper into DataMapper::Validations module
* Removed LoadedSet since it's not necessary for it to reference the Database, so it's nothing more than an array now; Replaced with Array
* Modified data_mapper.rb to load DataMapper::Support::Enumerable
* Modified example.rb and performance.rb to require 'lib/data_mapper' instead of modifying $LOADPATH
* Created SqlAdapter base-class
* Refactored MysqlAdapter to use SqlAdapter superclass
* Refactored Sqlite3Adapter to use SqlAdapter superclass
* Moved /lib/data_mapper/queries to /lib/data_mapper/adapters/sql/queries
* Moved Connection, Result and Reader classes along with Coersion and Quoting modules to DataMapper::Adapters::Sql module
* Moved DataMapper::Adapters::Sql::Queries to ::Commands
* Moved Mappings to SqlAdapter
* Added monolithic DeleteCommand
* Added monolithic SaveCommand
* Added TableExistsCommand
* Moved save/delete logic out of Session
* Added create-table functionality to SaveCommand
* Cleaned up Session; #find no longer supported, use #all or #first
* Moved object materialization into LoadCommand
* Migrated Sqlite3Adapter::Commands
* Added Session#query support back in
* Removed Connection/Reader/Result classes
* Set DataMapper::Base#key on load to avoid double-hit against Schema
* Added DataMapper::Support::Struct for increased Session#query performance
* Added AdvancedHasManyAssociation (preview status)
* Added benchmarks comparing ActiveRecord::Base::find_by_sql with Session#query
-- 0.2.0
* AdvancedHasManyAssociation now functional for fetches
* AdvancedHasManyAssociation renamed to HasNAssociation
* HasManyAssociation refactored to use HasNAssociation superclass
* Slight spec tweaks to accomodate the updates
* HasOneAssociation refactored to use HasNAssociation superclass
* Added HasAndBelongsToManyAssociation, using HasNAssociation as a basis; Need to add corresponding SQL generation code in AdvancedLoadCommand
* Added spec for habtm query generation
* HasNAssociation#foreign_key returns a DataMapper::Adapters::Sql::Mappings::Column instance instead of a raw String now
* Added table, association, association_table and to_sql methods to HasNAssociation
* Added associations_spec.rb
* Added a forced table-recreation to spec_helper.rb so the tests could run with a clean version of the database, including any new columns added to the models
* Added HasAndBelongsToManyAssociation#to_sql (all current specs pass now!)
* Minor tweaks to Callbacks
* Added CallbacksHelper to declare class-method ::callbacks on DataMapper::Base
* Implemented before_validate and after_validate hooks in ValidationHelper
* Minor documentation additions in callbacks.rb
* Added callbacks_spec
* Moved class-method declarations for built-in callbacks to the callbacks helper instead of DataMapper::Base
* Renamed :before/after_validate callback to :before/after_validation to match ActiveRecord
* Callbacks#add now accepts a Symbol which maps a callback to a method call on the targetted instance, also added a spec to verify this behavior
* Documented callbacks.rb
* Added DataMapper::Associations::Reference class
* Documented DataMapper::Associations::Reference class
* Upgraded BelongsToAssociation to new style
* Added AssociationsSet to handle simple "last-in" for association bindings
* Fixed extra spec loading
* Added *Association#columns
* Some refactoring in AdvancedLoadCommand regarding :include options
* Added support for class-less Mappings::Table instances, with just a string name
* HasAndBelongsToManyAssociation#join_table #left_foreign_key and #right_foreign_key reference actual Table or Column objects now
* Added :shallow_include option for HABTM joins in AdvancedLoadCommand and corresponding spec
* Added Commands::AdvancedConditions
* Added ORDER, LIMIT, OFFSET and WHERE support to AdvancedLoadCommand
* Renamed spec/has_many.rb to spec/has_many_spec.rb
* Tweaked the loading of has_many relationships; big performance boost; got rid of an extra query
* Added EmbeddedValue support, and accompanying spec
* Fleshed out AdvancedConditions a bit; added conditions_spec.rb
* Added more AdvancedConditions specs
* Added Loader to handle multi-instanced rows
* AdvancedLoadCommand replaced LoadCommand; down to 3 failing specs
* All specs pass
* Added :intercept_load finder option and accompanying spec
* Modified :intercept_load block signature to |instance,columns,row|
* HasAndBelongsToMany works, all specs pass
* Fixed a couple bugs with keys; Added DataMapper::Base#key= method
* Made DataMapper::Base#lazy_load! a little more flexible
* Removed LoadCommand overwrites from MysqlAdapter
* Default Database#single_threaded mode is true now
* Removed MysqlAdapter#initialize, which only served to setup the connections, moved to SqlAdapter
* Added SqlAdapter#create_connection and SqlAdapter#close_connection abstract methods
* Added MysqlAdapter#create_connection and MysqlAdapter#close_connection concrete methods
* Made SqlAdapter#connection a concrete method (instead of abstract), with support for single_threaded operation
* Database#setup now takes a Hash of options instead of a block-initializer
* Validation chaining should work for all association types
* Save chaining should work for has_many associations
* Added benchmarks for in-session performance to performance.rb
* Removed block conditions; They're slower and don't offer any real advantages
* Removed DeleteCommand
* Removed SaveCommand
* Removed TableExistsCommand
* Session renamed to Context
* Most command implementations moved to methods in SqlAdapter
* Removed UnitOfWork module, instead moving a slightly refactored implementation into Base
-- 0.2.1
* Added :float column support
* Added association proxies: ie: Zoo.first.exhibits.animals
* Columns stored in SortedSet
* Swig files are no longer RDOCed
* Added :date column support
* BUG: Fixed UTC issues with datetimes
* Added #to_yaml method
* Added #to_xml method
* Added #to_json method
* BUG: Fixed HasManyAssociation::Set#inspect
* BUG: Fixed #reload!
* BUG: Column copy for STI moved into Table#initialize to better handle STI with multiple mapped databases
* BUG: before_create callbacks moved in the execution flow since they weren't guaranteed to fire before
* Threading enhancements: Removed single_threaded_mode, #database block form adjusted for thread-safety
* BUG: Fixed String#blank? when a multi-line string contained a blank line (thanks zapnap!)
* Performance enhancements: (thanks wycats!)
-- 0.2.2
* Removed C extension bundles and log files from package
-- 0.2.3
* Added String#t for translation and overrides for default validation messages
* Give credit where it's due: zapnap, not pimpmaster, submitted the String#blank? patch. My bad. :-(
* MAJOR: Resolve issue with non-unique-hash values and #dirty?; now frozen original values are stored instead
* Added Base#update_attributes
* MAJOR: Queries are now passed to the database drivers in a parameterized fashion
* Updated PostgreSQL driver and adapter to current
-- 0.2.4
* Bug fixes
* Added paranoia
-- 0.2.5
* has_one bugfixes
* Added syntax for setting CHECK-constraints directly in your properties (Postgres)
* You can now set indexes with :index => true and :index => :unique
* Support for composite indexes (thanks to Jeffrey Gelens)
* Add composite scope to validates_uniqueness
* Added private/protected properties
* Remove HasOneAssociation, Make HasManyAssociation impersonate has_one relationships
* Added #get method
* Persistence module added, inheriting from DataMapper::Base no longer necessary
-- 0.3.0
* HasManyAssociation::Set now has a nil? method, so we can do stuff like cage.animal.nil?