orm_adapter 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +2 -2
- data/Gemfile.lock.development +1 -1
- data/History.txt +5 -0
- data/LICENSE +1 -1
- data/README.rdoc +8 -2
- data/lib/orm_adapter/adapters/active_record.rb +4 -4
- data/lib/orm_adapter/adapters/data_mapper.rb +7 -7
- data/lib/orm_adapter/adapters/mongo_mapper.rb +5 -5
- data/lib/orm_adapter/adapters/mongoid.rb +7 -5
- data/lib/orm_adapter/base.rb +11 -11
- data/lib/orm_adapter/version.rb +1 -1
- data/spec/orm_adapter/example_app_shared.rb +41 -15
- metadata +29 -29
data/.travis.yml
CHANGED
data/Gemfile.lock.development
CHANGED
data/History.txt
CHANGED
data/LICENSE
CHANGED
data/README.rdoc
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
= ORM Adapter
|
1
|
+
= ORM Adapter {<img src="https://secure.travis-ci.org/ianwhite/orm_adapter.png?branch=master" alt="Build Status" />}[http://travis-ci.org/ianwhite/orm_adapter]
|
2
2
|
|
3
3
|
Provides a single point of entry for popular ruby ORMs. Its target audience is gem authors who want to support more than one ORM.
|
4
4
|
|
@@ -14,9 +14,14 @@ Provides a single point of entry for popular ruby ORMs. Its target audience is
|
|
14
14
|
user_model = User.to_adapter
|
15
15
|
user_model.get!(1) # find a record by id
|
16
16
|
user_model.find_first(:name => 'fred') # find first fred
|
17
|
+
user_model.find_first(:level => 'awesome', :id => 23)
|
18
|
+
# find user 23, only if it's level is awesome
|
19
|
+
user_model.find_all # find all users
|
17
20
|
user_model.find_all(:name => 'fred') # find all freds
|
18
21
|
user_model.find_all(:order => :name) # find all freds, ordered by name
|
19
22
|
user_model.create!(:name => 'fred') # create a fred
|
23
|
+
user_model.destroy(object) # destroy the user object
|
24
|
+
|
20
25
|
|
21
26
|
@see OrmAdapter::Base for more details of the supported API
|
22
27
|
|
@@ -56,6 +61,7 @@ orm_adapter is an extraction from {pickle}[http://github.com/ianwhite/pickle] by
|
|
56
61
|
|
57
62
|
{Fred Wu}[http://github.com/fredwu] contributes the #destroy methods.
|
58
63
|
|
64
|
+
{Tim Galeckas}[http://github.com/timgaleckas]
|
59
65
|
|
60
66
|
== Development
|
61
67
|
|
@@ -70,4 +76,4 @@ To run the specs, you can start from the last known good set of gem dependencies
|
|
70
76
|
|
71
77
|
== Copyright
|
72
78
|
|
73
|
-
Copyright (c) 2010-
|
79
|
+
Copyright (c) 2010-2012 Ian White and José Valim. See LICENSE for details.
|
@@ -34,19 +34,19 @@ module OrmAdapter
|
|
34
34
|
end
|
35
35
|
|
36
36
|
# @see OrmAdapter::Base#find_first
|
37
|
-
def find_first(options)
|
37
|
+
def find_first(options = {})
|
38
38
|
conditions, order = extract_conditions_and_order!(options)
|
39
39
|
klass.where(conditions_to_fields(conditions)).order(*order_clause(order)).first
|
40
40
|
end
|
41
41
|
|
42
42
|
# @see OrmAdapter::Base#find_all
|
43
|
-
def find_all(options)
|
43
|
+
def find_all(options = {})
|
44
44
|
conditions, order = extract_conditions_and_order!(options)
|
45
45
|
klass.where(conditions_to_fields(conditions)).order(*order_clause(order)).all
|
46
46
|
end
|
47
47
|
|
48
48
|
# @see OrmAdapter::Base#create!
|
49
|
-
def create!(attributes)
|
49
|
+
def create!(attributes = {})
|
50
50
|
klass.create!(attributes)
|
51
51
|
end
|
52
52
|
|
@@ -87,4 +87,4 @@ end
|
|
87
87
|
ActiveSupport.on_load(:active_record) do
|
88
88
|
extend ::OrmAdapter::ToAdapter
|
89
89
|
self::OrmAdapter = ::OrmAdapter::ActiveRecord
|
90
|
-
end
|
90
|
+
end
|
@@ -4,7 +4,7 @@ module DataMapper
|
|
4
4
|
module Model
|
5
5
|
include OrmAdapter::ToAdapter
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
module Resource
|
9
9
|
class OrmAdapter < ::OrmAdapter::Base
|
10
10
|
|
@@ -34,29 +34,29 @@ module DataMapper
|
|
34
34
|
end
|
35
35
|
|
36
36
|
# @see OrmAdapter::Base#find_first
|
37
|
-
def find_first(options)
|
37
|
+
def find_first(options = {})
|
38
38
|
conditions, order = extract_conditions_and_order!(options)
|
39
39
|
klass.first :conditions => conditions, :order => order_clause(order)
|
40
40
|
end
|
41
41
|
|
42
42
|
# @see OrmAdapter::Base#find_all
|
43
|
-
def find_all(options)
|
43
|
+
def find_all(options = {})
|
44
44
|
conditions, order = extract_conditions_and_order!(options)
|
45
45
|
klass.all :conditions => conditions, :order => order_clause(order)
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
# @see OrmAdapter::Base#create!
|
49
|
-
def create!(attributes)
|
49
|
+
def create!(attributes = {})
|
50
50
|
klass.create(attributes)
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
# @see OrmAdapter::Base#destroy
|
54
54
|
def destroy(object)
|
55
55
|
object.destroy if valid_object?(object)
|
56
56
|
end
|
57
57
|
|
58
58
|
protected
|
59
|
-
|
59
|
+
|
60
60
|
def order_clause(order)
|
61
61
|
order.map {|pair| pair.first.send(pair.last)}
|
62
62
|
end
|
@@ -5,7 +5,7 @@ module MongoMapper
|
|
5
5
|
module ClassMethods
|
6
6
|
include OrmAdapter::ToAdapter
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
class OrmAdapter < ::OrmAdapter::Base
|
10
10
|
# Do not consider these to be part of the class list
|
11
11
|
def self.except_classes
|
@@ -33,21 +33,21 @@ module MongoMapper
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# @see OrmAdapter::Base#find_first
|
36
|
-
def find_first(conditions)
|
36
|
+
def find_first(conditions = {})
|
37
37
|
conditions, order = extract_conditions_and_order!(conditions)
|
38
38
|
conditions = conditions.merge(:sort => order) unless order.nil?
|
39
39
|
klass.first(conditions_to_fields(conditions))
|
40
40
|
end
|
41
41
|
|
42
42
|
# @see OrmAdapter::Base#find_all
|
43
|
-
def find_all(conditions)
|
43
|
+
def find_all(conditions = {})
|
44
44
|
conditions, order = extract_conditions_and_order!(conditions)
|
45
45
|
conditions = conditions.merge(:sort => order) unless order.nil?
|
46
46
|
klass.all(conditions_to_fields(conditions))
|
47
47
|
end
|
48
48
|
|
49
49
|
# @see OrmAdapter::Base#create!
|
50
|
-
def create!(attributes)
|
50
|
+
def create!(attributes = {})
|
51
51
|
klass.create!(attributes)
|
52
52
|
end
|
53
53
|
|
@@ -70,4 +70,4 @@ module MongoMapper
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
end
|
73
|
-
end
|
73
|
+
end
|
@@ -5,7 +5,7 @@ module Mongoid
|
|
5
5
|
module ClassMethods
|
6
6
|
include OrmAdapter::ToAdapter
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
class OrmAdapter < ::OrmAdapter::Base
|
10
10
|
# Do not consider these to be part of the class list
|
11
11
|
def self.except_classes
|
@@ -33,22 +33,22 @@ module Mongoid
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# @see OrmAdapter::Base#find_first
|
36
|
-
def find_first(options)
|
36
|
+
def find_first(options = {})
|
37
37
|
conditions, order = extract_conditions_and_order!(options)
|
38
38
|
klass.limit(1).where(conditions_to_fields(conditions)).order_by(order).first
|
39
39
|
end
|
40
40
|
|
41
41
|
# @see OrmAdapter::Base#find_all
|
42
|
-
def find_all(options)
|
42
|
+
def find_all(options = {})
|
43
43
|
conditions, order = extract_conditions_and_order!(options)
|
44
44
|
klass.where(conditions_to_fields(conditions)).order_by(order)
|
45
45
|
end
|
46
46
|
|
47
47
|
# @see OrmAdapter::Base#create!
|
48
|
-
def create!(attributes)
|
48
|
+
def create!(attributes = {})
|
49
49
|
klass.create!(attributes)
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
# @see OrmAdapter::Base#destroy
|
53
53
|
def destroy(object)
|
54
54
|
object.destroy if valid_object?(object)
|
@@ -61,6 +61,8 @@ module Mongoid
|
|
61
61
|
conditions.inject({}) do |fields, (key, value)|
|
62
62
|
if value.is_a?(Mongoid::Document) && klass.fields.keys.include?("#{key}_id")
|
63
63
|
fields.merge("#{key}_id" => value.id)
|
64
|
+
elsif key.to_s == 'id'
|
65
|
+
fields.merge('_id' => value)
|
64
66
|
else
|
65
67
|
fields.merge(key => value)
|
66
68
|
end
|
data/lib/orm_adapter/base.rb
CHANGED
@@ -27,7 +27,7 @@ module OrmAdapter
|
|
27
27
|
def column_names
|
28
28
|
raise NotSupportedError
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
# Get an instance by id of the model. Raises an error if a model is not found.
|
32
32
|
# This should comply with ActiveModel#to_key API, i.e.:
|
33
33
|
#
|
@@ -49,7 +49,7 @@ module OrmAdapter
|
|
49
49
|
# Find the first instance, optionally matching conditions, and specifying order
|
50
50
|
#
|
51
51
|
# You can call with just conditions, providing a hash
|
52
|
-
#
|
52
|
+
#
|
53
53
|
# User.to_adapter.find_first :name => "Fred", :age => 23
|
54
54
|
#
|
55
55
|
# Or you can specify :order, and :conditions as keys
|
@@ -63,18 +63,18 @@ module OrmAdapter
|
|
63
63
|
# * a single pair with :asc, or :desc as last, e.g. <tt>:order => [:name, :desc]</tt>
|
64
64
|
# * an array of single args or pairs (with :asc or :desc as last), e.g. <tt>:order => [[:name, :asc], [:age, :desc]]</tt>
|
65
65
|
#
|
66
|
-
def find_first(options)
|
66
|
+
def find_first(options = {})
|
67
67
|
raise NotSupportedError
|
68
68
|
end
|
69
69
|
|
70
70
|
# Find all models, optionally matching conditions, and specifying order
|
71
71
|
# @see OrmAdapter::Base#find_first for how to specify order and conditions
|
72
|
-
def find_all(options)
|
72
|
+
def find_all(options = {})
|
73
73
|
raise NotSupportedError
|
74
74
|
end
|
75
75
|
|
76
76
|
# Create a model using attributes
|
77
|
-
def create!(attributes)
|
77
|
+
def create!(attributes = {})
|
78
78
|
raise NotSupportedError
|
79
79
|
end
|
80
80
|
|
@@ -92,29 +92,29 @@ module OrmAdapter
|
|
92
92
|
def wrap_key(key)
|
93
93
|
key.is_a?(Array) ? key.first : key
|
94
94
|
end
|
95
|
-
|
95
|
+
|
96
96
|
# given an options hash, with optional :conditions and :order keys, returns conditions and normalized order
|
97
97
|
def extract_conditions_and_order!(options = {})
|
98
98
|
order = normalize_order(options.delete(:order))
|
99
99
|
conditions = options.delete(:conditions) || options
|
100
100
|
[conditions, order]
|
101
101
|
end
|
102
|
-
|
102
|
+
|
103
103
|
# given an order argument, returns an array of pairs, with each pair containing the attribute, and :asc or :desc
|
104
104
|
def normalize_order(order)
|
105
105
|
order = Array(order)
|
106
|
-
|
106
|
+
|
107
107
|
if order.length == 2 && !order[0].is_a?(Array) && [:asc, :desc].include?(order[1])
|
108
108
|
order = [order]
|
109
109
|
else
|
110
110
|
order = order.map {|pair| pair.is_a?(Array) ? pair : [pair, :asc] }
|
111
111
|
end
|
112
|
-
|
112
|
+
|
113
113
|
order.each do |pair|
|
114
114
|
pair.length == 2 or raise ArgumentError, "each order clause must be a pair (unknown clause #{pair.inspect})"
|
115
115
|
[:asc, :desc].include?(pair[1]) or raise ArgumentError, "order must be specified with :asc or :desc (unknown key #{pair[1].inspect})"
|
116
116
|
end
|
117
|
-
|
117
|
+
|
118
118
|
order
|
119
119
|
end
|
120
120
|
end
|
@@ -124,4 +124,4 @@ module OrmAdapter
|
|
124
124
|
"method not supported by this orm adapter"
|
125
125
|
end
|
126
126
|
end
|
127
|
-
end
|
127
|
+
end
|
data/lib/orm_adapter/version.rb
CHANGED
@@ -19,18 +19,18 @@
|
|
19
19
|
# end
|
20
20
|
#
|
21
21
|
shared_examples_for "example app with orm_adapter" do
|
22
|
-
|
22
|
+
|
23
23
|
def create_model(klass, attrs = {})
|
24
24
|
klass.create!(attrs)
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
def reload_model(model)
|
28
28
|
model.class.find(model.id)
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
describe "an ORM class" do
|
32
32
|
subject { note_class }
|
33
|
-
|
33
|
+
|
34
34
|
it "#to_adapter should return an adapter instance" do
|
35
35
|
subject.to_adapter.should be_a(OrmAdapter::Base)
|
36
36
|
end
|
@@ -43,11 +43,11 @@ shared_examples_for "example app with orm_adapter" do
|
|
43
43
|
subject.to_adapter.object_id.should == subject.to_adapter.object_id
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
describe "adapter instance" do
|
48
48
|
let(:note_adapter) { note_class.to_adapter }
|
49
49
|
let(:user_adapter) { user_class.to_adapter }
|
50
|
-
|
50
|
+
|
51
51
|
describe "#get!(id)" do
|
52
52
|
it "should return the instance with id if it exists" do
|
53
53
|
user = create_model(user_class)
|
@@ -90,14 +90,26 @@ shared_examples_for "example app with orm_adapter" do
|
|
90
90
|
it "should return nil if no conditions match" do
|
91
91
|
user_adapter.find_first(:name => "Betty").should == nil
|
92
92
|
end
|
93
|
-
|
93
|
+
|
94
|
+
it 'allows no conditions' do
|
95
|
+
user = create_model(user_class)
|
96
|
+
user_adapter.find_first.should == user
|
97
|
+
end
|
98
|
+
|
94
99
|
it "when conditions contain associated object, should return first model if it exists" do
|
95
100
|
user = create_model(user_class)
|
96
101
|
note = create_model(note_class, :owner => user)
|
97
102
|
note_adapter.find_first(:owner => user).should == note
|
98
103
|
end
|
104
|
+
|
105
|
+
it "understands :id as a primary key condition (allowing scoped finding)" do
|
106
|
+
create_model(user_class, :name => "Fred")
|
107
|
+
user = create_model(user_class, :name => "Fred")
|
108
|
+
user_adapter.find_first(:id => user.id, :name => "Fred").should == user
|
109
|
+
user_adapter.find_first(:id => user.id, :name => "Not Fred").should be_nil
|
110
|
+
end
|
99
111
|
end
|
100
|
-
|
112
|
+
|
101
113
|
describe "(:order => <order array>)" do
|
102
114
|
it "should return first model in specified order" do
|
103
115
|
user1 = create_model(user_class, :name => "Fred", :rating => 1)
|
@@ -105,7 +117,7 @@ shared_examples_for "example app with orm_adapter" do
|
|
105
117
|
user_adapter.find_first(:order => [:name, [:rating, :desc]]).should == user2
|
106
118
|
end
|
107
119
|
end
|
108
|
-
|
120
|
+
|
109
121
|
describe "(:conditions => <conditions hash>, :order => <order array>)" do
|
110
122
|
it "should return first model matching conditions, in specified order" do
|
111
123
|
user1 = create_model(user_class, :name => "Fred", :rating => 1)
|
@@ -124,10 +136,24 @@ shared_examples_for "example app with orm_adapter" do
|
|
124
136
|
user_adapter.find_all(:name => "Fred").should == [user1, user2]
|
125
137
|
end
|
126
138
|
|
139
|
+
it "should return all models if no conditions passed" do
|
140
|
+
user1 = create_model(user_class, :name => "Fred")
|
141
|
+
user2 = create_model(user_class, :name => "Fred")
|
142
|
+
user3 = create_model(user_class, :name => "Betty")
|
143
|
+
user_adapter.find_all.should == [user1, user2, user3]
|
144
|
+
end
|
145
|
+
|
127
146
|
it "should return empty array if no conditions match" do
|
128
147
|
user_adapter.find_all(:name => "Fred").should == []
|
129
148
|
end
|
130
|
-
|
149
|
+
|
150
|
+
it 'allows no conditions' do
|
151
|
+
user1 = create_model(user_class)
|
152
|
+
user2 = create_model(user_class)
|
153
|
+
user_adapter.find_all.to_set.should == [user1, user2].to_set
|
154
|
+
end
|
155
|
+
|
156
|
+
|
131
157
|
it "when conditions contain associated object, should return first model if it exists" do
|
132
158
|
user1, user2 = create_model(user_class), create_model(user_class)
|
133
159
|
note1 = create_model(note_class, :owner => user1)
|
@@ -144,7 +170,7 @@ shared_examples_for "example app with orm_adapter" do
|
|
144
170
|
user_adapter.find_all(:order => [:name, [:rating, :desc]]).should == [user3, user2, user1]
|
145
171
|
end
|
146
172
|
end
|
147
|
-
|
173
|
+
|
148
174
|
describe "(:conditions => <conditions hash>, :order => <order array>)" do
|
149
175
|
it "should return only models matching conditions, in specified order" do
|
150
176
|
user1 = create_model(user_class, :name => "Fred", :rating => 1)
|
@@ -154,7 +180,7 @@ shared_examples_for "example app with orm_adapter" do
|
|
154
180
|
end
|
155
181
|
end
|
156
182
|
end
|
157
|
-
|
183
|
+
|
158
184
|
describe "#create!(attributes)" do
|
159
185
|
it "should create a model with the passed attributes" do
|
160
186
|
user = user_adapter.create!(:name => "Fred")
|
@@ -164,13 +190,13 @@ shared_examples_for "example app with orm_adapter" do
|
|
164
190
|
it "should raise error when create fails" do
|
165
191
|
lambda { user_adapter.create!(:user => create_model(note_class)) }.should raise_error
|
166
192
|
end
|
167
|
-
|
193
|
+
|
168
194
|
it "when attributes contain an associated object, should create a model with the attributes" do
|
169
195
|
user = create_model(user_class)
|
170
196
|
note = note_adapter.create!(:owner => user)
|
171
197
|
reload_model(note).owner.should == user
|
172
198
|
end
|
173
|
-
|
199
|
+
|
174
200
|
it "when attributes contain an has_many assoc, should create a model with the attributes" do
|
175
201
|
notes = [create_model(note_class), create_model(note_class)]
|
176
202
|
user = user_adapter.create!(:notes => notes)
|
@@ -196,4 +222,4 @@ shared_examples_for "example app with orm_adapter" do
|
|
196
222
|
end
|
197
223
|
end
|
198
224
|
end
|
199
|
-
end
|
225
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orm_adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-06-
|
13
|
+
date: 2012-06-20 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
17
|
-
requirement: &
|
17
|
+
requirement: &70150855160900 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 1.0.0
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70150855160900
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: git
|
28
|
-
requirement: &
|
28
|
+
requirement: &70150855160240 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.2.5
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70150855160240
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: yard
|
39
|
-
requirement: &
|
39
|
+
requirement: &70150855159520 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 0.6.0
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70150855159520
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rake
|
50
|
-
requirement: &
|
50
|
+
requirement: &70150855158180 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 0.8.7
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70150855158180
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: activerecord
|
61
|
-
requirement: &
|
61
|
+
requirement: &70150855157580 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 3.0.0
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70150855157580
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: mongoid
|
72
|
-
requirement: &
|
72
|
+
requirement: &70150855156740 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: 2.0.0.beta.20
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70150855156740
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: mongo_mapper
|
83
|
-
requirement: &
|
83
|
+
requirement: &70150855141820 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: 0.9.0
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *70150855141820
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: bson_ext
|
94
|
-
requirement: &
|
94
|
+
requirement: &70150855139580 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: 1.3.0
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *70150855139580
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: rspec
|
105
|
-
requirement: &
|
105
|
+
requirement: &70150855138220 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: 2.4.0
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *70150855138220
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: sqlite3
|
116
|
-
requirement: &
|
116
|
+
requirement: &70150855137100 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ! '>='
|
@@ -121,10 +121,10 @@ dependencies:
|
|
121
121
|
version: 1.3.2
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *70150855137100
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: datamapper
|
127
|
-
requirement: &
|
127
|
+
requirement: &70150855136280 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ! '>='
|
@@ -132,10 +132,10 @@ dependencies:
|
|
132
132
|
version: '1.0'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
135
|
+
version_requirements: *70150855136280
|
136
136
|
- !ruby/object:Gem::Dependency
|
137
137
|
name: dm-sqlite-adapter
|
138
|
-
requirement: &
|
138
|
+
requirement: &70150855135540 !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|
141
141
|
- - ! '>='
|
@@ -143,10 +143,10 @@ dependencies:
|
|
143
143
|
version: '1.0'
|
144
144
|
type: :development
|
145
145
|
prerelease: false
|
146
|
-
version_requirements: *
|
146
|
+
version_requirements: *70150855135540
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
148
|
name: dm-active_model
|
149
|
-
requirement: &
|
149
|
+
requirement: &70150855134420 !ruby/object:Gem::Requirement
|
150
150
|
none: false
|
151
151
|
requirements:
|
152
152
|
- - ! '>='
|
@@ -154,7 +154,7 @@ dependencies:
|
|
154
154
|
version: '1.0'
|
155
155
|
type: :development
|
156
156
|
prerelease: false
|
157
|
-
version_requirements: *
|
157
|
+
version_requirements: *70150855134420
|
158
158
|
description: Provides a single point of entry for using basic features of ruby ORMs
|
159
159
|
email: ian.w.white@gmail.com
|
160
160
|
executables: []
|
@@ -201,7 +201,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
201
201
|
version: '0'
|
202
202
|
segments:
|
203
203
|
- 0
|
204
|
-
hash:
|
204
|
+
hash: -1006971164339010428
|
205
205
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
206
|
none: false
|
207
207
|
requirements:
|