mongoid-random 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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