sam-dm-core 0.9.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. data/.autotest +26 -0
  2. data/CONTRIBUTING +51 -0
  3. data/FAQ +92 -0
  4. data/History.txt +145 -0
  5. data/MIT-LICENSE +22 -0
  6. data/Manifest.txt +125 -0
  7. data/QUICKLINKS +12 -0
  8. data/README.txt +143 -0
  9. data/Rakefile +30 -0
  10. data/SPECS +63 -0
  11. data/TODO +1 -0
  12. data/lib/dm-core.rb +224 -0
  13. data/lib/dm-core/adapters.rb +4 -0
  14. data/lib/dm-core/adapters/abstract_adapter.rb +202 -0
  15. data/lib/dm-core/adapters/data_objects_adapter.rb +707 -0
  16. data/lib/dm-core/adapters/mysql_adapter.rb +136 -0
  17. data/lib/dm-core/adapters/postgres_adapter.rb +188 -0
  18. data/lib/dm-core/adapters/sqlite3_adapter.rb +105 -0
  19. data/lib/dm-core/associations.rb +199 -0
  20. data/lib/dm-core/associations/many_to_many.rb +147 -0
  21. data/lib/dm-core/associations/many_to_one.rb +107 -0
  22. data/lib/dm-core/associations/one_to_many.rb +309 -0
  23. data/lib/dm-core/associations/one_to_one.rb +61 -0
  24. data/lib/dm-core/associations/relationship.rb +218 -0
  25. data/lib/dm-core/associations/relationship_chain.rb +81 -0
  26. data/lib/dm-core/auto_migrations.rb +113 -0
  27. data/lib/dm-core/collection.rb +638 -0
  28. data/lib/dm-core/dependency_queue.rb +31 -0
  29. data/lib/dm-core/hook.rb +11 -0
  30. data/lib/dm-core/identity_map.rb +45 -0
  31. data/lib/dm-core/is.rb +16 -0
  32. data/lib/dm-core/logger.rb +232 -0
  33. data/lib/dm-core/migrations/destructive_migrations.rb +17 -0
  34. data/lib/dm-core/migrator.rb +29 -0
  35. data/lib/dm-core/model.rb +471 -0
  36. data/lib/dm-core/naming_conventions.rb +84 -0
  37. data/lib/dm-core/property.rb +673 -0
  38. data/lib/dm-core/property_set.rb +162 -0
  39. data/lib/dm-core/query.rb +625 -0
  40. data/lib/dm-core/repository.rb +159 -0
  41. data/lib/dm-core/resource.rb +637 -0
  42. data/lib/dm-core/scope.rb +58 -0
  43. data/lib/dm-core/support.rb +7 -0
  44. data/lib/dm-core/support/array.rb +13 -0
  45. data/lib/dm-core/support/assertions.rb +8 -0
  46. data/lib/dm-core/support/errors.rb +23 -0
  47. data/lib/dm-core/support/kernel.rb +7 -0
  48. data/lib/dm-core/support/symbol.rb +41 -0
  49. data/lib/dm-core/transaction.rb +267 -0
  50. data/lib/dm-core/type.rb +160 -0
  51. data/lib/dm-core/type_map.rb +80 -0
  52. data/lib/dm-core/types.rb +19 -0
  53. data/lib/dm-core/types/boolean.rb +7 -0
  54. data/lib/dm-core/types/discriminator.rb +34 -0
  55. data/lib/dm-core/types/object.rb +24 -0
  56. data/lib/dm-core/types/paranoid_boolean.rb +34 -0
  57. data/lib/dm-core/types/paranoid_datetime.rb +33 -0
  58. data/lib/dm-core/types/serial.rb +9 -0
  59. data/lib/dm-core/types/text.rb +10 -0
  60. data/lib/dm-core/version.rb +3 -0
  61. data/script/all +5 -0
  62. data/script/performance.rb +203 -0
  63. data/script/profile.rb +87 -0
  64. data/spec/integration/association_spec.rb +1371 -0
  65. data/spec/integration/association_through_spec.rb +203 -0
  66. data/spec/integration/associations/many_to_many_spec.rb +449 -0
  67. data/spec/integration/associations/many_to_one_spec.rb +163 -0
  68. data/spec/integration/associations/one_to_many_spec.rb +151 -0
  69. data/spec/integration/auto_migrations_spec.rb +398 -0
  70. data/spec/integration/collection_spec.rb +1069 -0
  71. data/spec/integration/data_objects_adapter_spec.rb +32 -0
  72. data/spec/integration/dependency_queue_spec.rb +58 -0
  73. data/spec/integration/model_spec.rb +127 -0
  74. data/spec/integration/mysql_adapter_spec.rb +85 -0
  75. data/spec/integration/postgres_adapter_spec.rb +731 -0
  76. data/spec/integration/property_spec.rb +233 -0
  77. data/spec/integration/query_spec.rb +506 -0
  78. data/spec/integration/repository_spec.rb +57 -0
  79. data/spec/integration/resource_spec.rb +475 -0
  80. data/spec/integration/sqlite3_adapter_spec.rb +352 -0
  81. data/spec/integration/sti_spec.rb +208 -0
  82. data/spec/integration/strategic_eager_loading_spec.rb +138 -0
  83. data/spec/integration/transaction_spec.rb +75 -0
  84. data/spec/integration/type_spec.rb +271 -0
  85. data/spec/lib/logging_helper.rb +18 -0
  86. data/spec/lib/mock_adapter.rb +27 -0
  87. data/spec/lib/model_loader.rb +91 -0
  88. data/spec/lib/publicize_methods.rb +28 -0
  89. data/spec/models/vehicles.rb +34 -0
  90. data/spec/models/zoo.rb +47 -0
  91. data/spec/spec.opts +3 -0
  92. data/spec/spec_helper.rb +86 -0
  93. data/spec/unit/adapters/abstract_adapter_spec.rb +133 -0
  94. data/spec/unit/adapters/adapter_shared_spec.rb +15 -0
  95. data/spec/unit/adapters/data_objects_adapter_spec.rb +628 -0
  96. data/spec/unit/adapters/postgres_adapter_spec.rb +133 -0
  97. data/spec/unit/associations/many_to_many_spec.rb +17 -0
  98. data/spec/unit/associations/many_to_one_spec.rb +152 -0
  99. data/spec/unit/associations/one_to_many_spec.rb +393 -0
  100. data/spec/unit/associations/one_to_one_spec.rb +7 -0
  101. data/spec/unit/associations/relationship_spec.rb +71 -0
  102. data/spec/unit/associations_spec.rb +242 -0
  103. data/spec/unit/auto_migrations_spec.rb +111 -0
  104. data/spec/unit/collection_spec.rb +182 -0
  105. data/spec/unit/data_mapper_spec.rb +35 -0
  106. data/spec/unit/identity_map_spec.rb +126 -0
  107. data/spec/unit/is_spec.rb +80 -0
  108. data/spec/unit/migrator_spec.rb +33 -0
  109. data/spec/unit/model_spec.rb +339 -0
  110. data/spec/unit/naming_conventions_spec.rb +36 -0
  111. data/spec/unit/property_set_spec.rb +83 -0
  112. data/spec/unit/property_spec.rb +753 -0
  113. data/spec/unit/query_spec.rb +530 -0
  114. data/spec/unit/repository_spec.rb +93 -0
  115. data/spec/unit/resource_spec.rb +626 -0
  116. data/spec/unit/scope_spec.rb +142 -0
  117. data/spec/unit/transaction_spec.rb +493 -0
  118. data/spec/unit/type_map_spec.rb +114 -0
  119. data/spec/unit/type_spec.rb +119 -0
  120. data/tasks/ci.rb +68 -0
  121. data/tasks/dm.rb +63 -0
  122. data/tasks/doc.rb +20 -0
  123. data/tasks/gemspec.rb +23 -0
  124. data/tasks/hoe.rb +46 -0
  125. data/tasks/install.rb +20 -0
  126. metadata +216 -0
@@ -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
@@ -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.
@@ -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
@@ -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.
@@ -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