toughguy 0.2.7 → 0.2.8
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -3
- data/Rakefile +21 -1
- data/lib/toughguy/model.rb +44 -43
- data/lib/toughguy/version.rb +2 -2
- data/spec/toughguy_spec.rb +1 -1
- data/toughguy.gemspec +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 455afb848105f624c48c038bb7f4861ee4ab430a
|
4
|
+
data.tar.gz: b1cc52e6b73deaf3bd3f68ba30cbe77a3797f6ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18fd76232d199c8b41dc67327f65b0f2abab1c35b3378a53f4145ee14c9ee8946c0734282c48147ecc4bbd2890c6abc1e807fe841129032c640717a4ebe40bbe
|
7
|
+
data.tar.gz: 70a115cd1c20335aff0109f12aa56e4b37d82878a06304ecb61dddc57549d418e529a440db3119922986dd92febb5ef5397e6f1e517074e94425d144cdaba28d
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
toughguy (0.2.
|
4
|
+
toughguy (0.2.8)
|
5
5
|
assistance (= 0.1.5)
|
6
|
-
bson_ext (
|
7
|
-
mongo (
|
6
|
+
bson_ext (>= 1.8.0)
|
7
|
+
mongo (>= 1.8.0)
|
8
8
|
plucky (= 0.6.6)
|
9
9
|
|
10
10
|
GEM
|
@@ -41,3 +41,6 @@ DEPENDENCIES
|
|
41
41
|
rake
|
42
42
|
rspec
|
43
43
|
toughguy!
|
44
|
+
|
45
|
+
BUNDLED WITH
|
46
|
+
1.11.2
|
data/Rakefile
CHANGED
@@ -1,4 +1,24 @@
|
|
1
1
|
require 'rspec/core/rake_task'
|
2
2
|
RSpec::Core::RakeTask.new
|
3
3
|
|
4
|
-
task :default => :spec
|
4
|
+
task :default => :spec
|
5
|
+
|
6
|
+
require File.expand_path("./lib/toughguy/version", File.dirname(__FILE__))
|
7
|
+
PACKAGE_NAME = "toughguy"
|
8
|
+
VERSION = ToughGuy::VERSION
|
9
|
+
|
10
|
+
desc "Push gem to rubygems.org"
|
11
|
+
task :push_gem do
|
12
|
+
sh "gem build toughguy.gemspec"
|
13
|
+
sh "gem push toughguy-#{VERSION}.gem"
|
14
|
+
sh "rm *.gem"
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "Install gem locally"
|
18
|
+
task :install_gem do
|
19
|
+
sh "rm ~/.toughguy/bin/*" rescue nil
|
20
|
+
sh "gem uninstall -a -x --force toughguy"
|
21
|
+
sh "gem build toughguy.gemspec"
|
22
|
+
sh "gem install toughguy-#{VERSION}.gem"
|
23
|
+
sh "rm *.gem"
|
24
|
+
end
|
data/lib/toughguy/model.rb
CHANGED
@@ -31,7 +31,7 @@ module ToughGuy
|
|
31
31
|
def model
|
32
32
|
self.class
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def bulk(&block)
|
36
36
|
model.bulk(&block)
|
37
37
|
end
|
@@ -67,7 +67,7 @@ module ToughGuy
|
|
67
67
|
self.class.update({_id: id}, values.exclude(:_id))
|
68
68
|
end
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
def update(hash)
|
72
72
|
model.update({_id: id}, hash)
|
73
73
|
end
|
@@ -119,7 +119,7 @@ module ToughGuy
|
|
119
119
|
def exists?
|
120
120
|
model.find(id) != nil
|
121
121
|
end
|
122
|
-
|
122
|
+
|
123
123
|
class << self
|
124
124
|
def bulk(&block)
|
125
125
|
reentered = @bulk
|
@@ -129,23 +129,23 @@ module ToughGuy
|
|
129
129
|
ensure
|
130
130
|
@bulk = nil unless reentered
|
131
131
|
end
|
132
|
-
|
132
|
+
|
133
133
|
def add_index(spec, opts={})
|
134
134
|
@indexes ||= []
|
135
135
|
@indexes << [spec, opts]
|
136
136
|
end
|
137
|
-
|
137
|
+
|
138
138
|
def ensure_index(spec, opts={})
|
139
139
|
add_index(spec, opts)
|
140
140
|
collection.create_index(spec, opts)
|
141
141
|
end
|
142
|
-
|
142
|
+
|
143
143
|
def recreate_indexes
|
144
144
|
if @indexes
|
145
145
|
@indexes.each {|idx| ensure_index(*idx)}
|
146
146
|
end
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
def load(values)
|
150
150
|
new(values).tap {|o| o.after_load}
|
151
151
|
end
|
@@ -162,25 +162,25 @@ module ToughGuy
|
|
162
162
|
end
|
163
163
|
first(opts)
|
164
164
|
end
|
165
|
-
|
165
|
+
|
166
166
|
alias_method :find, :[]
|
167
167
|
|
168
168
|
def query(opts = {})
|
169
169
|
ToughGuy::Query.new(self).where(opts)
|
170
170
|
end
|
171
|
-
|
171
|
+
|
172
172
|
alias_method :q, :query
|
173
173
|
alias_method :where, :query
|
174
174
|
alias_method :filter, :query
|
175
|
-
|
175
|
+
|
176
176
|
def sort(*args)
|
177
177
|
query.sort(*args)
|
178
178
|
end
|
179
|
-
|
179
|
+
|
180
180
|
def limit(l, skip = 0)
|
181
181
|
query.limit(l).skip(0)
|
182
182
|
end
|
183
|
-
|
183
|
+
|
184
184
|
def paginate(opts)
|
185
185
|
query.paginate(opts)
|
186
186
|
end
|
@@ -192,15 +192,15 @@ module ToughGuy
|
|
192
192
|
def all(opts = {})
|
193
193
|
query(opts).to_a
|
194
194
|
end
|
195
|
-
|
195
|
+
|
196
196
|
def each(*args, &block)
|
197
197
|
query.each(*args, &block)
|
198
198
|
end
|
199
|
-
|
199
|
+
|
200
200
|
def map(key = nil, &block)
|
201
201
|
query.map(key, &block)
|
202
202
|
end
|
203
|
-
|
203
|
+
|
204
204
|
def sort(*args)
|
205
205
|
query.sort(*args)
|
206
206
|
end
|
@@ -208,7 +208,7 @@ module ToughGuy
|
|
208
208
|
def first(opts = {})
|
209
209
|
query(opts).first
|
210
210
|
end
|
211
|
-
|
211
|
+
|
212
212
|
def map_keys(hash)
|
213
213
|
hash.each do |key, short_key|
|
214
214
|
define_method(key) {@values[short_key]}
|
@@ -219,17 +219,17 @@ module ToughGuy
|
|
219
219
|
def collection
|
220
220
|
@collection ||= database[collection_name]
|
221
221
|
end
|
222
|
-
|
222
|
+
|
223
223
|
def set_collection(c)
|
224
224
|
@collection = c
|
225
225
|
end
|
226
|
-
|
226
|
+
|
227
227
|
def to_table_name
|
228
228
|
parts = name.downcase.split('::')
|
229
229
|
parts.push(parts.pop.pluralize)
|
230
230
|
parts.join('.')
|
231
231
|
end
|
232
|
-
|
232
|
+
|
233
233
|
def collection_name
|
234
234
|
@collection_name ||= to_table_name
|
235
235
|
end
|
@@ -237,11 +237,11 @@ module ToughGuy
|
|
237
237
|
def set_collection_name(n)
|
238
238
|
@collection_name = n
|
239
239
|
end
|
240
|
-
|
240
|
+
|
241
241
|
def delete_all
|
242
242
|
collection.remove
|
243
243
|
end
|
244
|
-
|
244
|
+
|
245
245
|
def delete(selector)
|
246
246
|
if @bulk
|
247
247
|
@bulk.find(selector).remove
|
@@ -249,7 +249,7 @@ module ToughGuy
|
|
249
249
|
q(selector).remove
|
250
250
|
end
|
251
251
|
end
|
252
|
-
|
252
|
+
|
253
253
|
def destroy_all
|
254
254
|
q.each {|d| d.destroy}
|
255
255
|
end
|
@@ -257,7 +257,7 @@ module ToughGuy
|
|
257
257
|
def drop
|
258
258
|
collection.drop
|
259
259
|
end
|
260
|
-
|
260
|
+
|
261
261
|
def update(*args)
|
262
262
|
if @bulk
|
263
263
|
@bulk.find(args[0]).update(args[1])
|
@@ -266,7 +266,7 @@ module ToughGuy
|
|
266
266
|
end
|
267
267
|
# (@bulk || collection).update(*args)
|
268
268
|
end
|
269
|
-
|
269
|
+
|
270
270
|
def stats
|
271
271
|
collection.stats
|
272
272
|
end
|
@@ -278,30 +278,26 @@ module ToughGuy
|
|
278
278
|
end
|
279
279
|
|
280
280
|
alias_method :db, :database
|
281
|
-
|
282
|
-
@@db_map = {}
|
283
|
-
|
281
|
+
|
284
282
|
def database=(db)
|
285
|
-
if db.is_a?(String)
|
286
|
-
db = (@@db_map[db] = connection[db])
|
287
|
-
end
|
283
|
+
db = connection[db] if db.is_a?(String)
|
288
284
|
@database = db
|
289
|
-
# update also for
|
285
|
+
# update also for specialized model classes
|
290
286
|
if self == ToughGuy::Model
|
291
287
|
ToughGuy::MappedModel.database = db
|
292
288
|
ToughGuy::SingletonModel.database = db
|
293
289
|
end
|
294
290
|
end
|
295
|
-
|
291
|
+
|
296
292
|
def db_key(db)
|
297
293
|
db.is_a?(String) ? db : db.name
|
298
294
|
end
|
299
|
-
|
295
|
+
|
300
296
|
def db_class_name(db_key)
|
301
297
|
name = (db_key =~ /_(.+)/) && $1.gsub(/[^a-z0-9]/, '').capitalize
|
302
298
|
"P_#{name}"
|
303
299
|
end
|
304
|
-
|
300
|
+
|
305
301
|
def subclass_with_db(db, db_key)
|
306
302
|
c = Class.new(self).tap do |klass|
|
307
303
|
klass.database = db
|
@@ -310,7 +306,7 @@ module ToughGuy
|
|
310
306
|
@indexes.each {|idx| klass.ensure_index(*idx)}
|
311
307
|
end
|
312
308
|
end
|
313
|
-
|
309
|
+
|
314
310
|
# create proper class name
|
315
311
|
class_name = db_class_name(db_key)
|
316
312
|
if class_name
|
@@ -318,10 +314,10 @@ module ToughGuy
|
|
318
314
|
send(:remove_const, class_name) if const_defined?(class_name, false)
|
319
315
|
const_set(class_name, c)
|
320
316
|
end
|
321
|
-
|
317
|
+
|
322
318
|
c
|
323
319
|
end
|
324
|
-
|
320
|
+
|
325
321
|
def with_db(db)
|
326
322
|
key = db_key(db)
|
327
323
|
return self if key == db_key(self.db)
|
@@ -338,23 +334,28 @@ module ToughGuy
|
|
338
334
|
send(:remove_const, class_name) if const_defined?(class_name, false)
|
339
335
|
end
|
340
336
|
end
|
341
|
-
|
337
|
+
|
342
338
|
def inherited(subclass)
|
339
|
+
subclass.connection = connection
|
343
340
|
subclass.database = database
|
344
341
|
end
|
345
|
-
|
342
|
+
|
346
343
|
def mapped_db_classes
|
347
344
|
(@subclass_map || {}).values.unshift(self)
|
348
345
|
end
|
349
346
|
|
350
|
-
@@connection = nil
|
351
|
-
|
352
347
|
def connection
|
353
|
-
|
348
|
+
@connection
|
354
349
|
end
|
355
350
|
|
356
351
|
def connection=(c)
|
357
|
-
|
352
|
+
@connection = c
|
353
|
+
|
354
|
+
# update also for specialized model classes
|
355
|
+
if self == ToughGuy::Model
|
356
|
+
ToughGuy::MappedModel.connection = c
|
357
|
+
ToughGuy::SingletonModel.connection = c
|
358
|
+
end
|
358
359
|
end
|
359
360
|
end
|
360
361
|
end
|
data/lib/toughguy/version.rb
CHANGED
data/spec/toughguy_spec.rb
CHANGED
data/toughguy.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.require_path = 'lib'
|
9
9
|
s.authors = ['Sharon Rosner']
|
10
10
|
s.email = ['ciconia@gmail.com']
|
11
|
-
s.version = ToughGuy::
|
11
|
+
s.version = ToughGuy::VERSION
|
12
12
|
s.platform = Gem::Platform::RUBY
|
13
13
|
|
14
14
|
s.files = `git ls-files`.split("\n")
|
@@ -20,4 +20,4 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.add_dependency 'bson_ext', '>= 1.8.0'
|
21
21
|
s.add_dependency 'plucky', '0.6.6'
|
22
22
|
s.add_dependency 'assistance', '0.1.5'
|
23
|
-
end
|
23
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toughguy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mongo
|
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
version: '0'
|
110
110
|
requirements: []
|
111
111
|
rubyforge_project:
|
112
|
-
rubygems_version: 2.
|
112
|
+
rubygems_version: 2.5.1
|
113
113
|
signing_key:
|
114
114
|
specification_version: 4
|
115
115
|
summary: Simple MongoDB ORM
|