consort 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Nzk4NGRkZDVhOTRjNjA5Nzk3NGJhODhiYTI1NGIzOGNiZWY1MzUwOA==
4
+ NDJkNmNjYjhjODY0ZmM3M2M1YTg5ODFhZDU1NDJlODhiODY1Y2U2NQ==
5
5
  data.tar.gz: !binary |-
6
- NWY0NDFkNjIwY2VhNTI4MzIwMzM4YzU2MWNmNGE2MDI0ZDM0MjE5MQ==
6
+ OGY3MGYwYThlMGRmZjczMjY0ZTQ2MjFiZmZkYzY2NjNlOWM4YWM5Yw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZjE4OGViYzAwZTRiYjE4MzQxOWZhMDVjYTcyMjhhNjcwYWUxZDk0ZGU4OTVl
10
- YzRlZDBmNDQzZTU2NjUyNzg1MWZiZjU0MzQ1ZmQzNDFjM2RlNWJjYjY0NzEz
11
- ZmIzMDc0ZmI5ZDI4ZjI5ZWRiZjY4ODA0OWMyZDg2OTExZTBlMzE=
9
+ YzRkNTA2ZmE5Yzc4ZmVkNTU5ZDE3ZmIzNTk4MmUwNmQwMDZkNDU0MmI4MjMx
10
+ NmZkMWYwMmQyM2Y3OWE5MjE4Y2JjMTY2ZGUzZTNiYjRiN2U5Y2I1YmZmNDdk
11
+ MjVjNmI2NDA4MzUyOTgzZmU5NTU0OGJhMjc1YWY2MWRlOWQyNTk=
12
12
  data.tar.gz: !binary |-
13
- MTdjNGRkYTYyZjdjNjIwZGY5OWVkZjczY2I4ZGVkMDdiNGQ5NjhkODQ5ZTE0
14
- M2ZjMWEyMDg3N2NjZjI5YjM5Y2RiOTYzMjRhMzllNjhkNmUxODMxNjk0OTQ1
15
- M2QwNWUwZDk1NWZkNmJjYzk1ZGMwMGI3OTI2MTkzZmY2NDk5ZjI=
13
+ MDkyYmU4MTk0ODc3OWYzZjk5NGM2ZGI4N2UxNTIwZGVlZmE1MWM4NTc2ZjA5
14
+ ZTZlOGI3Mzg5MzI0OWYwMDVkZWU3Yzg3MTY0ODE4ZDI2ZTIxMWRlZTczODhj
15
+ ODMyY2ZmNTc5ODMyZDkzOTk1NTU3OTMzMmU2YWIxYTA0YjAzYjA=
@@ -4,4 +4,8 @@ rvm:
4
4
  - 2.0.0
5
5
  # - jruby-19mode
6
6
  # - rbx-19mode
7
- # - ruby-head
7
+ # - ruby-head
8
+ gemfile:
9
+ - Gemfile
10
+ - gemfiles/Gemfile.rails-3.1.x
11
+ - gemfiles/Gemfile.rails-4.0.x
@@ -0,0 +1,2 @@
1
+ --markup markdown
2
+
@@ -1,3 +1,8 @@
1
+ ## 0.0.3
2
+
3
+ * Restructured modules. Now in format `Consort::FromORM::ToORM`.
4
+ * Travis now tests against Rails 3.1.12, 3.2.13, 4.0.0.
5
+
1
6
  ## 0.0.2
2
7
 
3
8
  * Improved readability of macros. `has_many_*` methods are now singular.
data/README.md CHANGED
@@ -9,11 +9,11 @@ Mixing ActiveRecord and other ORMs like Mongoid? Need relationships between thos
9
9
 
10
10
  Use Consort! Built around a simple modification to standard ActiveRecord association syntax, Consort allows you to more easily retrieve data from cross-ORM single-to-single and single-to-many associations without writing or recycling code.
11
11
 
12
- ##### Once More, With 50% Less Jargon
12
+ ## Once More, With 50% Less Jargon
13
13
 
14
14
  If you have a Rails app using both ActiveRecord and Mongoid, you've probably discovered you can't create associations between the two.
15
15
 
16
- Consort allows you to define has_one, has_many, and belongs_to associations between ActiveRecord and Mongoid object classes. (And it can be extended to support nearly any combination of ORM adapters, but ActiveRecord <-> Mongoid is what's written today.)
16
+ Consort allows you to define `has_one`, `has_many`, and `belongs_to` associations between ActiveRecord and Mongoid object classes. (And it can be extended to support nearly any combination of ORM and ODM adapters, but ActiveRecord <-> Mongoid is what's written today.)
17
17
 
18
18
  ## Installation
19
19
 
@@ -33,14 +33,18 @@ Or install it yourself as:
33
33
 
34
34
  Ruby 1.9.3 or 2.0.0. Alternate VMs compatible with these versions should also work.
35
35
 
36
- Ruby 1.8 is not supported.
36
+ Ruby 1.8 is not supported. Let the dead rest in peace!
37
37
 
38
38
  ### Rails Compatibility
39
39
 
40
- Consort currently targets Rails 3.2. Mongoid and several other ORM layers have not yet been updated for Rails 4, and most projects are continuing to use Rails 3.2 for now. Consort has not been tested against earlier Rails 3 versions; if you're stuck on an earlier version, let me know how it works for you.
40
+ Consort currently targets Rails 3.2 (or, more accurately, ActiveSupport and ActiveRecord 3.2). Mongoid and several other ORM/ODM layers have not yet been updated for Rails 4, and most new and existing projects are continuing to use Rails 3.2 for now.
41
41
 
42
42
  Rails 4 support is planned.
43
43
 
44
+ ### Continuous Integration
45
+
46
+ Automated CI testing is performed against Ruby 1.9.3 and 2.0.0 using ActiveRecord and ActiveSupport 3.1, 3.2, and 4.0.
47
+
44
48
  ## Usage
45
49
 
46
50
  Consort allows basic relationships to be defined between ActiveRecord and other ORM layers. Simply add `_[ORM_TYPE]` to what you'd normally use. `active_record` and `mongoid` are currently supported.
@@ -51,6 +55,7 @@ The relationship macros are designed to read cleanly:
51
55
  * Airframe has many Mongoid variants
52
56
 
53
57
  On an ActiveRecord model, you can define relationships with Mongoid:
58
+
54
59
  ```ruby
55
60
  class Airframe < ActiveRecord::Base
56
61
  belongs_to_mongoid :manufacturer
@@ -60,22 +65,50 @@ end
60
65
  ```
61
66
 
62
67
  On a Mongoid model, you can define relationships with ActiveRecord:
68
+
63
69
  ```ruby
64
70
  class Airframe
65
71
  include Mongoid::Document
66
72
  belongs_to_active_record :manufacturer
67
73
  has_one_active_record :powerplant
68
74
  has_many_active_record :variants
75
+
76
+ # Consort expects a foreign key field
77
+ field :manufacturer_id, type: Integer
69
78
  end
70
79
  ```
71
80
 
72
- *Nota bene:* Consort currently provides only basic association accessors. It does not implement callbacks. Consort also does not currently implement many-to-many associations. I've rarely run into a situation where cross-ORM many-to-many associations make sense, and implementing them would require making opinionated decisions I don't care to make without community input. If this is something you find yourself needing immediately, you'll have to implement it yourself. (Pull requests and feedback are welcome.)
81
+ ### Unimplemented Features
82
+ There are several things Consort doesn't (currently) do, either because I haven't
83
+ seen them used when mixing object mappers, or because they may have horrible
84
+ unintended consequences.
85
+
86
+ This doesn't mean Consort **shouldn't** do them; if you have a use case for a
87
+ missing feature, feel free to implement it and send a pull request, or create an
88
+ issue with a feature request.
89
+
90
+ #### Many-to-Many Relationships
91
+ Consort doesn't support many-to-many relationships. I've rarely run into a
92
+ situation where they make sense in cross-ORM applications, and implementing them
93
+ would require making decisions like "where do we store them?".
94
+
95
+ #### Polymorphism
96
+ Also low on the list of use cases.
97
+
98
+ #### Callbacks
99
+ This falls into the potential horrible unintended consequences group.
100
+
101
+ Consort *does not* currently implement automatic callbacks (e.g. destroying a
102
+ Mongoid object automatically when its parent ActiveRecord object is destroyed). If
103
+ creating/altering/deleting an object from one object mapper should
104
+ create/alter/delete an associated object from a different object mapper, you
105
+ currently need to take care of this yourself.
73
106
 
74
107
  ## Contributing
75
108
 
76
109
  1. [Fork it](https://github.com/cmattson/consort/fork)
77
110
  2. Create your feature branch (`git checkout -b my-new-feature`)
78
- 3. No, seriously, create a branch. Call it `ravenous-monkey` for all I care, but create a branch.
111
+ 3. No, seriously, create a branch. Please. Call it `ravenous-monkey` for all I care, but create a branch.
79
112
  4. Commit your changes (`git commit -am 'Add some feature'`)
80
113
  5. Push to the branch (`git push origin my-new-feature`)
81
114
  6. Create new Pull Request
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Consort::VERSION
9
9
  spec.authors = ["Colin Mattson"]
10
10
  spec.email = ["colinm@pixelcloud.us"]
11
- spec.description = %q{Consort allows you to define relationships between various ORMs and access them similarly to ActiveRecord associations.}
11
+ spec.description = %q{Consort allows you to define relationships between various ORM/ODMs and access them similarly to ActiveRecord associations.}
12
12
  spec.summary = %q{Ease integration between ActiveRecord and NoSQL solutions.}
13
13
  spec.homepage = "https://github.com/cmattson/consort"
14
14
  spec.license = "MIT"
@@ -18,18 +18,19 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
- spec.add_development_dependency "minitest"
24
- spec.add_development_dependency "activerecord", "~> 3.2"
25
- spec.add_development_dependency "activesupport","~> 3.2"
26
- spec.add_development_dependency "mongoid", "~> 3.1"
23
+ spec.add_development_dependency "minitest", "~> 4.7"
24
+ spec.add_development_dependency "activesupport", "~> 3.2"
25
+ spec.add_development_dependency "activerecord", "~> 3.2"
26
+ spec.add_development_dependency "mongoid", "~> 3.1"
27
+ spec.add_development_dependency "simplecov"
27
28
  spec.add_development_dependency "coveralls"
28
29
  spec.add_development_dependency "sqlite3"
29
30
  spec.add_development_dependency "pry"
30
31
  spec.add_development_dependency "combustion"
31
32
 
32
- spec.add_runtime_dependency "activesupport", "~> 3.2"
33
- spec.add_runtime_dependency "activerecord", "~> 3.2"
34
- spec.add_runtime_dependency "mongoid", "~> 3.1"
33
+ spec.add_runtime_dependency "activesupport", "~> 3.2"
34
+ spec.add_runtime_dependency "activerecord", "~> 3.2"
35
+ spec.add_runtime_dependency "mongoid", "~> 3.1"
35
36
  end
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "bundler", "~> 1.3"
4
+ gem "rake"
5
+ gem "minitest", "~> 4.7"
6
+ gem "activesupport", "~> 3.1.12"
7
+ gem "activerecord", "~> 3.1.12"
8
+ gem "mongoid", "~> 3.0.0"
9
+ gem "coveralls"
10
+ gem "sqlite3"
11
+ gem "pry"
12
+ gem "combustion"
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "bundler", "~> 1.3"
4
+ gem "rake"
5
+ gem "minitest", "~> 4.7"
6
+ gem "activesupport", "~> 4.0.0"
7
+ gem "activerecord", "~> 4.0.0"
8
+ gem "mongoid", :git => 'https://github.com/mongoid/mongoid.git'
9
+ gem "coveralls"
10
+ gem "sqlite3"
11
+ gem "pry"
12
+ gem "combustion"
@@ -1,6 +1,7 @@
1
1
  require 'consort/version'
2
2
 
3
3
  require 'active_record'
4
+ require 'mongoid'
4
5
 
5
- require 'consort/active_record'
6
- require 'consort/mongoid'
6
+ require 'consort/active_record/mongoid'
7
+ require 'consort/mongoid/active_record'
@@ -0,0 +1,74 @@
1
+ module Consort
2
+ ##
3
+ # Defines methods on ActiveRecord objects for creating NoSQL
4
+ # relationships and accessing those related objects.
5
+ module ActiveRecord
6
+ module Mongoid
7
+ extend ActiveSupport::Concern
8
+
9
+ module ClassMethods
10
+ # Defines a `has_one` relationship with a Mongoid object.
11
+ # @param klass [Symbol]
12
+ # @example
13
+ # has_one_mongoid :dolphin
14
+ def has_one_mongoid(klass)
15
+ class_eval <<-CODE
16
+ def #{klass}
17
+ #{klass.to_s.classify}.where(#{name.foreign_key}: id)
18
+ end
19
+ CODE
20
+ end
21
+
22
+ # Defines a `has_many` relationship with a Mongoid object.
23
+ # @param klass [Symbol]
24
+ # @example
25
+ # has_many_mongoid :unicorns
26
+ # @since 0.0.2
27
+ def has_many_mongoid(klass)
28
+ class_eval <<-CODE
29
+ def #{klass}
30
+ #{klass.to_s.classify}.where(#{name.foreign_key}: id)
31
+ end
32
+ CODE
33
+ end
34
+
35
+ # @deprecated Use {#has_many_mongoid} instead. Will be removed in 1.0.0.
36
+ def has_many_mongoids(klass)
37
+ ActiveSupport::Deprecation.warn 'Please use the singular has_many_mongoid instead.'
38
+ has_many_mongoid(klass)
39
+ end
40
+
41
+ # Defines a `belongs_to` relationship with a Mongoid object.
42
+ # An appropriate foreign key column (of type String) must exist on your model.
43
+ # @param klass [Symbol]
44
+ # @example Migration
45
+ # class AddMongoidFKeyToNarwhals < ActiveRecord::Migration
46
+ # def change
47
+ # add_column :narwhals, :pod_id, :string
48
+ # end
49
+ # end
50
+ # @example Model
51
+ # class Narwhal < ActiveRecord::Base
52
+ # belongs_to_mongoid :pod
53
+ # end
54
+ def belongs_to_mongoid(klass)
55
+ class_eval <<-CODE
56
+ def #{klass}
57
+ #{klass.to_s.classify}.where(id: #{klass.to_s.foreign_key})
58
+ end
59
+ CODE
60
+ end
61
+
62
+ # Allows easy validation of whether ActiveRecord to Mongoid bridge is loaded.
63
+ # @return [Boolean] `true` if bridge is loaded
64
+ def active_record_consorts_with_mongoid?
65
+ true
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+
72
+ class ActiveRecord::Base
73
+ include Consort::ActiveRecord::Mongoid
74
+ end
@@ -0,0 +1,68 @@
1
+ module Consort
2
+ module Mongoid
3
+ module ActiveRecord
4
+ extend ActiveSupport::Concern
5
+
6
+ module ClassMethods
7
+ # Defines a `has_one` relationship with an ActiveRecord object.
8
+ # @param klass [Symbol]
9
+ # @example
10
+ # has_one_active_record :dolphin
11
+ def has_one_active_record(klass)
12
+ class_eval <<-CODE
13
+ def #{klass}
14
+ #{klass.to_s.classify}.where(#{name.foreign_key}: id)
15
+ end
16
+ CODE
17
+ end
18
+
19
+ # Defines a `has_many` relationship with an ActiveRecord object.
20
+ # @param klass [Symbol]
21
+ # @example
22
+ # has_many_active_record :unicorns
23
+ # @since 0.0.2
24
+ def has_many_active_record(klass)
25
+ class_eval <<-CODE
26
+ def #{klass}
27
+ #{klass.to_s.classify}.where(#{name.foreign_key}: id)
28
+ end
29
+ CODE
30
+ end
31
+
32
+ # @deprecated Use {#has_many_active_record} instead. Will be removed in 1.0.0.
33
+ def has_many_active_records(klass)
34
+ ActiveSupport::Deprecation.warn 'Please use the singular has_many_active_record instead.'
35
+ has_many_active_record(klass)
36
+ end
37
+
38
+ # Defines a `belongs_to` relationship with an ActiveRecord object.
39
+ # An appropriate foreign key field must exist on your model.
40
+ # @param klass [Symbol]
41
+ # @example
42
+ # class Narwhal
43
+ # include Mongoid::Document
44
+ #
45
+ # belongs_to_active_record :pod
46
+ # field :pod_id, type: Integer
47
+ # end
48
+ def belongs_to_active_record(klass)
49
+ class_eval <<-CODE
50
+ def #{klass}
51
+ #{klass.to_s.classify}.where(id: #{klass.to_s.foreign_key})
52
+ end
53
+ CODE
54
+ end
55
+
56
+ # Allows easy validation of whether Mongoid to ActiveRecord bridge is loaded.
57
+ # @return [Boolean] `true` if bridge is loaded
58
+ def mongoid_consorts_with_active_record?
59
+ true
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+
66
+ module Mongoid::Document
67
+ include Consort::Mongoid::ActiveRecord
68
+ end
@@ -1,3 +1,3 @@
1
1
  module Consort
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,6 +1,6 @@
1
1
  require 'minitest/autorun'
2
2
 
3
- class TestActiveRecord < Minitest::Test
3
+ class TestActiveRecord < MiniTest::Unit::TestCase
4
4
  def setup
5
5
  end
6
6
 
@@ -43,4 +43,9 @@ class TestActiveRecord < Minitest::Test
43
43
  assert_equal true, @u.respond_to?('congo')
44
44
  assert_equal false, @u.respond_to?('congos')
45
45
  end
46
+
47
+ def test_implements_consorts
48
+ assert ActiveRecord::Base.respond_to?('active_record_consorts_with_mongoid?')
49
+ assert ActiveRecord::Base.active_record_consorts_with_mongoid?
50
+ end
46
51
  end
@@ -2,8 +2,16 @@ plugin_test_dir = File.dirname(__FILE__)
2
2
 
3
3
  require 'rubygems'
4
4
 
5
+ require 'simplecov'
5
6
  require 'coveralls'
6
- Coveralls.wear!
7
+
8
+ if ENV["TRAVIS"]
9
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
10
+ end
11
+
12
+ SimpleCov.start do
13
+ add_filter '/test'
14
+ end
7
15
 
8
16
  require 'bundler/setup'
9
17
  require 'pry'
@@ -16,8 +24,8 @@ require 'minitest/spec'
16
24
  require 'minitest/pride'
17
25
  require 'minitest/benchmark' if ENV['BENCH']
18
26
 
19
- require 'active_record'
20
- require 'mongoid'
27
+ # require 'active_record'
28
+ # require 'mongoid'
21
29
 
22
30
  require 'consort'
23
31
 
@@ -31,4 +39,4 @@ require 'combustion/database'
31
39
  Combustion::Database.create_database(ActiveRecord::Base.configurations[ENV["DB"]])
32
40
  load(File.join(plugin_test_dir, 'db', 'schema.rb'))
33
41
 
34
- require 'models'
42
+ require 'models'
@@ -1,6 +1,6 @@
1
1
  require 'minitest/autorun'
2
2
 
3
- class TestMongoid < Minitest::Test
3
+ class TestMongoid < MiniTest::Unit::TestCase
4
4
  def setup
5
5
  end
6
6
 
@@ -36,5 +36,10 @@ class TestMongoid < Minitest::Test
36
36
  @c = Camel.new
37
37
  assert_equal true, @c.respond_to?('species')
38
38
  end
39
+
40
+ def test_implements_consorts
41
+ assert Camel.respond_to?('mongoid_consorts_with_active_record?')
42
+ assert Camel.mongoid_consorts_with_active_record?
43
+ end
39
44
 
40
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: consort
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin Mattson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-19 00:00:00.000000000 Z
11
+ date: 2013-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,18 +42,18 @@ dependencies:
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '4.7'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '4.7'
55
55
  - !ruby/object:Gem::Dependency
56
- name: activerecord
56
+ name: activesupport
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ~>
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.2'
69
69
  - !ruby/object:Gem::Dependency
70
- name: activesupport
70
+ name: activerecord
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ~>
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: coveralls
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -192,8 +206,8 @@ dependencies:
192
206
  - - ~>
193
207
  - !ruby/object:Gem::Version
194
208
  version: '3.1'
195
- description: Consort allows you to define relationships between various ORMs and access
196
- them similarly to ActiveRecord associations.
209
+ description: Consort allows you to define relationships between various ORM/ODMs and
210
+ access them similarly to ActiveRecord associations.
197
211
  email:
198
212
  - colinm@pixelcloud.us
199
213
  executables: []
@@ -202,15 +216,18 @@ extra_rdoc_files: []
202
216
  files:
203
217
  - .gitignore
204
218
  - .travis.yml
219
+ - .yardopts
205
220
  - CHANGELOG.md
206
221
  - Gemfile
207
222
  - LICENSE
208
223
  - README.md
209
224
  - Rakefile
210
225
  - consort.gemspec
226
+ - gemfiles/Gemfile.rails-3.1.x
227
+ - gemfiles/Gemfile.rails-4.0.x
211
228
  - lib/consort.rb
212
- - lib/consort/active_record.rb
213
- - lib/consort/mongoid.rb
229
+ - lib/consort/active_record/mongoid.rb
230
+ - lib/consort/mongoid/active_record.rb
214
231
  - lib/consort/version.rb
215
232
  - test/db/database.yml
216
233
  - test/db/schema.rb
@@ -249,3 +266,4 @@ test_files:
249
266
  - test/test_active_record.rb
250
267
  - test/test_helper.rb
251
268
  - test/test_mongoid.rb
269
+ has_rdoc:
@@ -1,49 +0,0 @@
1
- module Consort
2
- ##
3
- # Defines instance methods on ActiveRecord objects for defining NoSQL
4
- # relationships and accessing those related objects.
5
- module ActiveRecord
6
- extend ActiveSupport::Concern
7
-
8
- module ClassMethods
9
- def has_one_mongoid(klass)
10
- class_eval <<-CODE
11
- def #{klass}
12
- #{klass.to_s.classify}.where(#{name.foreign_key}: id)
13
- end
14
- CODE
15
- end
16
-
17
- def has_many_mongoid(klass)
18
- class_eval <<-CODE
19
- def #{klass}
20
- #{klass.to_s.classify}.where(#{name.foreign_key}: id)
21
- end
22
- CODE
23
- end
24
-
25
- # DEPRECATED. Pass through for now. Removed in 1.0.0.
26
- def has_many_mongoids(klass)
27
- ActiveSupport::Deprecation.warn 'Please use the singular has_many_mongoid instead.'
28
- has_many_mongoid(klass)
29
- end
30
-
31
- def belongs_to_mongoid(klass)
32
- class_eval <<-CODE
33
- def #{klass}
34
- #{klass.to_s.classify}.where(id: #{klass.to_s.foreign_key})
35
- end
36
- CODE
37
- end
38
-
39
- def active_record_consorts_with_mongoid?
40
- true
41
- end
42
- end
43
-
44
- end
45
- end
46
-
47
- class ActiveRecord::Base
48
- include Consort::ActiveRecord
49
- end
@@ -1,46 +0,0 @@
1
- module Consort
2
- module Mongoid
3
- extend ActiveSupport::Concern
4
-
5
- module ClassMethods
6
- def has_one_active_record(klass)
7
- class_eval <<-CODE
8
- def #{klass}
9
- #{klass.to_s.classify}.where(#{name.foreign_key}: id)
10
- end
11
- CODE
12
- end
13
-
14
- def has_many_active_record(klass)
15
- class_eval <<-CODE
16
- def #{klass}
17
- #{klass.to_s.classify}.where(#{name.foreign_key}: id)
18
- end
19
- CODE
20
- end
21
-
22
- # DEPRECATED. Will be removed in 1.0.0.
23
- def has_many_active_records(klass)
24
- ActiveSupport::Deprecation.warn 'Please use the singular has_many_active_record instead.'
25
- has_many_active_record(klass)
26
- end
27
-
28
- def belongs_to_active_record(klass)
29
- class_eval <<-CODE
30
- def #{klass}
31
- #{klass.to_s.classify}.where(id: #{klass.to_s.foreign_key})
32
- end
33
- CODE
34
- end
35
-
36
- def mongoid_consorts_with_active_record?
37
- true
38
- end
39
- end
40
-
41
- end
42
- end
43
-
44
- module Mongoid::Document
45
- include Consort::Mongoid
46
- end