sam-dm-core 0.9.6
Sign up to get free protection for your applications and to get access to all the features.
- data/.autotest +26 -0
- data/CONTRIBUTING +51 -0
- data/FAQ +92 -0
- data/History.txt +145 -0
- data/MIT-LICENSE +22 -0
- data/Manifest.txt +125 -0
- data/QUICKLINKS +12 -0
- data/README.txt +143 -0
- data/Rakefile +30 -0
- data/SPECS +63 -0
- data/TODO +1 -0
- data/lib/dm-core.rb +224 -0
- data/lib/dm-core/adapters.rb +4 -0
- data/lib/dm-core/adapters/abstract_adapter.rb +202 -0
- data/lib/dm-core/adapters/data_objects_adapter.rb +707 -0
- data/lib/dm-core/adapters/mysql_adapter.rb +136 -0
- data/lib/dm-core/adapters/postgres_adapter.rb +188 -0
- data/lib/dm-core/adapters/sqlite3_adapter.rb +105 -0
- data/lib/dm-core/associations.rb +199 -0
- data/lib/dm-core/associations/many_to_many.rb +147 -0
- data/lib/dm-core/associations/many_to_one.rb +107 -0
- data/lib/dm-core/associations/one_to_many.rb +309 -0
- data/lib/dm-core/associations/one_to_one.rb +61 -0
- data/lib/dm-core/associations/relationship.rb +218 -0
- data/lib/dm-core/associations/relationship_chain.rb +81 -0
- data/lib/dm-core/auto_migrations.rb +113 -0
- data/lib/dm-core/collection.rb +638 -0
- data/lib/dm-core/dependency_queue.rb +31 -0
- data/lib/dm-core/hook.rb +11 -0
- data/lib/dm-core/identity_map.rb +45 -0
- data/lib/dm-core/is.rb +16 -0
- data/lib/dm-core/logger.rb +232 -0
- data/lib/dm-core/migrations/destructive_migrations.rb +17 -0
- data/lib/dm-core/migrator.rb +29 -0
- data/lib/dm-core/model.rb +471 -0
- data/lib/dm-core/naming_conventions.rb +84 -0
- data/lib/dm-core/property.rb +673 -0
- data/lib/dm-core/property_set.rb +162 -0
- data/lib/dm-core/query.rb +625 -0
- data/lib/dm-core/repository.rb +159 -0
- data/lib/dm-core/resource.rb +637 -0
- data/lib/dm-core/scope.rb +58 -0
- data/lib/dm-core/support.rb +7 -0
- data/lib/dm-core/support/array.rb +13 -0
- data/lib/dm-core/support/assertions.rb +8 -0
- data/lib/dm-core/support/errors.rb +23 -0
- data/lib/dm-core/support/kernel.rb +7 -0
- data/lib/dm-core/support/symbol.rb +41 -0
- data/lib/dm-core/transaction.rb +267 -0
- data/lib/dm-core/type.rb +160 -0
- data/lib/dm-core/type_map.rb +80 -0
- data/lib/dm-core/types.rb +19 -0
- data/lib/dm-core/types/boolean.rb +7 -0
- data/lib/dm-core/types/discriminator.rb +34 -0
- data/lib/dm-core/types/object.rb +24 -0
- data/lib/dm-core/types/paranoid_boolean.rb +34 -0
- data/lib/dm-core/types/paranoid_datetime.rb +33 -0
- data/lib/dm-core/types/serial.rb +9 -0
- data/lib/dm-core/types/text.rb +10 -0
- data/lib/dm-core/version.rb +3 -0
- data/script/all +5 -0
- data/script/performance.rb +203 -0
- data/script/profile.rb +87 -0
- data/spec/integration/association_spec.rb +1371 -0
- data/spec/integration/association_through_spec.rb +203 -0
- data/spec/integration/associations/many_to_many_spec.rb +449 -0
- data/spec/integration/associations/many_to_one_spec.rb +163 -0
- data/spec/integration/associations/one_to_many_spec.rb +151 -0
- data/spec/integration/auto_migrations_spec.rb +398 -0
- data/spec/integration/collection_spec.rb +1069 -0
- data/spec/integration/data_objects_adapter_spec.rb +32 -0
- data/spec/integration/dependency_queue_spec.rb +58 -0
- data/spec/integration/model_spec.rb +127 -0
- data/spec/integration/mysql_adapter_spec.rb +85 -0
- data/spec/integration/postgres_adapter_spec.rb +731 -0
- data/spec/integration/property_spec.rb +233 -0
- data/spec/integration/query_spec.rb +506 -0
- data/spec/integration/repository_spec.rb +57 -0
- data/spec/integration/resource_spec.rb +475 -0
- data/spec/integration/sqlite3_adapter_spec.rb +352 -0
- data/spec/integration/sti_spec.rb +208 -0
- data/spec/integration/strategic_eager_loading_spec.rb +138 -0
- data/spec/integration/transaction_spec.rb +75 -0
- data/spec/integration/type_spec.rb +271 -0
- data/spec/lib/logging_helper.rb +18 -0
- data/spec/lib/mock_adapter.rb +27 -0
- data/spec/lib/model_loader.rb +91 -0
- data/spec/lib/publicize_methods.rb +28 -0
- data/spec/models/vehicles.rb +34 -0
- data/spec/models/zoo.rb +47 -0
- data/spec/spec.opts +3 -0
- data/spec/spec_helper.rb +86 -0
- data/spec/unit/adapters/abstract_adapter_spec.rb +133 -0
- data/spec/unit/adapters/adapter_shared_spec.rb +15 -0
- data/spec/unit/adapters/data_objects_adapter_spec.rb +628 -0
- data/spec/unit/adapters/postgres_adapter_spec.rb +133 -0
- data/spec/unit/associations/many_to_many_spec.rb +17 -0
- data/spec/unit/associations/many_to_one_spec.rb +152 -0
- data/spec/unit/associations/one_to_many_spec.rb +393 -0
- data/spec/unit/associations/one_to_one_spec.rb +7 -0
- data/spec/unit/associations/relationship_spec.rb +71 -0
- data/spec/unit/associations_spec.rb +242 -0
- data/spec/unit/auto_migrations_spec.rb +111 -0
- data/spec/unit/collection_spec.rb +182 -0
- data/spec/unit/data_mapper_spec.rb +35 -0
- data/spec/unit/identity_map_spec.rb +126 -0
- data/spec/unit/is_spec.rb +80 -0
- data/spec/unit/migrator_spec.rb +33 -0
- data/spec/unit/model_spec.rb +339 -0
- data/spec/unit/naming_conventions_spec.rb +36 -0
- data/spec/unit/property_set_spec.rb +83 -0
- data/spec/unit/property_spec.rb +753 -0
- data/spec/unit/query_spec.rb +530 -0
- data/spec/unit/repository_spec.rb +93 -0
- data/spec/unit/resource_spec.rb +626 -0
- data/spec/unit/scope_spec.rb +142 -0
- data/spec/unit/transaction_spec.rb +493 -0
- data/spec/unit/type_map_spec.rb +114 -0
- data/spec/unit/type_spec.rb +119 -0
- data/tasks/ci.rb +68 -0
- data/tasks/dm.rb +63 -0
- data/tasks/doc.rb +20 -0
- data/tasks/gemspec.rb +23 -0
- data/tasks/hoe.rb +46 -0
- data/tasks/install.rb +20 -0
- metadata +216 -0
data/.autotest
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
Autotest.add_hook :initialize do |at|
|
2
|
+
ignore = %w[ .git burn www log plugins script tasks bin CHANGELOG FAQ MIT-LICENSE PERFORMANCE QUICKLINKS README ]
|
3
|
+
|
4
|
+
unless ENV['AUTOTEST'] == 'integration'
|
5
|
+
ignore << 'spec/integration'
|
6
|
+
end
|
7
|
+
|
8
|
+
ignore.each do |exception|
|
9
|
+
at.add_exception(exception)
|
10
|
+
end
|
11
|
+
|
12
|
+
at.clear_mappings
|
13
|
+
|
14
|
+
at.add_mapping(%r{^spec/.+_spec\.rb$}) do |filename,_|
|
15
|
+
filename
|
16
|
+
end
|
17
|
+
|
18
|
+
at.add_mapping(%r{^lib/data_mapper/(.+)\.rb$}) do |_,match|
|
19
|
+
[ "spec/unit/#{match[1]}_spec.rb" ] +
|
20
|
+
at.files_matching(%r{^spec/integration/.+_spec\.rb$})
|
21
|
+
end
|
22
|
+
|
23
|
+
at.add_mapping(%r{^spec/spec_helper\.rb$}) do
|
24
|
+
at.files_matching(%r{^spec/.+_spec\.rb$})
|
25
|
+
end
|
26
|
+
end
|
data/CONTRIBUTING
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# NOTE: This is a work in progress. As of July 24, it applies only to dm-core.
|
2
|
+
|
3
|
+
# Contributing to Edge DataMapper
|
4
|
+
|
5
|
+
We have now implemented Hoe throughout the DataMapper suite, so there will be a
|
6
|
+
handful of new procedures for contributing to our git repositories. I'll give
|
7
|
+
you a run through of how to set up your machine, and then provide a few
|
8
|
+
commands that should be run before committing or pushing changes.
|
9
|
+
|
10
|
+
## Installing and configuring Hoe
|
11
|
+
|
12
|
+
The first step is to install hoe. You'll need at least version 1.7.0.
|
13
|
+
|
14
|
+
(sudo) gem install hoe --include-dependencies
|
15
|
+
|
16
|
+
Now you'll need to configure hoe. You'll need to run this from inside of
|
17
|
+
dm-core, or one of the other DataMapper projects.
|
18
|
+
|
19
|
+
rake config_hoe
|
20
|
+
|
21
|
+
The only thing you should need to change is the exclude regular expression,
|
22
|
+
which needs to look like this:
|
23
|
+
|
24
|
+
exclude: !ruby/regexp /tmp$|CVS|\.svn|\.git|.+\.gemspec/
|
25
|
+
|
26
|
+
Now you have the correct setup for contributing.
|
27
|
+
|
28
|
+
## Before committing changes
|
29
|
+
|
30
|
+
Before you commit changes, you must verify that `Manifest.txt` (the file which
|
31
|
+
contains the names of every file to be included in a gem release) and
|
32
|
+
`[project-name].gemspec` are up to date. We have create a rake task to make
|
33
|
+
this easy:
|
34
|
+
|
35
|
+
rake gemspec
|
36
|
+
|
37
|
+
This will check `Manifest.txt` (using Hoe's `rake check_manifest`) to ensure
|
38
|
+
there are no differences between the files in the project, and those listed in
|
39
|
+
the manifest. If there is a difference, it will display a warning and a list of
|
40
|
+
the differences in `diff` format.
|
41
|
+
|
42
|
+
If the changes in the diff are correct, then you can run the following command
|
43
|
+
to update the manifest.
|
44
|
+
|
45
|
+
rake check_manifest | patch
|
46
|
+
|
47
|
+
If there are files you do not want added to the manifest, then you should
|
48
|
+
remove the files from the project, and then run `rake gemspec` again.
|
49
|
+
|
50
|
+
If `rake gemspec` says it was successful, then you can proceed with committing
|
51
|
+
and pushing your changes.
|
data/FAQ
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
:include:QUICKLINKS
|
2
|
+
|
3
|
+
= FAQ
|
4
|
+
|
5
|
+
=== So where's my :id column?
|
6
|
+
|
7
|
+
DataMapper will NOT create an auto-incrementing <tt>:id</tt> key for you
|
8
|
+
automatically, so you'll need to either explicitly create one with
|
9
|
+
|
10
|
+
property :id, Serial
|
11
|
+
|
12
|
+
You can choose to use a natural key by doing
|
13
|
+
|
14
|
+
property :slug, String, :key => true
|
15
|
+
|
16
|
+
Remember, DataMapper supports multiple keys ("composite keys"), so if your
|
17
|
+
model has two or more keys, no big deal
|
18
|
+
|
19
|
+
property :store_id, Integer, :key => true
|
20
|
+
property :invoice_id, Integer, :key => true
|
21
|
+
|
22
|
+
=== How do I make a model paranoid?
|
23
|
+
|
24
|
+
Create a property and make it a ParanoidDateTime or ParanoidBoolean type.
|
25
|
+
|
26
|
+
property :deleted_at, ParanoidDateTime
|
27
|
+
property :deleted, ParanoidBoolean
|
28
|
+
|
29
|
+
All of your calls to <tt>##all()</tt>, <tt>##first()</tt> will be scoped
|
30
|
+
with <tt>:deleted_at => nil</tt> or <tt>:deleted => false</tt>. Plus,
|
31
|
+
you won't see deleted objects in your associations.
|
32
|
+
|
33
|
+
=== Does DataMapper do Single Table Inheritance?
|
34
|
+
|
35
|
+
This is what the Discriminator data-type is for:
|
36
|
+
|
37
|
+
class Person
|
38
|
+
include DataMapper::Resource
|
39
|
+
property :id, Serial
|
40
|
+
property :type, Discriminator ## other shared properties here
|
41
|
+
end
|
42
|
+
|
43
|
+
class Salesperson < Person; end
|
44
|
+
|
45
|
+
You can claim a column to have the type <tt>Discriminator</tt> and DataMapper will
|
46
|
+
automatically drop the class name of the inherited classes into that field of
|
47
|
+
the data-store.
|
48
|
+
|
49
|
+
=== How do I run my own commands?
|
50
|
+
|
51
|
+
repository.adapter.query("select * from users where clue > 0")
|
52
|
+
repository(:integration).adapter.query("select * from users where clue > 0")
|
53
|
+
|
54
|
+
This does not return any Users (har har), but rather Struct's that will quack
|
55
|
+
like Users. They'll be read-only as well.
|
56
|
+
|
57
|
+
<tt>repository.adapter.query</tt> shouldn't be used if you aren't expecting a result set
|
58
|
+
back. If you want to just execute something against the database, use
|
59
|
+
<tt>repository.adapter.execute</tt> instead.
|
60
|
+
|
61
|
+
|
62
|
+
=== Can I get an query log of what DataMapper is issuing?
|
63
|
+
|
64
|
+
An example of how to modify an existing logger:
|
65
|
+
|
66
|
+
DataMapper.logger.set_log(STDOUT, :debug)
|
67
|
+
|
68
|
+
An example of how to create new logger:
|
69
|
+
|
70
|
+
DataMapper::Logger.new(STDOUT, :info)
|
71
|
+
|
72
|
+
To send a message to the DataMapper logger:
|
73
|
+
|
74
|
+
DataMapper.logger.debug("something")
|
75
|
+
DataMapper.logger.info ("something")
|
76
|
+
DataMapper.logger.warn ("something")
|
77
|
+
DataMapper.logger.error("something")
|
78
|
+
DataMapper.logger.fatal("something")
|
79
|
+
|
80
|
+
|
81
|
+
=== I want to run the specs, but I have a custom database setup
|
82
|
+
|
83
|
+
For example, if you installed MySQL using MacPorts, your socket may be located
|
84
|
+
at /opt/local/var/run/mysql5/mysqld.sock instead of /tmp/mysql.sock
|
85
|
+
|
86
|
+
In that case, setup an environment variable in your shell before running the
|
87
|
+
specs:
|
88
|
+
export MYSQL_SPEC_URI="mysql://localhost/dm_core_test?socket=/opt/local/var/run/mysql5/mysqld.sock"
|
89
|
+
rake spec
|
90
|
+
|
91
|
+
Using another kind of database? Note that spec_helper.rb will also look for
|
92
|
+
SQLITE3_SPEC_URI AND POSTGRES_SPEC_URI.
|
data/History.txt
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
|
2
|
+
== 0.3.0
|
3
|
+
* HasManyAssociation::Set now has a nil? method, so we can do stuff like cage.animal.nil?
|
4
|
+
|
5
|
+
== 0.2.5
|
6
|
+
* has_one bugfixes
|
7
|
+
* Added syntax for setting CHECK-constraints directly in your properties (Postgres)
|
8
|
+
* You can now set indexes with :index => true and :index => :unique
|
9
|
+
* Support for composite indexes (thanks to Jeffrey Gelens)
|
10
|
+
* Add composite scope to validates_uniqueness
|
11
|
+
* Added private/protected properties
|
12
|
+
* Remove HasOneAssociation, Make HasManyAssociation impersonate has_one relationships
|
13
|
+
* Added #get method
|
14
|
+
* Persistence module added, inheriting from DataMapper::Base no longer necessary
|
15
|
+
|
16
|
+
== 0.2.4
|
17
|
+
* Bug fixes
|
18
|
+
* Added paranoia
|
19
|
+
|
20
|
+
== 0.2.3
|
21
|
+
* Added String#t for translation and overrides for default validation messages
|
22
|
+
* Give credit where it's due: zapnap, not pimpmaster, submitted the String#blank? patch. My bad. :-(
|
23
|
+
* MAJOR: Resolve issue with non-unique-hash values and #dirty?; now frozen original values are stored instead
|
24
|
+
* Added Base#update_attributes
|
25
|
+
* MAJOR: Queries are now passed to the database drivers in a parameterized fashion
|
26
|
+
* Updated PostgreSQL driver and adapter to current
|
27
|
+
|
28
|
+
== 0.2.2
|
29
|
+
* Removed C extension bundles and log files from package
|
30
|
+
|
31
|
+
== 0.2.1
|
32
|
+
* Added :float column support
|
33
|
+
* Added association proxies: ie: Zoo.first.exhibits.animals
|
34
|
+
* Columns stored in SortedSet
|
35
|
+
* Swig files are no longer RDOCed
|
36
|
+
* Added :date column support
|
37
|
+
* BUG: Fixed UTC issues with datetimes
|
38
|
+
* Added #to_yaml method
|
39
|
+
* Added #to_xml method
|
40
|
+
* Added #to_json method
|
41
|
+
* BUG: Fixed HasManyAssociation::Set#inspect
|
42
|
+
* BUG: Fixed #reload!
|
43
|
+
* BUG: Column copy for STI moved into Table#initialize to better handle STI with multiple mapped databases
|
44
|
+
* BUG: before_create callbacks moved in the execution flow since they weren't guaranteed to fire before
|
45
|
+
* Threading enhancements: Removed single_threaded_mode, #database block form adjusted for thread-safety
|
46
|
+
* BUG: Fixed String#blank? when a multi-line string contained a blank line (thanks zapnap!)
|
47
|
+
* Performance enhancements: (thanks wycats!)
|
48
|
+
|
49
|
+
== 0.2.0
|
50
|
+
* AdvancedHasManyAssociation now functional for fetches
|
51
|
+
* AdvancedHasManyAssociation renamed to HasNAssociation
|
52
|
+
* HasManyAssociation refactored to use HasNAssociation superclass
|
53
|
+
* Slight spec tweaks to accomodate the updates
|
54
|
+
* HasOneAssociation refactored to use HasNAssociation superclass
|
55
|
+
* Added HasAndBelongsToManyAssociation, using HasNAssociation as a basis; Need to add corresponding SQL generation code in AdvancedLoadCommand
|
56
|
+
* Added spec for habtm query generation
|
57
|
+
* HasNAssociation#foreign_key returns a DataMapper::Adapters::Sql::Mappings::Column instance instead of a raw String now
|
58
|
+
* Added table, association, association_table and to_sql methods to HasNAssociation
|
59
|
+
* Added associations_spec.rb
|
60
|
+
* 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
|
61
|
+
* Added HasAndBelongsToManyAssociation#to_sql (all current specs pass now!)
|
62
|
+
* Minor tweaks to Callbacks
|
63
|
+
* Added CallbacksHelper to declare class-method ::callbacks on DataMapper::Base
|
64
|
+
* Implemented before_validate and after_validate hooks in ValidationHelper
|
65
|
+
* Minor documentation additions in callbacks.rb
|
66
|
+
* Added callbacks_spec
|
67
|
+
* Moved class-method declarations for built-in callbacks to the callbacks helper instead of DataMapper::Base
|
68
|
+
* Renamed :before/after_validate callback to :before/after_validation to match ActiveRecord
|
69
|
+
* 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
|
70
|
+
* Documented callbacks.rb
|
71
|
+
* Added DataMapper::Associations::Reference class
|
72
|
+
* Documented DataMapper::Associations::Reference class
|
73
|
+
* Upgraded BelongsToAssociation to new style
|
74
|
+
* Added AssociationsSet to handle simple "last-in" for association bindings
|
75
|
+
* Fixed extra spec loading
|
76
|
+
* Added *Association#columns
|
77
|
+
* Some refactoring in AdvancedLoadCommand regarding :include options
|
78
|
+
* Added support for class-less Mappings::Table instances, with just a string name
|
79
|
+
* HasAndBelongsToManyAssociation#join_table #left_foreign_key and #right_foreign_key reference actual Table or Column objects now
|
80
|
+
* Added :shallow_include option for HABTM joins in AdvancedLoadCommand and corresponding spec
|
81
|
+
* Added Commands::AdvancedConditions
|
82
|
+
* Added ORDER, LIMIT, OFFSET and WHERE support to AdvancedLoadCommand
|
83
|
+
* Renamed spec/has_many.rb to spec/has_many_spec.rb
|
84
|
+
* Tweaked the loading of has_many relationships; big performance boost; got rid of an extra query
|
85
|
+
* Added EmbeddedValue support, and accompanying spec
|
86
|
+
* Fleshed out AdvancedConditions a bit; added conditions_spec.rb
|
87
|
+
* Added more AdvancedConditions specs
|
88
|
+
* Added Loader to handle multi-instanced rows
|
89
|
+
* AdvancedLoadCommand replaced LoadCommand; down to 3 failing specs
|
90
|
+
* All specs pass
|
91
|
+
* Added :intercept_load finder option and accompanying spec
|
92
|
+
* Modified :intercept_load block signature to |instance,columns,row|
|
93
|
+
* HasAndBelongsToMany works, all specs pass
|
94
|
+
* Fixed a couple bugs with keys; Added DataMapper::Base#key= method
|
95
|
+
* Made DataMapper::Base#lazy_load! a little more flexible
|
96
|
+
* Removed LoadCommand overwrites from MysqlAdapter
|
97
|
+
* Default Database#single_threaded mode is true now
|
98
|
+
* Removed MysqlAdapter#initialize, which only served to setup the connections, moved to SqlAdapter
|
99
|
+
* Added SqlAdapter#create_connection and SqlAdapter#close_connection abstract methods
|
100
|
+
* Added MysqlAdapter#create_connection and MysqlAdapter#close_connection concrete methods
|
101
|
+
* Made SqlAdapter#connection a concrete method (instead of abstract), with support for single_threaded operation
|
102
|
+
* Database#setup now takes a Hash of options instead of a block-initializer
|
103
|
+
* Validation chaining should work for all association types
|
104
|
+
* Save chaining should work for has_many associations
|
105
|
+
* Added benchmarks for in-session performance to performance.rb
|
106
|
+
* Removed block conditions; They're slower and don't offer any real advantages
|
107
|
+
* Removed DeleteCommand
|
108
|
+
* Removed SaveCommand
|
109
|
+
* Removed TableExistsCommand
|
110
|
+
* Session renamed to Context
|
111
|
+
* Most command implementations moved to methods in SqlAdapter
|
112
|
+
* Removed UnitOfWork module, instead moving a slightly refactored implementation into Base
|
113
|
+
|
114
|
+
== 0.1.1
|
115
|
+
* Removed /lib/data_mapper/extensions
|
116
|
+
* Moved ActiveRecordImpersonation into DataMapper::Support module
|
117
|
+
* Moved CallbackHelper methods into DataMapper::Base class
|
118
|
+
* Moved ValidationHelper into DataMapper::Validations module
|
119
|
+
* 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
|
120
|
+
* Modified data_mapper.rb to load DataMapper::Support::Enumerable
|
121
|
+
* Modified example.rb and performance.rb to require 'lib/data_mapper' instead of modifying $LOADPATH
|
122
|
+
* Created SqlAdapter base-class
|
123
|
+
* Refactored MysqlAdapter to use SqlAdapter superclass
|
124
|
+
* Refactored Sqlite3Adapter to use SqlAdapter superclass
|
125
|
+
* Moved /lib/data_mapper/queries to /lib/data_mapper/adapters/sql/queries
|
126
|
+
* Moved Connection, Result and Reader classes along with Coersion and Quoting modules to DataMapper::Adapters::Sql module
|
127
|
+
* Moved DataMapper::Adapters::Sql::Queries to ::Commands
|
128
|
+
* Moved Mappings to SqlAdapter
|
129
|
+
* Added monolithic DeleteCommand
|
130
|
+
* Added monolithic SaveCommand
|
131
|
+
* Added TableExistsCommand
|
132
|
+
* Moved save/delete logic out of Session
|
133
|
+
* Added create-table functionality to SaveCommand
|
134
|
+
* Cleaned up Session; #find no longer supported, use #all or #first
|
135
|
+
* Moved object materialization into LoadCommand
|
136
|
+
* Migrated Sqlite3Adapter::Commands
|
137
|
+
* Added Session#query support back in
|
138
|
+
* Removed Connection/Reader/Result classes
|
139
|
+
* Set DataMapper::Base#key on load to avoid double-hit against Schema
|
140
|
+
* Added DataMapper::Support::Struct for increased Session#query performance
|
141
|
+
* Added AdvancedHasManyAssociation (preview status)
|
142
|
+
* Added benchmarks comparing ActiveRecord::Base::find_by_sql with Session#query
|
143
|
+
|
144
|
+
== 0.1.0
|
145
|
+
* Initial Public Release
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2007 Sam Smoot
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person
|
4
|
+
obtaining a copy of this software and associated documentation
|
5
|
+
files (the "Software"), to deal in the Software without
|
6
|
+
restriction, including without limitation the rights to use,
|
7
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the
|
9
|
+
Software is furnished to do so, subject to the following
|
10
|
+
conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
data/Manifest.txt
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
.autotest
|
2
|
+
CONTRIBUTING
|
3
|
+
FAQ
|
4
|
+
History.txt
|
5
|
+
MIT-LICENSE
|
6
|
+
Manifest.txt
|
7
|
+
QUICKLINKS
|
8
|
+
README.txt
|
9
|
+
Rakefile
|
10
|
+
SPECS
|
11
|
+
TODO
|
12
|
+
lib/dm-core.rb
|
13
|
+
lib/dm-core/adapters.rb
|
14
|
+
lib/dm-core/adapters/abstract_adapter.rb
|
15
|
+
lib/dm-core/adapters/data_objects_adapter.rb
|
16
|
+
lib/dm-core/adapters/mysql_adapter.rb
|
17
|
+
lib/dm-core/adapters/postgres_adapter.rb
|
18
|
+
lib/dm-core/adapters/sqlite3_adapter.rb
|
19
|
+
lib/dm-core/associations.rb
|
20
|
+
lib/dm-core/associations/many_to_many.rb
|
21
|
+
lib/dm-core/associations/many_to_one.rb
|
22
|
+
lib/dm-core/associations/one_to_many.rb
|
23
|
+
lib/dm-core/associations/one_to_one.rb
|
24
|
+
lib/dm-core/associations/relationship.rb
|
25
|
+
lib/dm-core/associations/relationship_chain.rb
|
26
|
+
lib/dm-core/auto_migrations.rb
|
27
|
+
lib/dm-core/collection.rb
|
28
|
+
lib/dm-core/dependency_queue.rb
|
29
|
+
lib/dm-core/hook.rb
|
30
|
+
lib/dm-core/identity_map.rb
|
31
|
+
lib/dm-core/is.rb
|
32
|
+
lib/dm-core/logger.rb
|
33
|
+
lib/dm-core/migrations/destructive_migrations.rb
|
34
|
+
lib/dm-core/migrator.rb
|
35
|
+
lib/dm-core/model.rb
|
36
|
+
lib/dm-core/naming_conventions.rb
|
37
|
+
lib/dm-core/property.rb
|
38
|
+
lib/dm-core/property_set.rb
|
39
|
+
lib/dm-core/query.rb
|
40
|
+
lib/dm-core/repository.rb
|
41
|
+
lib/dm-core/resource.rb
|
42
|
+
lib/dm-core/scope.rb
|
43
|
+
lib/dm-core/support.rb
|
44
|
+
lib/dm-core/support/array.rb
|
45
|
+
lib/dm-core/support/assertions.rb
|
46
|
+
lib/dm-core/support/errors.rb
|
47
|
+
lib/dm-core/support/kernel.rb
|
48
|
+
lib/dm-core/support/symbol.rb
|
49
|
+
lib/dm-core/transaction.rb
|
50
|
+
lib/dm-core/type.rb
|
51
|
+
lib/dm-core/type_map.rb
|
52
|
+
lib/dm-core/types.rb
|
53
|
+
lib/dm-core/types/boolean.rb
|
54
|
+
lib/dm-core/types/discriminator.rb
|
55
|
+
lib/dm-core/types/object.rb
|
56
|
+
lib/dm-core/types/paranoid_boolean.rb
|
57
|
+
lib/dm-core/types/paranoid_datetime.rb
|
58
|
+
lib/dm-core/types/serial.rb
|
59
|
+
lib/dm-core/types/text.rb
|
60
|
+
lib/dm-core/version.rb
|
61
|
+
script/all
|
62
|
+
script/performance.rb
|
63
|
+
script/profile.rb
|
64
|
+
spec/integration/association_spec.rb
|
65
|
+
spec/integration/association_through_spec.rb
|
66
|
+
spec/integration/associations/many_to_many_spec.rb
|
67
|
+
spec/integration/associations/many_to_one_spec.rb
|
68
|
+
spec/integration/associations/one_to_many_spec.rb
|
69
|
+
spec/integration/auto_migrations_spec.rb
|
70
|
+
spec/integration/collection_spec.rb
|
71
|
+
spec/integration/data_objects_adapter_spec.rb
|
72
|
+
spec/integration/dependency_queue_spec.rb
|
73
|
+
spec/integration/model_spec.rb
|
74
|
+
spec/integration/mysql_adapter_spec.rb
|
75
|
+
spec/integration/postgres_adapter_spec.rb
|
76
|
+
spec/integration/property_spec.rb
|
77
|
+
spec/integration/query_spec.rb
|
78
|
+
spec/integration/repository_spec.rb
|
79
|
+
spec/integration/resource_spec.rb
|
80
|
+
spec/integration/sqlite3_adapter_spec.rb
|
81
|
+
spec/integration/sti_spec.rb
|
82
|
+
spec/integration/strategic_eager_loading_spec.rb
|
83
|
+
spec/integration/transaction_spec.rb
|
84
|
+
spec/integration/type_spec.rb
|
85
|
+
spec/lib/logging_helper.rb
|
86
|
+
spec/lib/mock_adapter.rb
|
87
|
+
spec/lib/model_loader.rb
|
88
|
+
spec/lib/publicize_methods.rb
|
89
|
+
spec/models/vehicles.rb
|
90
|
+
spec/models/zoo.rb
|
91
|
+
spec/spec.opts
|
92
|
+
spec/spec_helper.rb
|
93
|
+
spec/unit/adapters/abstract_adapter_spec.rb
|
94
|
+
spec/unit/adapters/adapter_shared_spec.rb
|
95
|
+
spec/unit/adapters/data_objects_adapter_spec.rb
|
96
|
+
spec/unit/adapters/postgres_adapter_spec.rb
|
97
|
+
spec/unit/associations/many_to_many_spec.rb
|
98
|
+
spec/unit/associations/many_to_one_spec.rb
|
99
|
+
spec/unit/associations/one_to_many_spec.rb
|
100
|
+
spec/unit/associations/one_to_one_spec.rb
|
101
|
+
spec/unit/associations/relationship_spec.rb
|
102
|
+
spec/unit/associations_spec.rb
|
103
|
+
spec/unit/auto_migrations_spec.rb
|
104
|
+
spec/unit/collection_spec.rb
|
105
|
+
spec/unit/data_mapper_spec.rb
|
106
|
+
spec/unit/identity_map_spec.rb
|
107
|
+
spec/unit/is_spec.rb
|
108
|
+
spec/unit/migrator_spec.rb
|
109
|
+
spec/unit/model_spec.rb
|
110
|
+
spec/unit/naming_conventions_spec.rb
|
111
|
+
spec/unit/property_set_spec.rb
|
112
|
+
spec/unit/property_spec.rb
|
113
|
+
spec/unit/query_spec.rb
|
114
|
+
spec/unit/repository_spec.rb
|
115
|
+
spec/unit/resource_spec.rb
|
116
|
+
spec/unit/scope_spec.rb
|
117
|
+
spec/unit/transaction_spec.rb
|
118
|
+
spec/unit/type_map_spec.rb
|
119
|
+
spec/unit/type_spec.rb
|
120
|
+
tasks/ci.rb
|
121
|
+
tasks/dm.rb
|
122
|
+
tasks/doc.rb
|
123
|
+
tasks/gemspec.rb
|
124
|
+
tasks/hoe.rb
|
125
|
+
tasks/install.rb
|