orm_adapter_rails4_fix 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+ require 'orm_adapter/example_app_shared'
3
+
4
+ if !defined?(MongoMapper) || !(Mongo::Connection.new.db('orm_adapter_spec') rescue nil)
5
+ puts "** require 'mongo_mapper' and start mongod to run the specs in #{__FILE__}"
6
+ else
7
+
8
+ MongoMapper.connection = Mongo::Connection.new
9
+ MongoMapper.database = "orm_adapter_spec"
10
+
11
+
12
+ module MongoMapperOrmSpec
13
+ class User
14
+ include MongoMapper::Document
15
+ key :name
16
+ key :rating
17
+ many :notes, :foreign_key => :owner_id, :class_name => 'MongoMapperOrmSpec::Note'
18
+ end
19
+
20
+ class Note
21
+ include MongoMapper::Document
22
+ key :body, :default => "made by orm"
23
+ belongs_to :owner, :class_name => 'MongoMapperOrmSpec::User'
24
+ end
25
+
26
+ # here be the specs!
27
+ describe MongoMapper::Document::OrmAdapter do
28
+
29
+ before do
30
+ MongoMapper.database.collections.each do | coll |
31
+ coll.remove
32
+ end
33
+ end
34
+
35
+ it_should_behave_like "example app with orm_adapter" do
36
+ let(:user_class) { User }
37
+ let(:note_class) { Note }
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+ require 'orm_adapter/example_app_shared'
3
+
4
+ if !defined?(Mongoid) || !(Mongo::Connection.new.db('orm_adapter_spec') rescue nil)
5
+ puts "** require 'mongoid' and start mongod to run the specs in #{__FILE__}"
6
+ else
7
+
8
+ Mongoid.configure do |config|
9
+ config.master = Mongo::Connection.new.db('orm_adapter_spec')
10
+ end
11
+
12
+ module MongoidOrmSpec
13
+ class User
14
+ include Mongoid::Document
15
+ field :name
16
+ field :rating
17
+ has_many_related :notes, :foreign_key => :owner_id, :class_name => 'MongoidOrmSpec::Note'
18
+ end
19
+
20
+ class Note
21
+ include Mongoid::Document
22
+ field :body, :default => "made by orm"
23
+ belongs_to_related :owner, :class_name => 'MongoidOrmSpec::User'
24
+ end
25
+
26
+ # here be the specs!
27
+ describe Mongoid::Document::OrmAdapter do
28
+ before do
29
+ User.delete_all
30
+ Note.delete_all
31
+ end
32
+
33
+ it_should_behave_like "example app with orm_adapter" do
34
+ let(:user_class) { User }
35
+ let(:note_class) { Note }
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,81 @@
1
+ require 'spec_helper'
2
+
3
+ describe OrmAdapter::Base do
4
+ subject { OrmAdapter::Base.new(Object) }
5
+
6
+ describe "#extract_conditions!" do
7
+ let(:conditions) { {:foo => 'bar'} }
8
+ let(:order) { [[:foo, :asc]] }
9
+ let(:limit) { 1 }
10
+ let(:offset) { 2 }
11
+
12
+ it "(<conditions>)" do
13
+ subject.send(:extract_conditions!, conditions).should == [conditions, [], nil, nil]
14
+ end
15
+
16
+ it "(:conditions => <conditions>)" do
17
+ subject.send(:extract_conditions!, :conditions => conditions).should == [conditions, [], nil, nil]
18
+ end
19
+
20
+ it "(:order => <order>)" do
21
+ subject.send(:extract_conditions!, :order => order).should == [{}, order, nil, nil]
22
+ end
23
+
24
+ it "(:limit => <limit>)" do
25
+ subject.send(:extract_conditions!, :limit => limit).should == [{}, [], limit, nil]
26
+ end
27
+
28
+ it "(:offset => <offset>)" do
29
+ subject.send(:extract_conditions!, :offset => offset).should == [{}, [], nil, offset]
30
+ end
31
+
32
+ it "(:conditions => <conditions>, :order => <order>)" do
33
+ subject.send(:extract_conditions!, :conditions => conditions, :order => order).should == [conditions, order, nil, nil]
34
+ end
35
+
36
+ it "(:conditions => <conditions>, :limit => <limit>)" do
37
+ subject.send(:extract_conditions!, :conditions => conditions, :limit => limit).should == [conditions, [], limit, nil]
38
+ end
39
+
40
+ it "(:conditions => <conditions>, :offset => <offset>)" do
41
+ subject.send(:extract_conditions!, :conditions => conditions, :offset => offset).should == [conditions, [], nil, offset]
42
+ end
43
+
44
+ describe "#valid_object?" do
45
+ it "determines whether an object is valid for the current model class" do
46
+ subject.send(:valid_object?, Object.new).should be_true
47
+ subject.send(:valid_object?, String.new).should be_false
48
+ end
49
+ end
50
+
51
+ describe "#normalize_order" do
52
+ specify "(nil) returns []" do
53
+ subject.send(:normalize_order, nil).should == []
54
+ end
55
+
56
+ specify ":foo returns [[:foo, :asc]]" do
57
+ subject.send(:normalize_order, :foo).should == [[:foo, :asc]]
58
+ end
59
+
60
+ specify "[:foo] returns [[:foo, :asc]]" do
61
+ subject.send(:normalize_order, [:foo]).should == [[:foo, :asc]]
62
+ end
63
+
64
+ specify "[:foo, :desc] returns [[:foo, :desc]]" do
65
+ subject.send(:normalize_order, [:foo, :desc]).should == [[:foo, :desc]]
66
+ end
67
+
68
+ specify "[:foo, [:bar, :asc], [:baz, :desc], :bing] returns [[:foo, :asc], [:bar, :asc], [:baz, :desc], [:bing, :asc]]" do
69
+ subject.send(:normalize_order, [:foo, [:bar, :asc], [:baz, :desc], :bing]).should == [[:foo, :asc], [:bar, :asc], [:baz, :desc], [:bing, :asc]]
70
+ end
71
+
72
+ specify "[[:foo, :wtf]] raises ArgumentError" do
73
+ lambda { subject.send(:normalize_order, [[:foo, :wtf]]) }.should raise_error(ArgumentError)
74
+ end
75
+
76
+ specify "[[:foo, :asc, :desc]] raises ArgumentError" do
77
+ lambda { subject.send(:normalize_order, [[:foo, :asc, :desc]]) }.should raise_error(ArgumentError)
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,240 @@
1
+ # to test your new orm_adapter, make an example app that matches the functionality
2
+ # found in the existing specs for example, look at spec/orm_adapter/adapters/active_record_spec.rb
3
+ #
4
+ # Then you can execute this shared spec as follows:
5
+ #
6
+ # it_should_behave_like "execute app with orm_adapter" do
7
+ # let(:user_class) { User }
8
+ # let(:note_class) { Note }
9
+ #
10
+ # # optionaly define the following functions if the ORM does not support
11
+ # # this syntax - this should NOT use the orm_adapter, because we're testing that
12
+ # def create_model(klass, attrs = {})
13
+ # klass.create!(attrs)
14
+ # end
15
+ #
16
+ # def reload_model(model)
17
+ # model.class.find(model.id)
18
+ # end
19
+ # end
20
+ #
21
+ shared_examples_for "example app with orm_adapter" do
22
+
23
+ def create_model(klass, attrs = {})
24
+ klass.create!(attrs)
25
+ end
26
+
27
+ def reload_model(model)
28
+ model.class.find(model.id)
29
+ end
30
+
31
+ describe "an ORM class" do
32
+ subject { note_class }
33
+
34
+ it "#to_adapter should return an adapter instance" do
35
+ subject.to_adapter.should be_a(OrmAdapter::Base)
36
+ end
37
+
38
+ it "#to_adapter should return an adapter for the receiver" do
39
+ subject.to_adapter.klass.should == subject
40
+ end
41
+
42
+ it "#to_adapter should be cached" do
43
+ subject.to_adapter.object_id.should == subject.to_adapter.object_id
44
+ end
45
+ end
46
+
47
+ describe "adapter instance" do
48
+ let(:note_adapter) { note_class.to_adapter }
49
+ let(:user_adapter) { user_class.to_adapter }
50
+
51
+ describe "#get!(id)" do
52
+ it "should return the instance with id if it exists" do
53
+ user = create_model(user_class)
54
+ user_adapter.get!(user.id).should == user
55
+ end
56
+
57
+ it "should allow to_key like arguments" do
58
+ user = create_model(user_class)
59
+ user_adapter.get!(user.to_key).should == user
60
+ end
61
+
62
+ it "should raise an error if there is no instance with that id" do
63
+ lambda { user_adapter.get!("nonexistent id") }.should raise_error
64
+ end
65
+ end
66
+
67
+ describe "#get(id)" do
68
+ it "should return the instance with id if it exists" do
69
+ user = create_model(user_class)
70
+ user_adapter.get(user.id).should == user
71
+ end
72
+
73
+ it "should allow to_key like arguments" do
74
+ user = create_model(user_class)
75
+ user_adapter.get(user.to_key).should == user
76
+ end
77
+
78
+ it "should return nil if there is no instance with that id" do
79
+ user_adapter.get("nonexistent id").should be_nil
80
+ end
81
+ end
82
+
83
+ describe "#find_first" do
84
+ describe "(conditions)" do
85
+ it "should return first model matching conditions, if it exists" do
86
+ user = create_model(user_class, :name => "Fred")
87
+ user_adapter.find_first(:name => "Fred").should == user
88
+ end
89
+
90
+ it "should return nil if no conditions match" do
91
+ user_adapter.find_first(:name => "Betty").should == nil
92
+ end
93
+
94
+ it 'should return the first model if no conditions passed' do
95
+ user = create_model(user_class)
96
+ create_model(user_class)
97
+ user_adapter.find_first.should == user
98
+ end
99
+
100
+ it "when conditions contain associated object, should return first model if it exists" do
101
+ user = create_model(user_class)
102
+ note = create_model(note_class, :owner => user)
103
+ note_adapter.find_first(:owner => user).should == note
104
+ end
105
+
106
+ it "understands :id as a primary key condition (allowing scoped finding)" do
107
+ create_model(user_class, :name => "Fred")
108
+ user = create_model(user_class, :name => "Fred")
109
+ user_adapter.find_first(:id => user.id, :name => "Fred").should == user
110
+ user_adapter.find_first(:id => user.id, :name => "Not Fred").should be_nil
111
+ end
112
+ end
113
+
114
+ describe "(:order => <order array>)" do
115
+ it "should return first model in specified order" do
116
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
117
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
118
+ user_adapter.find_first(:order => [:name, [:rating, :desc]]).should == user2
119
+ end
120
+ end
121
+
122
+ describe "(:conditions => <conditions hash>, :order => <order array>)" do
123
+ it "should return first model matching conditions, in specified order" do
124
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
125
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
126
+ user_adapter.find_first(:conditions => {:name => "Fred"}, :order => [:rating, :desc]).should == user2
127
+ end
128
+ end
129
+ end
130
+
131
+ describe "#find_all" do
132
+ describe "(conditions)" do
133
+ it "should return only models matching conditions" do
134
+ user1 = create_model(user_class, :name => "Fred")
135
+ user2 = create_model(user_class, :name => "Fred")
136
+ user3 = create_model(user_class, :name => "Betty")
137
+ user_adapter.find_all(:name => "Fred").should == [user1, user2]
138
+ end
139
+
140
+ it "should return all models if no conditions passed" do
141
+ user1 = create_model(user_class, :name => "Fred")
142
+ user2 = create_model(user_class, :name => "Fred")
143
+ user3 = create_model(user_class, :name => "Betty")
144
+ user_adapter.find_all.should == [user1, user2, user3]
145
+ end
146
+
147
+ it "should return empty array if no conditions match" do
148
+ user_adapter.find_all(:name => "Fred").should == []
149
+ end
150
+
151
+ it "when conditions contain associated object, should return first model if it exists" do
152
+ user1, user2 = create_model(user_class), create_model(user_class)
153
+ note1 = create_model(note_class, :owner => user1)
154
+ note2 = create_model(note_class, :owner => user2)
155
+ note_adapter.find_all(:owner => user2).should == [note2]
156
+ end
157
+ end
158
+
159
+ describe "(:order => <order array>)" do
160
+ it "should return all models in specified order" do
161
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
162
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
163
+ user3 = create_model(user_class, :name => "Betty", :rating => 1)
164
+ user_adapter.find_all(:order => [:name, [:rating, :desc]]).should == [user3, user2, user1]
165
+ end
166
+ end
167
+
168
+ describe "(:conditions => <conditions hash>, :order => <order array>)" do
169
+ it "should return only models matching conditions, in specified order" do
170
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
171
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
172
+ user3 = create_model(user_class, :name => "Betty", :rating => 1)
173
+ user_adapter.find_all(:conditions => {:name => "Fred"}, :order => [:rating, :desc]).should == [user2, user1]
174
+ end
175
+ end
176
+
177
+ describe "(:limit => <number of items>)" do
178
+ it "should return a limited set of matching models" do
179
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
180
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
181
+ user3 = create_model(user_class, :name => "Betty", :rating => 1)
182
+ user_adapter.find_all(:limit => 1).should == [user1]
183
+ user_adapter.find_all(:limit => 2).should == [user1, user2]
184
+ end
185
+ end
186
+
187
+ describe "(:offset => <offset number>) with limit (as DataMapper doesn't allow offset on its own)" do
188
+ it "should return an offset set of matching models" do
189
+ user1 = create_model(user_class, :name => "Fred", :rating => 1)
190
+ user2 = create_model(user_class, :name => "Fred", :rating => 2)
191
+ user3 = create_model(user_class, :name => "Betty", :rating => 1)
192
+ user_adapter.find_all(:limit => 3, :offset => 0).should == [user1, user2, user3]
193
+ user_adapter.find_all(:limit => 3, :offset => 1).should == [user2, user3]
194
+ user_adapter.find_all(:limit => 1, :offset => 1).should == [user2]
195
+ end
196
+ end
197
+ end
198
+
199
+ describe "#create!(attributes)" do
200
+ it "should create a model with the passed attributes" do
201
+ user = user_adapter.create!(:name => "Fred")
202
+ reload_model(user).name.should == "Fred"
203
+ end
204
+
205
+ it "should raise error when create fails" do
206
+ lambda { user_adapter.create!(:user => create_model(note_class)) }.should raise_error
207
+ end
208
+
209
+ it "when attributes contain an associated object, should create a model with the attributes" do
210
+ user = create_model(user_class)
211
+ note = note_adapter.create!(:owner => user)
212
+ reload_model(note).owner.should == user
213
+ end
214
+
215
+ it "when attributes contain an has_many assoc, should create a model with the attributes" do
216
+ notes = [create_model(note_class), create_model(note_class)]
217
+ user = user_adapter.create!(:notes => notes)
218
+ reload_model(user).notes.should == notes
219
+ end
220
+ end
221
+
222
+ describe "#destroy(instance)" do
223
+ it "should destroy the instance if it exists" do
224
+ user = create_model(user_class)
225
+ user_adapter.destroy(user).should == true
226
+ user_adapter.get(user.id).should be_nil
227
+ end
228
+
229
+ it "should return nil if passed with an invalid instance" do
230
+ user_adapter.destroy("nonexistent instance").should be_nil
231
+ end
232
+
233
+ it "should not destroy the instance if it doesn't match the model class" do
234
+ user = create_model(user_class)
235
+ note_adapter.destroy(user).should be_nil
236
+ user_adapter.get(user.id).should == user
237
+ end
238
+ end
239
+ end
240
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe OrmAdapter do
4
+ subject { OrmAdapter }
5
+
6
+ describe "when a new adapter is created (by inheriting form OrmAdapter::Base)" do
7
+ let!(:adapter) { Class.new(OrmAdapter::Base) }
8
+
9
+ its(:adapters) { should include(adapter) }
10
+
11
+ after { OrmAdapter.adapters.delete(adapter) }
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+
4
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
5
+
6
+ ['dm-core', 'mongoid', 'active_record', 'mongo_mapper'].each do |orm|
7
+ begin
8
+ require orm
9
+ rescue LoadError
10
+ puts "#{orm} not available"
11
+ end
12
+ end
13
+
14
+ require 'dm-active_model' if defined?(DataMapper)
15
+ require 'orm_adapter'
metadata ADDED
@@ -0,0 +1,290 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: orm_adapter_rails4_fix
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ian White
9
+ - Jose Valim
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-10-25 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: bundler
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.0
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: 1.0.0
31
+ - !ruby/object:Gem::Dependency
32
+ name: git
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: 1.2.5
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: 1.2.5
47
+ - !ruby/object:Gem::Dependency
48
+ name: yard
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.6.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: 0.6.0
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: 0.8.7
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: 0.8.7
79
+ - !ruby/object:Gem::Dependency
80
+ name: activerecord
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: 3.0.0
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: 3.0.0
95
+ - !ruby/object:Gem::Dependency
96
+ name: mongoid
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: 2.0.0.beta.20
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: 2.0.0.beta.20
111
+ - !ruby/object:Gem::Dependency
112
+ name: mongo_mapper
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: 0.9.0
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: 0.9.0
127
+ - !ruby/object:Gem::Dependency
128
+ name: bson_ext
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: 1.3.0
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: 1.3.0
143
+ - !ruby/object:Gem::Dependency
144
+ name: rspec
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: 2.4.0
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: 2.4.0
159
+ - !ruby/object:Gem::Dependency
160
+ name: sqlite3
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: 1.3.2
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: 1.3.2
175
+ - !ruby/object:Gem::Dependency
176
+ name: datamapper
177
+ requirement: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '1.0'
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: '1.0'
191
+ - !ruby/object:Gem::Dependency
192
+ name: dm-sqlite-adapter
193
+ requirement: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ! '>='
197
+ - !ruby/object:Gem::Version
198
+ version: '1.0'
199
+ type: :development
200
+ prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ! '>='
205
+ - !ruby/object:Gem::Version
206
+ version: '1.0'
207
+ - !ruby/object:Gem::Dependency
208
+ name: dm-active_model
209
+ requirement: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '1.0'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '1.0'
223
+ description: Provides a single point of entry for using basic features of ruby ORMs
224
+ email: ian.w.white@gmail.com
225
+ executables: []
226
+ extensions: []
227
+ extra_rdoc_files: []
228
+ files:
229
+ - .gitignore
230
+ - .rspec
231
+ - .travis.yml
232
+ - Gemfile
233
+ - Gemfile.lock.development
234
+ - History.txt
235
+ - LICENSE
236
+ - README.rdoc
237
+ - Rakefile
238
+ - lib/orm_adapter.rb
239
+ - lib/orm_adapter/adapters/active_record.rb
240
+ - lib/orm_adapter/adapters/data_mapper.rb
241
+ - lib/orm_adapter/adapters/mongo_mapper.rb
242
+ - lib/orm_adapter/adapters/mongoid.rb
243
+ - lib/orm_adapter/base.rb
244
+ - lib/orm_adapter/to_adapter.rb
245
+ - lib/orm_adapter/version.rb
246
+ - orm_adapter.gemspec
247
+ - spec/orm_adapter/adapters/active_record_spec.rb
248
+ - spec/orm_adapter/adapters/data_mapper_spec.rb
249
+ - spec/orm_adapter/adapters/mongo_mapper_spec.rb
250
+ - spec/orm_adapter/adapters/mongoid_spec.rb
251
+ - spec/orm_adapter/base_spec.rb
252
+ - spec/orm_adapter/example_app_shared.rb
253
+ - spec/orm_adapter_spec.rb
254
+ - spec/spec_helper.rb
255
+ homepage: http://github.com/ianwhite/orm_adapter
256
+ licenses: []
257
+ post_install_message:
258
+ rdoc_options: []
259
+ require_paths:
260
+ - lib
261
+ required_ruby_version: !ruby/object:Gem::Requirement
262
+ none: false
263
+ requirements:
264
+ - - ! '>='
265
+ - !ruby/object:Gem::Version
266
+ version: '0'
267
+ required_rubygems_version: !ruby/object:Gem::Requirement
268
+ none: false
269
+ requirements:
270
+ - - ! '>='
271
+ - !ruby/object:Gem::Version
272
+ version: 1.3.6
273
+ requirements: []
274
+ rubyforge_project: orm_adapter
275
+ rubygems_version: 1.8.24
276
+ signing_key:
277
+ specification_version: 3
278
+ summary: orm_adapter provides a single point of entry for using basic features of
279
+ popular ruby ORMs. Its target audience is gem authors who want to support many
280
+ ruby ORMs.
281
+ test_files:
282
+ - spec/orm_adapter/adapters/active_record_spec.rb
283
+ - spec/orm_adapter/adapters/data_mapper_spec.rb
284
+ - spec/orm_adapter/adapters/mongo_mapper_spec.rb
285
+ - spec/orm_adapter/adapters/mongoid_spec.rb
286
+ - spec/orm_adapter/base_spec.rb
287
+ - spec/orm_adapter/example_app_shared.rb
288
+ - spec/orm_adapter_spec.rb
289
+ - spec/spec_helper.rb
290
+ has_rdoc: