rand-orders 0.0.3

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,26 @@
1
+ *.rbc
2
+ *.sassc
3
+ .sass-cache
4
+ capybara-*.html
5
+ .rspec
6
+ /.bundle
7
+ /vendor/bundle
8
+ /log/*
9
+ /tmp/*
10
+ /db/*.sqlite3
11
+ /public/system/*
12
+ /coverage/
13
+ /spec/tmp/*
14
+ **.orig
15
+ rerun.txt
16
+ pickle-email-*.html
17
+ /.idea
18
+ .rvmrc
19
+ .rbenv
20
+ doc/
21
+ yardoc/
22
+ Gemfile.lock
23
+ *.sqlite3
24
+ /spec/db/mysql.yml
25
+ /spec/db/postgresql.yml
26
+ /spec/db/sqlite.yml
@@ -0,0 +1,7 @@
1
+ --markup markdown
2
+ --markup-provider redcarpet
3
+ --charset utf-8
4
+ --readme README.md
5
+ -
6
+ README.md
7
+ LICENSE
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "activerecord", :require => "active_record"
4
+ gem "sqlite3"
5
+ gem "pg"
6
+ gem "mysql"#, '2.8.1'
7
+ gem "activerecord-mysql-adapter"
8
+ gem "activerecord-postgresql-adapter"
9
+
10
+ # Specify your gem's dependencies in rand.gemspec
11
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 santaux
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,68 @@
1
+ # Rand::Orders
2
+
3
+ This gem provides several methods to fetch random records from database.
4
+
5
+ ## Tests
6
+
7
+ To run tests, first, please create and fill with correct values these configuration files:
8
+
9
+ * ./spec/db/mysql.yml
10
+ * ./spec/db/postgresql.yml
11
+ * ./spec/db/sqlite.yml
12
+
13
+ You could find configuration examples into ./spec/db directory.
14
+ Then you need to create these databases by internal rake task for each database:
15
+
16
+ ADAPTER=sqlite bundle exec rake test:db:migrate
17
+ ADAPTER=postgresql bundle exec rake test:db:migrate
18
+ ADAPTER=mysql bundle exec rake test:db:migrate
19
+
20
+ The you could run them and check that all is fine:
21
+
22
+ $ rspec spec/
23
+
24
+ ## Installation
25
+
26
+ Add this line to your application's Gemfile:
27
+
28
+ gem 'rand-orders'
29
+
30
+ And then execute:
31
+
32
+ $ bundle
33
+
34
+ Or install it yourself as:
35
+
36
+ $ gem install rand-orders
37
+
38
+ ## Usage
39
+
40
+ ```ruby
41
+ # It will work for any ActiveRecord inherited class:
42
+ ( For example, this model has 'amount' integer field)
43
+ class Item < ActiveRecord::Base; end
44
+
45
+ # Let's get some records ordered randomly:
46
+ Item.random
47
+
48
+ # Or get some random records with field value between 2 and 5:
49
+ # (This is the same as: Item.where("amount > 2 AND amount < 5").random)
50
+ Item.random_in_range(:amount, (2..5)) #
51
+
52
+ # Also we can fetch from database only the fields equal to some value:
53
+ # (This is the same as: Item.where(:amount => 1).random)
54
+ Item.random_equal(:amount, 1)
55
+
56
+ # If we want to get values only from one of fields, use 'select_random' method:
57
+ # (This is the same as: Item.random.pluck(:amount))
58
+ Item.select_random(:amount)
59
+
60
+ ```
61
+
62
+ ## Contributing
63
+
64
+ 1. Fork it
65
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
66
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
67
+ 4. Push to the branch (`git push origin my-new-feature`)
68
+ 5. Create new Pull Request
@@ -0,0 +1,21 @@
1
+ require "bundler/gem_tasks"
2
+ require 'yard'
3
+ require './spec/db/db_creator'
4
+
5
+ # Generates documentation:
6
+ YARD::Rake::YardocTask.new
7
+
8
+ # RSpec executing:
9
+ require 'rspec/core/rake_task'
10
+ RSpec::Core::RakeTask.new
11
+
12
+ namespace :test do
13
+ desc "Create database and table for specs"
14
+ namespace :db do
15
+ task :migrate do
16
+ adapter_name = ENV['ADAPTER'] || 'sqlite'
17
+ db_creator = DBCreator.new(adapter_name)
18
+ db_creator.migrate
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ require "rand/version"
2
+ require "rand/orders"
3
+ require "active_record"
4
+
5
+ class ActiveRecord::Relation
6
+ include Rand::Orders::Relation
7
+ end
8
+
9
+ class ActiveRecord::Base
10
+ extend Rand::Orders::Base
11
+ end
@@ -0,0 +1,104 @@
1
+ module Rand
2
+ module Orders
3
+ module Relation
4
+ ##
5
+ # Returns randomly sorted records from database.
6
+ #
7
+ # == Returns:
8
+ # ActiveRecord::Relation object with order(...) statement.
9
+ # == Example:
10
+ # Item.where(:user_id => 1).random
11
+ def random
12
+ relation = clone
13
+ relation.order_values += [random_clause]
14
+ relation
15
+ end
16
+
17
+ ##
18
+ # Returns randomly sorted records from database with field value
19
+ # in specified range.
20
+ #
21
+ # == Parameters:
22
+ # field_name::
23
+ # A name of the field
24
+ # range::
25
+ # Range object with MIN and MAX values for specified field.
26
+ #
27
+ # == Returns:
28
+ # ActiveRecord::Relation object with order(...) and
29
+ # where("#{field_name} > #{range.min} AND #{field_name} < #{range.max}") statements
30
+ # == Example:
31
+ # Item.random_in_range(:amount, (2..5)).limit(10)
32
+ def random_in_range(field_name, range)
33
+ relation = random
34
+ relation.where_values += build_where("#{field_name} > #{range.min} AND #{field_name} < #{range.max}", [])
35
+ relation
36
+ end
37
+
38
+ ##
39
+ # Returns randomly sorted records from database with field value
40
+ # equal to specified parameter.
41
+ #
42
+ # == Parameters:
43
+ # field_name::
44
+ # A name of the field or range comparing.
45
+ # value::
46
+ # A value of the specified field.
47
+ #
48
+ # == Returns:
49
+ # ActiveRecord::Relation object with order(...) and where(field_name => value) statements
50
+ # == Example:
51
+ # Item.random_equal(:user_id, 1)
52
+ def random_equal(field_name, value)
53
+ relation = random
54
+ relation.where_values += build_where({field_name.to_sym => value}, [])
55
+ relation
56
+ end
57
+
58
+ ##
59
+ # Returns randomly sorted array of specified field values.
60
+ #
61
+ # == Parameters:
62
+ # field_name::
63
+ # A name of the field to return.
64
+ #
65
+ # == Returns:
66
+ # Array of the specified field values.
67
+ # == Example:
68
+ # Item.select_random(:amount)
69
+ def select_random(field_name)
70
+ random.pluck(field_name)
71
+ end
72
+
73
+ # Sets random clause for each database.
74
+ def random_clause
75
+ case connection.adapter_name
76
+ when /mysql/i
77
+ 'RAND()'
78
+ when /sqlite|postgres/i
79
+ 'RANDOM()'
80
+ else
81
+ raise "Rand::Orders Error: Unknown adapter!"
82
+ end
83
+ end
84
+ end
85
+
86
+ module Base
87
+ def random
88
+ relation.random
89
+ end
90
+
91
+ def random_in_range(field_name, range)
92
+ relation.random_in_range(field_name, range)
93
+ end
94
+
95
+ def random_equal(field_name, value)
96
+ relation.random_equal(field_name, value)
97
+ end
98
+
99
+ def select_random(field_name)
100
+ relation.select_random(field_name)
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,5 @@
1
+ module Rand
2
+ module Orders
3
+ VERSION = "0.0.3"
4
+ end
5
+ end
Binary file
Binary file
@@ -0,0 +1,31 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'rand/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "rand-orders"
8
+ gem.version = Rand::Orders::VERSION
9
+ gem.authors = ["santaux"]
10
+ gem.email = ["santaux@gmail.com"]
11
+ gem.description = %q{Simple gem which provides random ordering for mysql, postgresql and sqlite}
12
+ gem.summary = %q{Simple gem which provides random ordering for mysql, postgresql and sqlite}
13
+ gem.homepage = "http://github.com/santaux/rand"
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.add_development_dependency "sqlite3"
21
+ gem.add_development_dependency "pg"
22
+ gem.add_development_dependency "mysql2"
23
+ gem.add_development_dependency "rake"
24
+ gem.add_development_dependency "redcarpet", "~> 1.17"
25
+ gem.add_development_dependency "yard", "~> 0.7.5"
26
+ gem.add_development_dependency "rspec-core", "~> 2.0"
27
+ gem.add_development_dependency "rspec-expectations", "~> 2.0"
28
+ gem.add_development_dependency "rr", "~> 1.0"
29
+ gem.add_development_dependency "machinist", ">= 2.0.0.beta2"
30
+ gem.add_development_dependency "faker"
31
+ end
@@ -0,0 +1,79 @@
1
+ require 'yaml'
2
+ require 'rubygems'
3
+ require 'active_record'
4
+ require 'active_support/inflector'
5
+
6
+ class DBCreator
7
+
8
+ attr_reader :adapter, :adapter_name
9
+
10
+ def initialize(adapter_name)
11
+ @adapter_name = adapter_name
12
+ @adapter = "#{adapter_name.to_s}_adapter".camelize.constantize.new
13
+ end
14
+
15
+ def migrate
16
+ @adapter.parse_config(@adapter_name)
17
+ @adapter.create_db
18
+ @adapter.establish_connection
19
+ @adapter.create_tables
20
+ end
21
+
22
+ def establish_connection
23
+ @adapter.parse_config(@adapter_name)
24
+ @adapter.establish_connection
25
+ end
26
+
27
+ def connection
28
+ @_connection ||= ActiveRecord::Base.connection
29
+ end
30
+
31
+ def table_exists?
32
+ connection.table_exists? 'items'
33
+ end
34
+ end
35
+
36
+ class DBAdapter
37
+
38
+ attr_reader :config
39
+
40
+ def parse_config(config_name)
41
+ path = File.dirname(File.expand_path(__FILE__)) + "/#{config_name}.yml"
42
+ @config = YAML::load(File.open(path))['test']
43
+ end
44
+
45
+ def establish_connection
46
+ ActiveRecord::Base.establish_connection(@config)
47
+ end
48
+
49
+ def create_db
50
+ raise "Do something with me. I'm abstract"
51
+ end
52
+
53
+ def create_tables
54
+ ActiveRecord::Base.connection.create_table(:items, :force => true) do |t|
55
+ t.string "name"
56
+ t.integer "amount"
57
+ t.datetime "created_at"
58
+ t.datetime "updated_at"
59
+ end
60
+ end
61
+ end
62
+
63
+ class MysqlAdapter < DBAdapter
64
+ def create_db
65
+ %x{mysql -e 'create database #{@config['database']};' -h localhost -u #{ENV['USERNAME'] || @config['username']} --password=#{ENV['PASSWORD'] || @config['password']}}
66
+ end
67
+ end
68
+
69
+ class PostgresqlAdapter < DBAdapter
70
+ def create_db
71
+ %x{createdb --owner=#{ENV['USERNAME'] || @config['username']} #{@config['database']}}
72
+ end
73
+ end
74
+
75
+ class SqliteAdapter < DBAdapter
76
+ def create_db
77
+ %x{touch ./#{@config['database']}}
78
+ end
79
+ end
@@ -0,0 +1,7 @@
1
+ test:
2
+ adapter: mysql2
3
+ host: localhost
4
+ port: 5432
5
+ database: rand_orders_test
6
+ username: root
7
+ password:
@@ -0,0 +1,8 @@
1
+ test:
2
+ adapter: postgresql
3
+ encoding: unicode
4
+ host: localhost
5
+ port: 5432
6
+ database: rand_orders_test
7
+ username: postgres
8
+ password:
@@ -0,0 +1,5 @@
1
+ test:
2
+ adapter: sqlite3
3
+ database: development.sqlite3
4
+ pool: 5
5
+ timeout: 5000
@@ -0,0 +1,8 @@
1
+ require 'machinist/active_record'
2
+ require 'faker'
3
+ require './spec/fixtures/item'
4
+
5
+ Item.blueprint do
6
+ name { Faker::Lorem.word }
7
+ amount { rand(1..20) }
8
+ end
@@ -0,0 +1,3 @@
1
+ require 'active_record'
2
+
3
+ class Item < ActiveRecord::Base; end
@@ -0,0 +1,46 @@
1
+ require "spec_helper"
2
+ require 'fixtures/item'
3
+ require 'db/db_creator'
4
+ require 'rand'
5
+
6
+ describe Rand::Orders do
7
+ %w[sqlite postgresql mysql].each do |adapter|
8
+ context adapter do
9
+ before(:all) do
10
+ @db_creator = DBCreator.new adapter
11
+ @db_creator.establish_connection
12
+ end
13
+
14
+ before(:each) do
15
+ Item.delete_all
16
+
17
+ @items = []
18
+ 5.times { |i| @items << Item.make!(amount: i) }
19
+ end
20
+
21
+ context "random method" do
22
+ it "should return 5 records" do
23
+ Item.random.size.should be_equal(5)
24
+ end
25
+ end
26
+
27
+ context "random_in_range method" do
28
+ it "should return 2 records" do
29
+ Item.random_in_range(:amount, (2..5)).size.should be_equal(2)
30
+ end
31
+ end
32
+
33
+ context "random_equal method" do
34
+ it "should return item with amount equal 1" do
35
+ Item.random_equal(:amount, 1).first.amount.should be_equal(1)
36
+ end
37
+ end
38
+
39
+ context "select_random method" do
40
+ it "should return only selected field" do
41
+ Item.select_random(:amount).first.class.should be_equal(Fixnum)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,50 @@
1
+ require "spec_helper"
2
+ require 'fixtures/item'
3
+ require 'db/db_creator'
4
+
5
+ describe Rand::Orders do
6
+ %w[sqlite postgresql mysql].each do |adapter|
7
+ context adapter do
8
+ before(:all) do
9
+ @db_creator = DBCreator.new adapter
10
+ @db_creator.establish_connection
11
+ end
12
+
13
+ before(:each) do
14
+ Item.delete_all
15
+
16
+ @items = []
17
+ 5.times { |i| @items << Item.make!(amount: i) }
18
+
19
+ stub(Item).random { Item.all }
20
+ stub(Item).random_in_range { Item.all[1..2] }
21
+ stub(Item).random_equal { Item.all[1] }
22
+ stub(Item).select_random { |field| Item.pluck(field) }
23
+ end
24
+
25
+ context "random method" do
26
+ it "should return 5 records" do
27
+ Item.random.size.should be_equal(5)
28
+ end
29
+ end
30
+
31
+ context "random_in_range method" do
32
+ it "should return 2 records" do
33
+ Item.random_in_range(:amount, (2..3)).size.should be_equal(2)
34
+ end
35
+ end
36
+
37
+ context "random_equal method" do
38
+ it "should return item with amount equal 1" do
39
+ Item.random_equal(:amount, 1).amount.should be_equal(1)
40
+ end
41
+ end
42
+
43
+ context "select_random method" do
44
+ it "should return only selected field" do
45
+ Item.select_random(:amount).first.class.should be_equal(Fixnum)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,23 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+
8
+ require 'rand'
9
+ require 'machinist'
10
+ require 'fixtures/blueprints'
11
+
12
+ RSpec.configure do |config|
13
+ config.treat_symbols_as_metadata_keys_with_true_values = true
14
+ config.run_all_when_everything_filtered = true
15
+ config.filter_run :focus
16
+ config.mock_with :rr
17
+
18
+ # Run specs in random order to surface order dependencies. If you find an
19
+ # order dependency and want to debug it, you can fix the order by providing
20
+ # the seed, which is printed after each run.
21
+ # --seed 1234
22
+ config.order = 'random'
23
+ end
metadata ADDED
@@ -0,0 +1,259 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rand-orders
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - santaux
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-05-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sqlite3
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: pg
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: mysql2
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: redcarpet
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '1.17'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '1.17'
94
+ - !ruby/object:Gem::Dependency
95
+ name: yard
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 0.7.5
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.7.5
110
+ - !ruby/object:Gem::Dependency
111
+ name: rspec-core
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '2.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '2.0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rspec-expectations
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: '2.0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '2.0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: rr
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: '1.0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '1.0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: machinist
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: 2.0.0.beta2
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: 2.0.0.beta2
174
+ - !ruby/object:Gem::Dependency
175
+ name: faker
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ description: Simple gem which provides random ordering for mysql, postgresql and sqlite
191
+ email:
192
+ - santaux@gmail.com
193
+ executables: []
194
+ extensions: []
195
+ extra_rdoc_files: []
196
+ files:
197
+ - .gitignore
198
+ - .rvmrc
199
+ - .yardopts
200
+ - Gemfile
201
+ - LICENSE.txt
202
+ - README.md
203
+ - Rakefile
204
+ - lib/rand.rb
205
+ - lib/rand/orders.rb
206
+ - lib/rand/version.rb
207
+ - pkg/rand-orders-0.0.1.gem
208
+ - pkg/rand-orders-0.0.2.gem
209
+ - rand-orders.gemspec
210
+ - spec/db/db_creator.rb
211
+ - spec/db/mysql.yml.example
212
+ - spec/db/postgresql.yml.example
213
+ - spec/db/sqlite.yml.example
214
+ - spec/fixtures/blueprints.rb
215
+ - spec/fixtures/item.rb
216
+ - spec/rand-orders/rand_orders_spec.rb
217
+ - spec/rand-orders/stubed_rand_orders_spec.rb
218
+ - spec/spec_helper.rb
219
+ homepage: http://github.com/santaux/rand
220
+ licenses: []
221
+ post_install_message:
222
+ rdoc_options: []
223
+ require_paths:
224
+ - lib
225
+ required_ruby_version: !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ! '>='
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ segments:
232
+ - 0
233
+ hash: -843775351796594452
234
+ required_rubygems_version: !ruby/object:Gem::Requirement
235
+ none: false
236
+ requirements:
237
+ - - ! '>='
238
+ - !ruby/object:Gem::Version
239
+ version: '0'
240
+ segments:
241
+ - 0
242
+ hash: -843775351796594452
243
+ requirements: []
244
+ rubyforge_project:
245
+ rubygems_version: 1.8.25
246
+ signing_key:
247
+ specification_version: 3
248
+ summary: Simple gem which provides random ordering for mysql, postgresql and sqlite
249
+ test_files:
250
+ - spec/db/db_creator.rb
251
+ - spec/db/mysql.yml.example
252
+ - spec/db/postgresql.yml.example
253
+ - spec/db/sqlite.yml.example
254
+ - spec/fixtures/blueprints.rb
255
+ - spec/fixtures/item.rb
256
+ - spec/rand-orders/rand_orders_spec.rb
257
+ - spec/rand-orders/stubed_rand_orders_spec.rb
258
+ - spec/spec_helper.rb
259
+ has_rdoc: