active_mongoid 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.coveralls.yml +1 -0
  4. data/.gitignore +22 -0
  5. data/.ruby_gemset +1 -0
  6. data/.ruby_version +1 -0
  7. data/.travis.yml +11 -0
  8. data/Appraisals +7 -0
  9. data/Gemfile +4 -0
  10. data/LICENSE.txt +22 -0
  11. data/README.md +198 -0
  12. data/Rakefile +7 -0
  13. data/active_mongoid.gemspec +36 -0
  14. data/gemfiles/mongoid_2.8.gemfile +7 -0
  15. data/gemfiles/mongoid_2.8.gemfile.lock +105 -0
  16. data/gemfiles/mongoid_3.1.gemfile +7 -0
  17. data/gemfiles/mongoid_3.1.gemfile.lock +108 -0
  18. data/lib/active_mongoid.rb +8 -0
  19. data/lib/active_mongoid/associations.rb +82 -0
  20. data/lib/active_mongoid/associations/binding.rb +77 -0
  21. data/lib/active_mongoid/associations/builder.rb +26 -0
  22. data/lib/active_mongoid/associations/builders/in.rb +17 -0
  23. data/lib/active_mongoid/associations/builders/many.rb +15 -0
  24. data/lib/active_mongoid/associations/builders/one.rb +15 -0
  25. data/lib/active_mongoid/associations/document_relation/accessors.rb +100 -0
  26. data/lib/active_mongoid/associations/document_relation/associations.rb +33 -0
  27. data/lib/active_mongoid/associations/document_relation/auto_save.rb +31 -0
  28. data/lib/active_mongoid/associations/document_relation/bindings/in.rb +48 -0
  29. data/lib/active_mongoid/associations/document_relation/bindings/many.rb +19 -0
  30. data/lib/active_mongoid/associations/document_relation/bindings/one.rb +19 -0
  31. data/lib/active_mongoid/associations/document_relation/builders.rb +31 -0
  32. data/lib/active_mongoid/associations/document_relation/dependent.rb +26 -0
  33. data/lib/active_mongoid/associations/document_relation/macros.rb +51 -0
  34. data/lib/active_mongoid/associations/document_relation/referenced/in.rb +72 -0
  35. data/lib/active_mongoid/associations/document_relation/referenced/many.rb +125 -0
  36. data/lib/active_mongoid/associations/document_relation/referenced/one.rb +75 -0
  37. data/lib/active_mongoid/associations/many.rb +211 -0
  38. data/lib/active_mongoid/associations/metadata.rb +229 -0
  39. data/lib/active_mongoid/associations/one.rb +21 -0
  40. data/lib/active_mongoid/associations/proxy.rb +38 -0
  41. data/lib/active_mongoid/associations/record_relation/accessors.rb +80 -0
  42. data/lib/active_mongoid/associations/record_relation/associations.rb +33 -0
  43. data/lib/active_mongoid/associations/record_relation/auto_save.rb +43 -0
  44. data/lib/active_mongoid/associations/record_relation/bindings/in.rb +48 -0
  45. data/lib/active_mongoid/associations/record_relation/bindings/many.rb +19 -0
  46. data/lib/active_mongoid/associations/record_relation/bindings/one.rb +19 -0
  47. data/lib/active_mongoid/associations/record_relation/builders.rb +31 -0
  48. data/lib/active_mongoid/associations/record_relation/dependent.rb +26 -0
  49. data/lib/active_mongoid/associations/record_relation/macros.rb +65 -0
  50. data/lib/active_mongoid/associations/record_relation/referenced/in.rb +72 -0
  51. data/lib/active_mongoid/associations/record_relation/referenced/many.rb +128 -0
  52. data/lib/active_mongoid/associations/record_relation/referenced/one.rb +75 -0
  53. data/lib/active_mongoid/associations/targets/enumerable.rb +161 -0
  54. data/lib/active_mongoid/bson_id.rb +44 -0
  55. data/lib/active_mongoid/finder_proxy.rb +55 -0
  56. data/lib/active_mongoid/finders.rb +60 -0
  57. data/lib/active_mongoid/version.rb +3 -0
  58. data/spec/lib/associations/document_relation/accessors_spec.rb +330 -0
  59. data/spec/lib/associations/document_relation/auto_save_spec.rb +157 -0
  60. data/spec/lib/associations/document_relation/bindings/in_spec.rb +39 -0
  61. data/spec/lib/associations/document_relation/bindings/many_spec.rb +36 -0
  62. data/spec/lib/associations/document_relation/bindings/one_spec.rb +39 -0
  63. data/spec/lib/associations/document_relation/builders_spec.rb +117 -0
  64. data/spec/lib/associations/document_relation/dependent_spec.rb +87 -0
  65. data/spec/lib/associations/document_relation/macros_spec.rb +68 -0
  66. data/spec/lib/associations/document_relation/referenced/in_spec.rb +27 -0
  67. data/spec/lib/associations/document_relation/referenced/many_spec.rb +32 -0
  68. data/spec/lib/associations/document_relation/referenced/one_spec.rb +28 -0
  69. data/spec/lib/associations/metadata_spec.rb +157 -0
  70. data/spec/lib/associations/record_relation/accessors_spec.rb +328 -0
  71. data/spec/lib/associations/record_relation/auto_save_spec.rb +157 -0
  72. data/spec/lib/associations/record_relation/bindings/in_spec.rb +39 -0
  73. data/spec/lib/associations/record_relation/bindings/many_spec.rb +39 -0
  74. data/spec/lib/associations/record_relation/bindings/one_spec.rb +57 -0
  75. data/spec/lib/associations/record_relation/builders_spec.rb +118 -0
  76. data/spec/lib/associations/record_relation/dependent_spec.rb +87 -0
  77. data/spec/lib/associations/record_relation/macros_spec.rb +73 -0
  78. data/spec/lib/associations/record_relation/referenced/in_spec.rb +27 -0
  79. data/spec/lib/associations/record_relation/referenced/many_spec.rb +32 -0
  80. data/spec/lib/associations/record_relation/referenced/one_spec.rb +27 -0
  81. data/spec/lib/bson_id_spec.rb +48 -0
  82. data/spec/lib/finders_spec.rb +105 -0
  83. data/spec/spec_helper.rb +89 -0
  84. data/spec/support/models/active_record/address.rb +6 -0
  85. data/spec/support/models/active_record/division.rb +16 -0
  86. data/spec/support/models/active_record/division_setting.rb +9 -0
  87. data/spec/support/models/active_record/player.rb +12 -0
  88. data/spec/support/models/mongoid/league.rb +10 -0
  89. data/spec/support/models/mongoid/person.rb +9 -0
  90. data/spec/support/models/mongoid/post.rb +9 -0
  91. data/spec/support/models/mongoid/stat.rb +8 -0
  92. data/spec/support/models/mongoid/team.rb +9 -0
  93. data/spec/support/shared_examples/shared_many_spec.rb +411 -0
  94. metadata +370 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0ff0adb96c96346c33a8bcaadc937cb1ea88fc3d
4
+ data.tar.gz: 31756fa2b770746578c5b7141793a5f773dd1926
5
+ SHA512:
6
+ metadata.gz: 3af1c4a4648a01fd468d1af6dffdea2ea8c59c05c5a294b5809145c2e95e03060d3ef8c811202324d669a12b181d9a068edae0db434c1a295f5fb54701e5226a
7
+ data.tar.gz: 4778b1b9d42cc5726b50cf34c200ab8ca4fa0fb824e270da203fa118ae0c4d921ede75aa181ede0cf31a9773fd02220f9b92aec8f56454f5523ea4d415884446
Binary file
@@ -0,0 +1 @@
1
+ service_name: travis-ci
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
@@ -0,0 +1 @@
1
+ active_mongoid
@@ -0,0 +1 @@
1
+ 2.0.0
@@ -0,0 +1,11 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.0
6
+ services:
7
+ - mongodb
8
+ script: bundle exec rspec
9
+ gemfile:
10
+ - gemfiles/mongoid_2.8.gemfile
11
+ - gemfiles/mongoid_3.1.gemfile
@@ -0,0 +1,7 @@
1
+ appraise "mongoid-2.8" do
2
+ gem "mongoid", "~> 2.8.1"
3
+ end
4
+
5
+ appraise "mongoid-3.1" do
6
+ gem "mongoid", "~> 3.1.0"
7
+ end
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in active_mongoid.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Bryce Schmidt
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,198 @@
1
+ # ActiveMongoid
2
+ [![Build Status][build_status_image]][build_status]
3
+ [![Coverage Status][coverage_status_image]][coverage_status]
4
+
5
+ ActiveMongoid facilitates usage of both ActiveRecord and Mongoid in a single rails application by providing an ActiveRecord-like interface for inter-ORM relations. It was written to replace select Mongoid models with ActiveRecord versions so it tries to adhere to the Mongoid API as closely as possible. To accomplish this compatibility, much of the logic and structure of this lib are either directly inspired by or straight up ripped off the Mongoid source.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ gem 'active_mongoid'
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install active_mongoid
20
+
21
+ ## Usage by Example
22
+
23
+ ### ActiveMongoid::Associations
24
+
25
+ To add ActiveMongoid associations, simply add the `ActiveMongoid::Associations` module in both models and define the relations using the provided macros as you would with either ActiveRecord or Mongoid.
26
+
27
+ #### ActiveRecord
28
+ ```ruby
29
+ class Player < ActiveRecord::Base
30
+ include ActiveMongoid::Associations
31
+
32
+ belongs_to_document :team
33
+ has_one_document :stat, as: :target, autosave: true, dependent: :destroy
34
+ end
35
+ ```
36
+
37
+ #### Mongoid
38
+ ```ruby
39
+ class Team
40
+ include Mongoid::Document
41
+ include ActiveMongoid::Associations
42
+
43
+ has_many_records :players, autosave: true, order: "name asc"
44
+ belongs_to_record :division
45
+ end
46
+ ```
47
+
48
+ Then you can interact with the models and relations just as you would with either ActiveRecord or Mongoid.
49
+ ```ruby
50
+ > team = Team.create
51
+ => #<Team _id: 5453d55cb736b692ab000001, name: nil>
52
+ > player = team.players.build(name: "foo") # create will call save
53
+ => #<Player id: nil, name: "foo", team_id: "5453d55cb736b692ab000001">
54
+ > team.player << Player.new(name: "foo1")
55
+ => #<Player id: nil, name: "foo1", team_id: "5453d55cb736b692ab000001">
56
+ > team.players
57
+ => [#<Player id: nil, name: "foo", team_id: "5453d55cb736b692ab000001">, #<Player id: nil, name: "foo1", team_id: "5453d55cb736b692ab000001">]
58
+ > player.team # binds the inverse
59
+ => #<Team _id: 5453d55cb736b692ab000001, name: nil>
60
+ > team.save
61
+ => true
62
+ > team.players
63
+ => [#<Player id: 1, name: "foo", team_id: "5453d55cb736b692ab000001">, #<Player id: 2, name: "foo1", team_id: "5453d55cb736b692ab000001">]
64
+ > team.players.where(name: "foo") # returns relation so chaining is possible
65
+ => [#<Player id: 1, name: "foo", team_id: "5453d55cb736b692ab000001">]
66
+ > team.players.where(name: "foo").where(id: 1)
67
+ => [#<Player id: 1, name: "foo", team_id: "5453d55cb736b692ab000001">]
68
+ > player = Player.create(name: "baz")
69
+ => #<Player id: 3, name: "baz", team_id: nil>
70
+ > team = player.build_team(name: "bar") # create_ will call save
71
+ => #<Team _id: 5453d55cb736b692ab000002, name: "bar">
72
+ > team.players
73
+ => [#<Player id: 3, name: "foo", team_id: "5453d55cb736b692ab000002">]
74
+ > player.team(true) # forces reload from database
75
+ => nil
76
+ ```
77
+
78
+ ## API Documentation
79
+
80
+ ### ActiveMongoid::Associations
81
+
82
+ #### Record/Document Association HasMany Class Methods
83
+ * ```has_many_records :players```
84
+ * ```has_many_documents :stats```
85
+
86
+ Options:
87
+ - ```order``` Needs to be formated according to ActiveRecord/Mongoid spec respectively
88
+ - ```dependent``` Accepts: `:destroy, :delete`
89
+ - ```as``` Polymorphic relation
90
+ - ```foreign_key``` Foreign key for relation
91
+ - ```primary_key``` Primary key for relation
92
+ - ```class_name``` Association class name
93
+ - ```autosave``` Accepts `:true`
94
+
95
+ #### Record/Document Association HasOne and BelongsTo Class Methods
96
+ * ```has_one_record :player```
97
+ * ```belongs_to_record :player```
98
+ * ```has_one_record :stat```
99
+ * ```belongs_to_record :stat```
100
+
101
+ Options:
102
+ - ```dependent``` Accepts: `:destroy, :delete`
103
+ - ```as``` Polymorphic relation
104
+ - ```foreign_key``` Foreign key for relation
105
+ - ```primary_key``` Primary key for relation
106
+ - ```class_name``` Association class name
107
+ - ```autosave``` Accepts `:true`
108
+
109
+ #### Record/Document Association HasMany Instance Methods
110
+ * ```team.players``` Returns the relation
111
+ * ```team.players(true)``` Forces reload from database and returns relation
112
+ * ```team.players = [player]``` Assigns objects and calls dependent method on old values
113
+ * ```team.players << player``` Appends object and will save if base is persisted
114
+ * ```team.players.build({player.attributes})``` Builds and binds object from attributes and binds relation
115
+ * ```team.players.concat([player_1, player_2]``` Appends and binds array of objects. Will save if base is persisted
116
+ * ```team.players.purge``` Removes all objects from relation and calls dependent method on objects
117
+ * ```team.players.delete(player)``` Removes object and calls dependent method on object
118
+ * ```team.players.delete_all(optional_criteria)``` Calls delete on all objects
119
+ * ```team.players.destroy_all(optional_criteria)``` Calls destroy on all objects
120
+ * ```team.players.each``` Iterates on on objects
121
+ * ```team.players.exists?``` Calls exists? on relation
122
+ * ```team.players.find(params)``` Returns relation with criteria added
123
+ * ```team.players.nullify``` Clears loaded relation
124
+ * ```team.players.blank?``` Returns `true` if empty
125
+ * ```team.players.create({player.attributes})``` Creates and binds from attributes
126
+ * ```team.players.create!({player.attributes})``` Creates and binds form attributes and raises an exception if fails
127
+ * ```team.players.find_or_create_by({player.attributes})``` Finds or creates a record from attributes
128
+ * ```team.players.find_or_initialize_by({player.attributes})``` Finds or initializes a record from attributes
129
+ * ```team.players.nil?``` returns `false`
130
+
131
+ All other methods will defer to the ActiveRecord/Mongoid relation respectively.
132
+
133
+ #### Record/Document Association HasOne and BelongsTo Instance Methods
134
+ * ```player.stat``` Returns the relation
135
+ * ```player.stat(true)``` Forces reload from database and returns relation
136
+ * ```player.stat = stat``` Assigns object as relation. Will substitute old value and call dependent method
137
+ * ```player.build_stat({})``` Builds and binds new object from attributes
138
+ * ```player.create_stat({})``` Creates and binds new object from attributes
139
+
140
+ All other methods called on relation will defer to the object.
141
+
142
+ ### ActiveMongoid::BsonId
143
+
144
+ The BsonId module faciliates the useage of `BSON::ObjectId`'s on ActiveRecord objects. This module is especially helpful if you are migrating a model from a Mongoid object to an ActiveRecord object and want to carry over the old id.
145
+
146
+ ```ruby
147
+ class Division < ActiveRecord::Base
148
+ include ActiveMongoid::BsonId
149
+ bsonify_attr :_id, initialize: true
150
+ end
151
+ ```
152
+
153
+ ```ruby
154
+ > division._id
155
+ => BSON::ObjectId('545289a7b736b6586a000001')
156
+ > division._id = BSON::ObjectId('545289a7b736b6586a000002')
157
+ => BSON::ObjectId('545289a7b736b6586a000002')
158
+ > division._id = '545289a7b736b6586a000002'
159
+ => BSON::ObjectId('545289a7b736b6586a000002')
160
+ ```
161
+
162
+ ### ActiveMongoid::Finders
163
+
164
+ This module proxies the existing ActiveRecord `find` and `where` to perform casting of `BSON::ObjectId`'s to string for queries. Additionally it'll default to the `_id` field if the object is a valid `BSON::ObjectId` and the `_id` field is present on the model.
165
+
166
+ ```ruby
167
+ class Division < ActiveRecord::Base
168
+ include ActiveMongoid::BsonId
169
+ include ActiveMongoid::Finders
170
+ bsonify_attr :_id, initialize: true
171
+ end
172
+ ```
173
+
174
+ ```ruby
175
+ > Division.find(1)
176
+ => #<Tournament id: 1, _id: "545289a7b736b6586a000001", name: "new tournament">
177
+ > Division.find(BSON::ObjectId('545289a7b736b6586a000001')
178
+ => #<Tournament id: 1, _id: "545289a7b736b6586a000001", name: "new tournament">
179
+ > Division.where(_id: BSON::ObjectId('545289a7b736b6586a000001')
180
+ => [#<Tournament id: 1, _id: "545289a7b736b6586a000001", name: "new tournament">]
181
+ > Division.where(id: BSON::ObjectId('545289a7b736b6586a000001')
182
+ => [#<Tournament id: 1, _id: "545289a7b736b6586a000001", name: "new tournament">]
183
+ ```
184
+
185
+
186
+
187
+ ## Contributing
188
+
189
+ 1. Fork it ( https://github.com/[my-github-username]/active_mongoid/fork )
190
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
191
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
192
+ 4. Push to the branch (`git push origin my-new-feature`)
193
+ 5. Create a new Pull Request
194
+
195
+ [build_status]: https://travis-ci.org/sportngin/active_mongoid
196
+ [build_status_image]: https://travis-ci.org/sportngin/active_mongoid.svg?branch=master
197
+ [coverage_status]: https://coveralls.io/r/sportngin/active_mongoid
198
+ [coverage_status_image]: https://img.shields.io/coveralls/sportngin/active_mongoid.svg
@@ -0,0 +1,7 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+ require "bundler/gem_tasks"
4
+
5
+ task :test do
6
+ system "rspec -b"
7
+ end
@@ -0,0 +1,36 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'active_mongoid/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "active_mongoid"
8
+ spec.version = ActiveMongoid::VERSION
9
+ spec.authors = ["Bryce Schmidt"]
10
+ spec.email = ["bryce.schmidt@sportngin.com"]
11
+ spec.summary = %q{ActiveMongoid provides a relational interface between ActiveRecord and Mongoid objects.}
12
+ spec.description = %q{ActiveMongoid facilitates usage of both ActiveRecord and Mongoid in a single app by providing an inteface for inter-ORM relations.}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "activesupport"
22
+ spec.add_dependency "activerecord"
23
+ spec.add_dependency "mongo"
24
+ spec.add_dependency "bson_ext"
25
+ spec.add_dependency "mongoid"
26
+ spec.add_dependency "after_do"
27
+
28
+ spec.add_development_dependency "rspec"
29
+ spec.add_development_dependency "sqlite3"
30
+ spec.add_development_dependency "database_cleaner"
31
+ spec.add_development_dependency "pry"
32
+ spec.add_development_dependency "simplecov"
33
+ spec.add_development_dependency "simplecov-gem-adapter"
34
+ spec.add_development_dependency "coveralls"
35
+ spec.add_development_dependency "appraisal"
36
+ end
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "mongoid", "~> 2.8.1"
6
+
7
+ gemspec :path => "../"
@@ -0,0 +1,105 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ active_mongoid (0.0.1)
5
+ activerecord
6
+ activesupport
7
+ after_do
8
+ bson_ext
9
+ mongo
10
+ mongoid
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ activemodel (3.2.19)
16
+ activesupport (= 3.2.19)
17
+ builder (~> 3.0.0)
18
+ activerecord (3.2.19)
19
+ activemodel (= 3.2.19)
20
+ activesupport (= 3.2.19)
21
+ arel (~> 3.0.2)
22
+ tzinfo (~> 0.3.29)
23
+ activesupport (3.2.19)
24
+ i18n (~> 0.6, >= 0.6.4)
25
+ multi_json (~> 1.0)
26
+ after_do (0.3.1)
27
+ appraisal (1.0.2)
28
+ bundler
29
+ rake
30
+ thor (>= 0.14.0)
31
+ arel (3.0.3)
32
+ bson (1.9.2)
33
+ bson_ext (1.9.2)
34
+ bson (~> 1.9.2)
35
+ builder (3.0.4)
36
+ coderay (1.1.0)
37
+ coveralls (0.7.1)
38
+ multi_json (~> 1.3)
39
+ rest-client
40
+ simplecov (>= 0.7)
41
+ term-ansicolor
42
+ thor
43
+ database_cleaner (1.3.0)
44
+ diff-lcs (1.2.5)
45
+ docile (1.1.3)
46
+ i18n (0.6.11)
47
+ method_source (0.8.2)
48
+ mime-types (2.3)
49
+ mongo (1.9.2)
50
+ bson (~> 1.9.2)
51
+ mongoid (2.8.1)
52
+ activemodel (~> 3.1)
53
+ mongo (~> 1.9)
54
+ tzinfo (~> 0.3.22)
55
+ multi_json (1.10.1)
56
+ netrc (0.7.7)
57
+ pry (0.10.1)
58
+ coderay (~> 1.1.0)
59
+ method_source (~> 0.8.1)
60
+ slop (~> 3.4)
61
+ rake (10.3.2)
62
+ rest-client (1.7.2)
63
+ mime-types (>= 1.16, < 3.0)
64
+ netrc (~> 0.7)
65
+ rspec (3.0.0)
66
+ rspec-core (~> 3.0.0)
67
+ rspec-expectations (~> 3.0.0)
68
+ rspec-mocks (~> 3.0.0)
69
+ rspec-core (3.0.4)
70
+ rspec-support (~> 3.0.0)
71
+ rspec-expectations (3.0.4)
72
+ diff-lcs (>= 1.2.0, < 2.0)
73
+ rspec-support (~> 3.0.0)
74
+ rspec-mocks (3.0.4)
75
+ rspec-support (~> 3.0.0)
76
+ rspec-support (3.0.4)
77
+ simplecov (0.8.2)
78
+ docile (~> 1.1.0)
79
+ multi_json
80
+ simplecov-html (~> 0.8.0)
81
+ simplecov-gem-adapter (1.0.1)
82
+ simplecov
83
+ simplecov-html (0.8.0)
84
+ slop (3.6.0)
85
+ sqlite3 (1.3.9)
86
+ term-ansicolor (1.3.0)
87
+ tins (~> 1.0)
88
+ thor (0.19.1)
89
+ tins (1.3.2)
90
+ tzinfo (0.3.41)
91
+
92
+ PLATFORMS
93
+ ruby
94
+
95
+ DEPENDENCIES
96
+ active_mongoid!
97
+ appraisal
98
+ coveralls
99
+ database_cleaner
100
+ mongoid (~> 2.8.1)
101
+ pry
102
+ rspec
103
+ simplecov
104
+ simplecov-gem-adapter
105
+ sqlite3