mongorilla 0.7.0 → 0.8.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/ChangeLog CHANGED
@@ -1,4 +1,4 @@
1
- 0.7.0
1
+ 0.6.2
2
2
  * add [] method
3
3
  * add []= method
4
4
  * add attributes method
@@ -0,0 +1,31 @@
1
+ module Mongorilla
2
+ class Cursor
3
+ include Enumerable
4
+
5
+ def [](idx)
6
+ if idx < 0
7
+ idx = @cursor.count + idx
8
+ return nil if idx < 0
9
+ end
10
+ return @members[idx] if @members[idx]
11
+ ret = @cursor.skip(idx).limit(1).first
12
+ @members[idx] = ret ? @klass.new(ret) : nil
13
+ end
14
+
15
+ def each
16
+ @cursor.each do|v|
17
+ yield @klass.new(v)
18
+ end
19
+ end
20
+
21
+ def count
22
+ @cursor.count
23
+ end
24
+
25
+ def initialize(klass,cursor)
26
+ @members = {}
27
+ @klass = klass
28
+ @cursor = cursor
29
+ end
30
+ end
31
+ end
@@ -1,4 +1,5 @@
1
1
  require File.expand_path("../collection.rb",__FILE__)
2
+ require File.expand_path("../cursor.rb",__FILE__)
2
3
  module Mongorilla
3
4
  module Document
4
5
  RELOAD = :reload
@@ -255,7 +256,7 @@ module Mongorilla
255
256
  ret = @col.insert(data,opt)
256
257
  if opt[:safe] == true
257
258
  if ret.is_a? Array
258
- ret.map{|uid| find(uid,:master=>true)}
259
+ find({:_id => {"$in" => ret}},:master=>true)
259
260
  elsif ret
260
261
  find(ret,:master=>true)
261
262
  end
@@ -280,8 +281,7 @@ module Mongorilla
280
281
  find_one(cond,opt)
281
282
  else
282
283
  ret = @col.find(cond,opt)
283
- return [] if ret.count == 0
284
- ret.map{|r| self.new(r)}
284
+ Cursor.new(self,ret)
285
285
  end
286
286
  end
287
287
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongorilla
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-22 00:00:00.000000000 Z
12
+ date: 2011-12-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongo
16
- requirement: &11767280 !ruby/object:Gem::Requirement
16
+ requirement: &7220940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *11767280
24
+ version_requirements: *7220940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &9559420 !ruby/object:Gem::Requirement
27
+ requirement: &7218560 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 2.3.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *9559420
35
+ version_requirements: *7218560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &11853580 !ruby/object:Gem::Requirement
38
+ requirement: &7296680 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *11853580
46
+ version_requirements: *7296680
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &11850160 !ruby/object:Gem::Requirement
49
+ requirement: &7293500 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.6.4
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *11850160
57
+ version_requirements: *7293500
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rcov
60
- requirement: &11847840 !ruby/object:Gem::Requirement
60
+ requirement: &7385580 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *11847840
68
+ version_requirements: *7385580
69
69
  description: Small Object Document Mapper for Mongo. you can update atomic with condition
70
70
  email: laten@nifty.com
71
71
  executables: []
@@ -77,6 +77,7 @@ extra_rdoc_files:
77
77
  files:
78
78
  - lib/mongorilla.rb
79
79
  - lib/mongorilla/collection.rb
80
+ - lib/mongorilla/cursor.rb
80
81
  - lib/mongorilla/document.rb
81
82
  - ChangeLog
82
83
  - LICENSE.txt
@@ -96,7 +97,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
97
  version: '0'
97
98
  segments:
98
99
  - 0
99
- hash: 986614645559502525
100
+ hash: 1829226667698527621
100
101
  required_rubygems_version: !ruby/object:Gem::Requirement
101
102
  none: false
102
103
  requirements: