mongoid-random 0.0.1 → 0.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.
data/Guardfile CHANGED
@@ -1,12 +1,8 @@
1
- guard 'spork' do
1
+ guard 'spork', wait: 20 do
2
2
  watch('Gemfile')
3
- watch('Gemfile.lock')
4
- watch('test/test_helper.rb')
5
3
  end
6
4
 
7
- guard 'minitest' do
8
- watch(%r|^test/test_(.*)\.rb|)
9
- watch(%r|^test/(.*)_test\.rb|)
10
- watch(%r|^lib/(.*)([^/]+)\.rb|) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
11
- watch(%r|^test/test_helper\.rb|) { "test" }
5
+ guard :rspec, version: 2 do
6
+ watch('spec/spec_helper.rb') { "spec" }
7
+ watch(%r{^spec/.+_spec\.rb})
12
8
  end
@@ -6,8 +6,6 @@ module Mongoid
6
6
  included do
7
7
  field :_randomization_key, type: Float
8
8
  before_create :generate_mongoid_random_key
9
-
10
- index [ include?(Mongoid::Paranoia) ? [ :deleted_at, 1 ] : nil, [ :_randomization_key, 1 ] ].compact # TODO: MONGOID: Apply a patch
11
9
  end
12
10
 
13
11
 
@@ -31,6 +29,5 @@ module Mongoid
31
29
  self._randomization_key = rand
32
30
  end
33
31
 
34
-
35
32
  end
36
33
  end
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module Random
3
- VERSION = "0.0.1"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
@@ -18,15 +18,13 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency('mongoid', [ '>= 2.0.0' ])
21
+ s.add_dependency('mongoid', [ '>= 3.0.0' ])
22
22
 
23
- s.add_development_dependency('bson_ext')
24
- s.add_development_dependency('minitest', [ '>= 2.7.0' ])
25
- s.add_development_dependency('mini_shoulda', [ '>= 0.4.0' ])
26
- s.add_development_dependency('spork', [ '>= 0.9.0.rc' ])
27
- s.add_development_dependency('spork-testunit', [ '>= 0.0.6' ])
28
- s.add_development_dependency('guard-minitest', [ '>= 0.4.0' ])
29
- s.add_development_dependency('guard-spork', [ '>= 0.3.1' ])
30
- s.add_development_dependency('turn', [ '>= 0.8.3' ])
23
+ s.add_development_dependency('rspec', [ '>= 2.13.0' ])
24
+ s.add_development_dependency('guard', [ '>= 1.8.0' ])
25
+ s.add_development_dependency('guard-rspec', [ '>= 2.5.0' ])
26
+ s.add_development_dependency('guard-spork', [ '>= 1.5.0' ])
27
+ s.add_development_dependency('listen', [ '>= 1.0.0' ])
28
+ s.add_development_dependency('database_cleaner', [ '~> 0.9.0 ' ])
31
29
 
32
30
  end
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe Mongoid::Random do
4
+
5
+ describe "#generate_mongoid_random_key" do
6
+
7
+ subject { Randomized.new }
8
+
9
+ it "initially start with a nil key" do
10
+ subject._randomization_key.should be_nil
11
+ end
12
+
13
+ it "should generate a key between 0 and 1 on create" do
14
+ subject.save!
15
+ subject._randomization_key.should be_between(0, 1)
16
+ end
17
+
18
+ end
19
+
20
+
21
+ describe ".random" do
22
+
23
+ let!(:doc1) { Randomized.create }
24
+
25
+ it "always pull @doc1 in random query" do
26
+ 4.times do
27
+ Randomized.random.one.should eq doc1
28
+ end
29
+ end
30
+
31
+ context "when there are 2 possible records" do
32
+
33
+ let!(:doc2) { Randomized.create }
34
+
35
+ it "has 2 records to choose from" do
36
+ Randomized.count.should be 2
37
+ end
38
+
39
+ it "only retrieves 1 record for :random" do
40
+ 3.times do
41
+ Randomized.random.to_a.size.should be 1
42
+ end
43
+ end
44
+
45
+ it "retrieves for :random of 2" do
46
+ Randomized.random(2).to_a.size.should be 2
47
+ end
48
+
49
+ it "have both outcomes from random 2 queries" do
50
+ outcomes = 100.times.inject(Array.new) { |a, i| a << Randomized.random(2).to_a; a }
51
+ outcomes.uniq.sort.should eq [ [ doc1, doc2 ], [ doc2, doc1 ] ].sort
52
+ end
53
+
54
+ end
55
+
56
+ end
57
+
58
+ end
@@ -0,0 +1,65 @@
1
+ require 'rubygems'
2
+ require 'spork'
3
+
4
+ #uncomment the following line to use spork with the debugger
5
+ #require 'spork/ext/ruby-debug'
6
+
7
+ Spork.prefork do
8
+ # Loading more in this block will cause your tests to run faster. However,
9
+ # if you change any configuration or code from libraries loaded here, you'll
10
+ # need to restart spork for it take effect.
11
+ #
12
+ require 'rspec'
13
+ require 'mongoid'
14
+ require 'mongoid-random'
15
+ require 'database_cleaner'
16
+
17
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
18
+
19
+ RSpec.configure do |config|
20
+
21
+ config.before(:suite) do
22
+ Mongoid.load!("mongoid.yml", :test)
23
+ DatabaseCleaner[:mongoid].strategy = :truncation
24
+ end
25
+
26
+ config.after(:each) do
27
+ DatabaseCleaner.clean
28
+ end
29
+
30
+ end
31
+
32
+ end
33
+
34
+ Spork.each_run do
35
+ # This code will be run each time you run your specs.
36
+ end
37
+
38
+ # --- Instructions ---
39
+ # Sort the contents of this file into a Spork.prefork and a Spork.each_run
40
+ # block.
41
+ #
42
+ # The Spork.prefork block is run only once when the spork server is started.
43
+ # You typically want to place most of your (slow) initializer code in here, in
44
+ # particular, require'ing any 3rd-party gems that you don't normally modify
45
+ # during development.
46
+ #
47
+ # The Spork.each_run block is run each time you run your specs. In case you
48
+ # need to load files that tend to change during development, require them here.
49
+ # With Rails, your application modules are loaded automatically, so sometimes
50
+ # this block can remain empty.
51
+ #
52
+ # Note: You can modify files loaded *from* the Spork.each_run block without
53
+ # restarting the spork server. However, this file itself will not be reloaded,
54
+ # so if you change any of the code inside the each_run block, you still need to
55
+ # restart the server. In general, if you have non-trivial code in this file,
56
+ # it's advisable to move it into a separate file so you can easily edit it
57
+ # without restarting spork. (For example, with RSpec, you could move
58
+ # non-trivial code into a file spec/support/my_helper.rb, making sure that the
59
+ # spec/support/* files are require'd from inside the each_run block.)
60
+ #
61
+ # Any code that is left outside the two blocks will be run during preforking
62
+ # *and* during each_run -- that's probably not what you want.
63
+ #
64
+ # These instructions should self-destruct in 10 seconds. If they don't, feel
65
+ # free to delete them.
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-random
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,107 +9,120 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-02 00:00:00.000000000Z
12
+ date: 2013-04-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
16
- requirement: &2156037340 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 2.0.0
21
+ version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156037340
25
- - !ruby/object:Gem::Dependency
26
- name: bson_ext
27
- requirement: &2156035740 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
28
25
  none: false
29
26
  requirements:
30
27
  - - ! '>='
31
28
  - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :development
34
- prerelease: false
35
- version_requirements: *2156035740
29
+ version: 3.0.0
36
30
  - !ruby/object:Gem::Dependency
37
- name: minitest
38
- requirement: &2156033000 !ruby/object:Gem::Requirement
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
39
33
  none: false
40
34
  requirements:
41
35
  - - ! '>='
42
36
  - !ruby/object:Gem::Version
43
- version: 2.7.0
37
+ version: 2.13.0
44
38
  type: :development
45
39
  prerelease: false
46
- version_requirements: *2156033000
47
- - !ruby/object:Gem::Dependency
48
- name: mini_shoulda
49
- requirement: &2156025320 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
50
41
  none: false
51
42
  requirements:
52
43
  - - ! '>='
53
44
  - !ruby/object:Gem::Version
54
- version: 0.4.0
55
- type: :development
56
- prerelease: false
57
- version_requirements: *2156025320
45
+ version: 2.13.0
58
46
  - !ruby/object:Gem::Dependency
59
- name: spork
60
- requirement: &2156022340 !ruby/object:Gem::Requirement
47
+ name: guard
48
+ requirement: !ruby/object:Gem::Requirement
61
49
  none: false
62
50
  requirements:
63
51
  - - ! '>='
64
52
  - !ruby/object:Gem::Version
65
- version: 0.9.0.rc
53
+ version: 1.8.0
66
54
  type: :development
67
55
  prerelease: false
68
- version_requirements: *2156022340
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.8.0
69
62
  - !ruby/object:Gem::Dependency
70
- name: spork-testunit
71
- requirement: &2156020140 !ruby/object:Gem::Requirement
63
+ name: guard-rspec
64
+ requirement: !ruby/object:Gem::Requirement
72
65
  none: false
73
66
  requirements:
74
67
  - - ! '>='
75
68
  - !ruby/object:Gem::Version
76
- version: 0.0.6
69
+ version: 2.5.0
77
70
  type: :development
78
71
  prerelease: false
79
- version_requirements: *2156020140
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 2.5.0
80
78
  - !ruby/object:Gem::Dependency
81
- name: guard-minitest
82
- requirement: &2156017420 !ruby/object:Gem::Requirement
79
+ name: guard-spork
80
+ requirement: !ruby/object:Gem::Requirement
83
81
  none: false
84
82
  requirements:
85
83
  - - ! '>='
86
84
  - !ruby/object:Gem::Version
87
- version: 0.4.0
85
+ version: 1.5.0
88
86
  type: :development
89
87
  prerelease: false
90
- version_requirements: *2156017420
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 1.5.0
91
94
  - !ruby/object:Gem::Dependency
92
- name: guard-spork
93
- requirement: &2156014840 !ruby/object:Gem::Requirement
95
+ name: listen
96
+ requirement: !ruby/object:Gem::Requirement
94
97
  none: false
95
98
  requirements:
96
99
  - - ! '>='
97
100
  - !ruby/object:Gem::Version
98
- version: 0.3.1
101
+ version: 1.0.0
99
102
  type: :development
100
103
  prerelease: false
101
- version_requirements: *2156014840
102
- - !ruby/object:Gem::Dependency
103
- name: turn
104
- requirement: &2156014000 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
- version: 0.8.3
109
+ version: 1.0.0
110
+ - !ruby/object:Gem::Dependency
111
+ name: database_cleaner
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 0.9.0
110
118
  type: :development
111
119
  prerelease: false
112
- version_requirements: *2156014000
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 0.9.0
113
126
  description: Add a random key to all documents in a collection for random retrieval
114
127
  email:
115
128
  - dave@davekrupinski.com
@@ -125,9 +138,9 @@ files:
125
138
  - lib/mongoid/random.rb
126
139
  - lib/mongoid/random/version.rb
127
140
  - mongoid-random.gemspec
128
- - test/mongoid/random_test.rb
129
- - test/support/randomized.rb
130
- - test/test_helper.rb
141
+ - spec/mongoid/random_spec.rb
142
+ - spec/spec_helper.rb
143
+ - spec/support/randomized.rb
131
144
  homepage: https://github.com/davekrupinski/mongoid-random
132
145
  licenses: []
133
146
  post_install_message:
@@ -148,11 +161,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
161
  version: '0'
149
162
  requirements: []
150
163
  rubyforge_project: mongoid-random
151
- rubygems_version: 1.8.10
164
+ rubygems_version: 1.8.24
152
165
  signing_key:
153
166
  specification_version: 3
154
167
  summary: Randomization extensions for Mongoid documents
155
168
  test_files:
156
- - test/mongoid/random_test.rb
157
- - test/support/randomized.rb
158
- - test/test_helper.rb
169
+ - spec/mongoid/random_spec.rb
170
+ - spec/spec_helper.rb
171
+ - spec/support/randomized.rb
@@ -1,51 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe Mongoid::Random do
4
-
5
- context "Generating the key" do
6
- setup { @test = Randomized.new }
7
-
8
- should "initially start with a nil key" do
9
- assert_nil @test._randomization_key
10
- end
11
-
12
- should "generate a key between 0 and 1 on create" do
13
- assert @test.save
14
- assert (0..1).include?(@test._randomization_key)
15
- end
16
- end
17
-
18
- context "Querying" do
19
- setup { @test = Randomized.create }
20
-
21
- should "always pull @test in random query" do
22
- 4.times do
23
- assert_equal @test, Randomized.random.one
24
- end
25
- end
26
-
27
- context "when there are 2 possible records" do
28
- setup { @test2 = Randomized.create }
29
-
30
- should "have 2 records to choose from" do
31
- assert_equal 2, Randomized.count
32
- end
33
-
34
- should "only pull 1 record for :random" do
35
- 3.times do
36
- assert_equal 1, Randomized.random.to_a.size
37
- end
38
- end
39
-
40
- should "pull both for :random of 2" do
41
- assert_equal 2, Randomized.random(2).to_a.size
42
- end
43
-
44
- should "have both outcomes from random 2 queries" do
45
- outcomes = 100.times.inject(Array.new) { |a, i| a << Randomized.random(2).to_a; a }
46
- assert_equal [ [ @test, @test2 ], [ @test2, @test ] ].sort, outcomes.uniq.sort
47
- end
48
- end
49
- end
50
-
51
- end
@@ -1,27 +0,0 @@
1
- gem 'minitest'
2
-
3
- require 'mini_shoulda'
4
- require 'minitest/autorun'
5
- require 'turn'
6
- require 'spork'
7
- require 'mongoid'
8
- require 'mongoid-random'
9
-
10
- Mongoid.configure do |config|
11
- database = Mongo::Connection.new.db("mongoid-random_test")
12
- database.add_user("mongoid", "test")
13
- config.master = database
14
- config.logger = nil
15
- end
16
-
17
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
18
-
19
- Spork.prefork do
20
- end
21
-
22
- Spork.each_run do
23
- end
24
-
25
- MiniTest::Spec.add_teardown_hook do
26
- Mongoid.purge!
27
- end