mince_mongo_db 1.0.2 → 1.1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c07a984903dd24ed1d9352c859ee464d00a4838d
4
+ data.tar.gz: fd0f28283f1f484f43a50e8b66c86ece1e769e23
5
+ SHA512:
6
+ metadata.gz: a57db0d10f24192bcdb281c06b2b5fc929ee24cddec77e829a82c3fd6323c6869c57af908ad5402184bbf96c97ba41f1515b2aa0796956d765870a7d6cf86068
7
+ data.tar.gz: 5a5eeb539f7cd0eca447d9215d6901b4b174c2e45b4557936cb1cf811eea972dc59bfb0a66bd8f41717f70bbfed17f283731b9bc27ebd70ce6405c4f312d6fb2
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (c) 2012 Asynchrony
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
@@ -0,0 +1,63 @@
1
+ # MinceMongoDb
2
+
3
+ [![Travis CI](https://travis-ci.org/coffeencoke/mince_mongo_db.png)](https://travis-ci.org/#!/coffeencoke/mince_mongo_db)
4
+
5
+ MinceMongoDb is a ruby ORM to provide a quick way to develop with a MongoDB database in Ruby applications.
6
+
7
+ It is a database interface that abides to the [Mince](https://github.com/coffeencoke/mince/) interface API requirements and is officially supported by [Mince](https://github.com/coffeencoke/mince/).
8
+
9
+ # How to use it
10
+
11
+ View the [Mince Wiki](https://github.com/coffeencoke/mince/wiki) on details on how to use this gem.
12
+
13
+ Basically -
14
+
15
+ ```
16
+ gem install mince_mongo_db
17
+ ```
18
+
19
+ ```ruby
20
+ require 'mince_mongo_db'
21
+
22
+ interface = MinceMongoDb::Interface
23
+ interface.add 'tron_light_cycles', luminating_color: 'red', grid_locked: true, rezzed: false
24
+ interface.add 'tron_light_cycles', luminating_color: 'blue', grid_locked: true, rezzed: true
25
+ all = interface.find_all('tron_light_cycles')
26
+ # => <Mongo::Cursor:0x3fccb15d16b0 namespace='mince.tron_light_cycles' @selector={} @cursor_id=>
27
+ all.to_a
28
+ # => [{"_id"=>BSON::ObjectId('511af435d20cae9055000001'), "luminating_color"=>"red", "grid_locked"=>true, "rezzed"=>false}, {"_id"=>BSON::ObjectId('511af435d20cae9055000002'), "luminating_color"=>"blue", "grid_locked"=>true, "rezzed"=>true}]
29
+ interface.get_for_key_with_value('tron_light_cycles', :luminating_color, 'blue')
30
+ # => {"_id"=>BSON::ObjectId('511af435d20cae9055000002'), "luminating_color"=>"blue", "grid_locked"=>true, "rezzed"=>true}
31
+ ```
32
+
33
+ Change some configs
34
+
35
+ ```ruby
36
+ MinceMongoDb::Config.database_name = 'foo' # Defaults to 'mince'
37
+ MinceMongoDb::Config.database_host = 'db.myapp.com' # Defaults to 'localhsot'
38
+ MinceMongoDb::Config.username = 'app_db_user' # Defaults to none
39
+ MinceMongoDb::Config.password = 'passw0rd' # Defaults to none
40
+
41
+ # Or
42
+
43
+ MinceMongoDb::Config.options = {
44
+ database_name: 'foo',
45
+ database_host: 'db.myapp.com',
46
+ username: 'app_db_user',
47
+ password: 'passw0rd'
48
+ }
49
+ ```
50
+
51
+ # Links
52
+
53
+ * [API Docs](http://rdoc.info/github/coffeencoke/mince_mongo_db/master/frames)
54
+ * [Travis CI](https://travis-ci.org/#!/coffeencoke/mince_mongo_db)
55
+ * [Rubygems](https://rubygems.org/gems/mince_mongo_db)
56
+ * [Github](https://github.com/coffeencoke/mince_mongo_db)
57
+ * [Wiki](https://github.com/coffeencoke/mince_mongo_db/wiki)
58
+ * [Issues](https://github.com/coffeencoke/mince_mongo_db/issues)
59
+ * [Mince](https://github.com/coffeencoke/mince)
60
+
61
+ # Contribute
62
+
63
+ This gem is officially supported by [Mince](https://github.com/coffeencoke/mince/), please go there to learn how to contribute.
@@ -63,6 +63,10 @@ module MinceMongoDb
63
63
  collection(collection_name).update({primary_key.to_s => identifying_value}, {'$pull' => {array_key.to_s => value_to_remove}})
64
64
  end
65
65
 
66
+ def self.all_before(collection_name, key, value)
67
+ collection(collection_name).find({key.to_s => {"$lt" => value}})
68
+ end
69
+
66
70
  def self.containing_any(collection_name, key, values)
67
71
  collection(collection_name).find({key.to_s => {"$in" => values}})
68
72
  end
@@ -5,11 +5,11 @@ module MinceMongoDb
5
5
  end
6
6
 
7
7
  def self.minor
8
- 0
8
+ 1
9
9
  end
10
10
 
11
11
  def self.patch
12
- 2
12
+ 0
13
13
  end
14
14
  end
15
15
 
@@ -82,7 +82,7 @@ describe MinceMongoDb::Interface do
82
82
 
83
83
  interface.find_all(collection_name).should == return_data
84
84
  end
85
-
85
+
86
86
  it 'can find a record by id' do
87
87
  collection.should_receive(:find_one).with(primary_key.to_s => mock_id).and_return(return_data)
88
88
 
@@ -133,6 +133,13 @@ describe MinceMongoDb::Interface do
133
133
  interface.containing_any(collection_name, "key1", [1,2,4]).should == return_data
134
134
  end
135
135
 
136
+ it 'can get all records where a value is less than a given value' do
137
+ value = mock
138
+ collection.should_receive(:find).with({"key1" => { "$lt" => value } }).and_return(return_data)
139
+
140
+ interface.all_before(collection_name, "key1", value).should == return_data
141
+ end
142
+
136
143
  it 'can get all records where the array includes a value' do
137
144
  collection.should_receive(:find).with({"key" => "value"}).and_return(return_data)
138
145
 
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mince_mongo_db
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
5
- prerelease:
4
+ version: 1.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Matt Simpson
@@ -11,12 +10,11 @@ authors:
11
10
  autorequire:
12
11
  bindir: bin
13
12
  cert_chain: []
14
- date: 2013-03-18 00:00:00.000000000 Z
13
+ date: 2013-06-08 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: mongo
18
17
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
18
  requirements:
21
19
  - - ~>
22
20
  - !ruby/object:Gem::Version
@@ -24,7 +22,6 @@ dependencies:
24
22
  type: :runtime
25
23
  prerelease: false
26
24
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
25
  requirements:
29
26
  - - ~>
30
27
  - !ruby/object:Gem::Version
@@ -32,7 +29,6 @@ dependencies:
32
29
  - !ruby/object:Gem::Dependency
33
30
  name: bson_ext
34
31
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
32
  requirements:
37
33
  - - ~>
38
34
  - !ruby/object:Gem::Version
@@ -40,7 +36,6 @@ dependencies:
40
36
  type: :runtime
41
37
  prerelease: false
42
38
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
39
  requirements:
45
40
  - - ~>
46
41
  - !ruby/object:Gem::Version
@@ -48,7 +43,6 @@ dependencies:
48
43
  - !ruby/object:Gem::Dependency
49
44
  name: activesupport
50
45
  requirement: !ruby/object:Gem::Requirement
51
- none: false
52
46
  requirements:
53
47
  - - ~>
54
48
  - !ruby/object:Gem::Version
@@ -56,7 +50,6 @@ dependencies:
56
50
  type: :runtime
57
51
  prerelease: false
58
52
  version_requirements: !ruby/object:Gem::Requirement
59
- none: false
60
53
  requirements:
61
54
  - - ~>
62
55
  - !ruby/object:Gem::Version
@@ -64,7 +57,6 @@ dependencies:
64
57
  - !ruby/object:Gem::Dependency
65
58
  name: rake
66
59
  requirement: !ruby/object:Gem::Requirement
67
- none: false
68
60
  requirements:
69
61
  - - ~>
70
62
  - !ruby/object:Gem::Version
@@ -72,7 +64,6 @@ dependencies:
72
64
  type: :development
73
65
  prerelease: false
74
66
  version_requirements: !ruby/object:Gem::Requirement
75
- none: false
76
67
  requirements:
77
68
  - - ~>
78
69
  - !ruby/object:Gem::Version
@@ -80,7 +71,6 @@ dependencies:
80
71
  - !ruby/object:Gem::Dependency
81
72
  name: rspec
82
73
  requirement: !ruby/object:Gem::Requirement
83
- none: false
84
74
  requirements:
85
75
  - - ~>
86
76
  - !ruby/object:Gem::Version
@@ -88,7 +78,6 @@ dependencies:
88
78
  type: :development
89
79
  prerelease: false
90
80
  version_requirements: !ruby/object:Gem::Requirement
91
- none: false
92
81
  requirements:
93
82
  - - ~>
94
83
  - !ruby/object:Gem::Version
@@ -96,7 +85,6 @@ dependencies:
96
85
  - !ruby/object:Gem::Dependency
97
86
  name: guard-rspec
98
87
  requirement: !ruby/object:Gem::Requirement
99
- none: false
100
88
  requirements:
101
89
  - - ~>
102
90
  - !ruby/object:Gem::Version
@@ -104,7 +92,6 @@ dependencies:
104
92
  type: :development
105
93
  prerelease: false
106
94
  version_requirements: !ruby/object:Gem::Requirement
107
- none: false
108
95
  requirements:
109
96
  - - ~>
110
97
  - !ruby/object:Gem::Version
@@ -112,7 +99,6 @@ dependencies:
112
99
  - !ruby/object:Gem::Dependency
113
100
  name: yard
114
101
  requirement: !ruby/object:Gem::Requirement
115
- none: false
116
102
  requirements:
117
103
  - - ~>
118
104
  - !ruby/object:Gem::Version
@@ -120,7 +106,6 @@ dependencies:
120
106
  type: :development
121
107
  prerelease: false
122
108
  version_requirements: !ruby/object:Gem::Requirement
123
- none: false
124
109
  requirements:
125
110
  - - ~>
126
111
  - !ruby/object:Gem::Version
@@ -128,7 +113,6 @@ dependencies:
128
113
  - !ruby/object:Gem::Dependency
129
114
  name: redcarpet
130
115
  requirement: !ruby/object:Gem::Requirement
131
- none: false
132
116
  requirements:
133
117
  - - ~>
134
118
  - !ruby/object:Gem::Version
@@ -136,7 +120,6 @@ dependencies:
136
120
  type: :development
137
121
  prerelease: false
138
122
  version_requirements: !ruby/object:Gem::Requirement
139
- none: false
140
123
  requirements:
141
124
  - - ~>
142
125
  - !ruby/object:Gem::Version
@@ -144,7 +127,6 @@ dependencies:
144
127
  - !ruby/object:Gem::Dependency
145
128
  name: debugger
146
129
  requirement: !ruby/object:Gem::Requirement
147
- none: false
148
130
  requirements:
149
131
  - - ~>
150
132
  - !ruby/object:Gem::Version
@@ -152,7 +134,6 @@ dependencies:
152
134
  type: :development
153
135
  prerelease: false
154
136
  version_requirements: !ruby/object:Gem::Requirement
155
- none: false
156
137
  requirements:
157
138
  - - ~>
158
139
  - !ruby/object:Gem::Version
@@ -160,23 +141,20 @@ dependencies:
160
141
  - !ruby/object:Gem::Dependency
161
142
  name: mince
162
143
  requirement: !ruby/object:Gem::Requirement
163
- none: false
164
144
  requirements:
165
145
  - - ~>
166
146
  - !ruby/object:Gem::Version
167
- version: '2.0'
147
+ version: '2.2'
168
148
  type: :development
169
149
  prerelease: false
170
150
  version_requirements: !ruby/object:Gem::Requirement
171
- none: false
172
151
  requirements:
173
152
  - - ~>
174
153
  - !ruby/object:Gem::Version
175
- version: '2.0'
154
+ version: '2.2'
176
155
  - !ruby/object:Gem::Dependency
177
156
  name: rb-fsevent
178
157
  requirement: !ruby/object:Gem::Requirement
179
- none: false
180
158
  requirements:
181
159
  - - ~>
182
160
  - !ruby/object:Gem::Version
@@ -184,7 +162,6 @@ dependencies:
184
162
  type: :development
185
163
  prerelease: false
186
164
  version_requirements: !ruby/object:Gem::Requirement
187
- none: false
188
165
  requirements:
189
166
  - - ~>
190
167
  - !ruby/object:Gem::Version
@@ -197,43 +174,42 @@ executables: []
197
174
  extensions: []
198
175
  extra_rdoc_files: []
199
176
  files:
200
- - lib/mince_mongo_db.rb
201
177
  - lib/mince_mongo_db/config.rb
202
178
  - lib/mince_mongo_db/connection.rb
203
179
  - lib/mince_mongo_db/data_store.rb
204
180
  - lib/mince_mongo_db/interface.rb
205
181
  - lib/mince_mongo_db/version.rb
182
+ - lib/mince_mongo_db.rb
183
+ - LICENSE
184
+ - README.md
206
185
  - spec/integration/mince_interface_spec.rb
207
186
  - spec/units/mince_mongo_db/config_spec.rb
208
187
  - spec/units/mince_mongo_db/connection_spec.rb
209
188
  - spec/units/mince_mongo_db/data_store_spec.rb
210
189
  - spec/units/mince_mongo_db/interface_spec.rb
211
190
  homepage: https://github.com/coffeencoke/mince_mongo_db
212
- licenses: []
191
+ licenses:
192
+ - MIT
193
+ metadata: {}
213
194
  post_install_message:
214
195
  rdoc_options: []
215
196
  require_paths:
216
197
  - lib
217
198
  required_ruby_version: !ruby/object:Gem::Requirement
218
- none: false
219
199
  requirements:
220
- - - ! '>='
200
+ - - '>='
221
201
  - !ruby/object:Gem::Version
222
202
  version: 1.9.3
223
203
  required_rubygems_version: !ruby/object:Gem::Requirement
224
- none: false
225
204
  requirements:
226
- - - ! '>='
205
+ - - '>='
227
206
  - !ruby/object:Gem::Version
228
207
  version: '0'
229
- segments:
230
- - 0
231
- hash: 3427043532124513554
232
208
  requirements: []
233
209
  rubyforge_project: mince_mongo_db
234
- rubygems_version: 1.8.25
210
+ rubygems_version: 2.0.3
235
211
  signing_key:
236
- specification_version: 3
212
+ specification_version: 4
237
213
  summary: Lightweight MongoDB ORM for Ruby.
238
214
  test_files:
239
215
  - spec/integration/mince_interface_spec.rb