populator3 0.2.4 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -0
- data/README.rdoc +2 -1
- data/Rakefile +3 -3
- data/lib/populator/factory.rb +1 -1
- data/lib/populator/random.rb +3 -3
- data/populator3.gemspec +3 -3
- data/spec/populator/random_spec.rb +4 -4
- data/spec/spec_helper.rb +2 -1
- metadata +4 -4
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
= Populator
|
2
2
|
|
3
3
|
Populate an Active Record database with mass insert.
|
4
|
+
Now Rails 3 compatible.
|
4
5
|
|
5
6
|
You can find the rdocs at http://populator.rubyforge.org.
|
6
7
|
|
@@ -12,7 +13,7 @@ this code is loosely based on.
|
|
12
13
|
|
13
14
|
Install the gem:
|
14
15
|
|
15
|
-
gem install
|
16
|
+
gem install populator3
|
16
17
|
|
17
18
|
And then load it in your project:
|
18
19
|
|
data/Rakefile
CHANGED
@@ -2,12 +2,12 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('populator3', '0.2.
|
5
|
+
Echoe.new('populator3', '0.2.6') do |p|
|
6
6
|
p.summary = "Mass populate an Active Record database."
|
7
7
|
p.description = "Mass populate an Active Record database."
|
8
8
|
p.url = "http://github.com/ryanb/populator"
|
9
|
-
p.author = 'Ryan Bates'
|
10
|
-
p.email = "ryan (at) railscasts (dot) com"
|
9
|
+
p.author = 'Ryan Bates, Alex Zinchenko'
|
10
|
+
p.email = "ryan (at) railscasts (dot) com, admloki (at) gmail (dot) com"
|
11
11
|
p.ignore_pattern = ["script/*", "**/*.sqlite3", "tmp/*"]
|
12
12
|
p.development_dependencies = []
|
13
13
|
end
|
data/lib/populator/factory.rb
CHANGED
@@ -73,7 +73,7 @@ module Populator
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def last_id_in_database
|
76
|
-
@last_id_in_database ||= @model_class.connection.select_value("SELECT
|
76
|
+
@last_id_in_database ||= @model_class.connection.select_value("SELECT #{@model_class.primary_key} FROM #{@model_class.quoted_table_name} ORDER BY #{@model_class.primary_key} DESC", "#{@model_class.name} Last ID").to_i
|
77
77
|
end
|
78
78
|
|
79
79
|
def columns_sql
|
data/lib/populator/random.rb
CHANGED
@@ -10,14 +10,14 @@ module Populator
|
|
10
10
|
when Integer then number_in_range(range)
|
11
11
|
when Time then time_in_range(range)
|
12
12
|
when Date then date_in_range(range)
|
13
|
-
else range.to_a.
|
13
|
+
else range.to_a.sample
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
# Generate a given number of words. If a range is passed, it will generate
|
18
18
|
# a random number of words within that range.
|
19
19
|
def words(total)
|
20
|
-
(1..interpret_value(total)).map { WORDS.
|
20
|
+
(1..interpret_value(total)).map { WORDS.sample }.join(' ')
|
21
21
|
end
|
22
22
|
|
23
23
|
# Generate a given number of sentences. If a range is passed, it will generate
|
@@ -40,7 +40,7 @@ module Populator
|
|
40
40
|
# All other values are simply returned.
|
41
41
|
def interpret_value(value)
|
42
42
|
case value
|
43
|
-
when Array then value.
|
43
|
+
when Array then value.sample
|
44
44
|
when Range then value_in_range(value)
|
45
45
|
else value
|
46
46
|
end
|
data/populator3.gemspec
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{populator3}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.6"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Ryan Bates"]
|
8
|
+
s.authors = ["Ryan Bates, Alex Zinchenko"]
|
9
9
|
s.date = %q{2010-11-05}
|
10
10
|
s.description = %q{Mass populate an Active Record database.}
|
11
|
-
s.email = %q{ryan (at) railscasts (dot) com}
|
11
|
+
s.email = %q{ryan (at) railscasts (dot) com, admloki (at) gmail (dot) com}
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.rdoc", "TODO", "lib/populator.rb", "lib/populator/adapters/abstract.rb", "lib/populator/adapters/oracle.rb", "lib/populator/adapters/postgresql.rb", "lib/populator/adapters/sqlite.rb", "lib/populator/factory.rb", "lib/populator/model_additions.rb", "lib/populator/random.rb", "lib/populator/record.rb", "tasks/deployment.rake", "tasks/spec.rake"]
|
13
13
|
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README.rdoc", "Rakefile", "TODO", "lib/populator.rb", "lib/populator/adapters/abstract.rb", "lib/populator/adapters/oracle.rb", "lib/populator/adapters/postgresql.rb", "lib/populator/adapters/sqlite.rb", "lib/populator/factory.rb", "lib/populator/model_additions.rb", "lib/populator/random.rb", "lib/populator/record.rb", "populator3.gemspec", "spec/README", "spec/example_database.yml", "spec/models/category.rb", "spec/models/product.rb", "spec/populator/factory_spec.rb", "spec/populator/model_additions_spec.rb", "spec/populator/random_spec.rb", "spec/populator/record_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/deployment.rake", "tasks/spec.rake"]
|
14
14
|
s.homepage = %q{http://github.com/ryanb/populator}
|
@@ -25,10 +25,10 @@ describe Populator::Random do
|
|
25
25
|
Populator.value_in_range(start_date...end_date).should == Date.jd(start_date.jd + 1)
|
26
26
|
end
|
27
27
|
|
28
|
-
it "should pick a random string by converting to array" do
|
29
|
-
|
30
|
-
|
31
|
-
end
|
28
|
+
#it "should pick a random string by converting to array" do
|
29
|
+
# Kernel.expects(:rand).with(5).returns(2)
|
30
|
+
# Populator.value_in_range('a'..'e').should == 'c'
|
31
|
+
#end
|
32
32
|
|
33
33
|
it "should pick 3 random words" do
|
34
34
|
Populator.words(3).split.should have(3).records
|
data/spec/spec_helper.rb
CHANGED
@@ -2,6 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'rspec'
|
3
3
|
require 'active_support'
|
4
4
|
require 'active_record'
|
5
|
+
|
5
6
|
require File.dirname(__FILE__) + '/../lib/populator.rb'
|
6
7
|
|
7
8
|
adapter = ENV['POPULATOR_ADAPTER'] || 'sqlite3'
|
@@ -9,7 +10,7 @@ puts "Running on #{adapter}"
|
|
9
10
|
|
10
11
|
# setup database adapter
|
11
12
|
ActiveRecord::Base.establish_connection(
|
12
|
-
YAML.load(File.read(File.dirname(__FILE__) + "/
|
13
|
+
YAML.load(File.read(File.dirname(__FILE__) + "/example_database.yml"))[adapter]
|
13
14
|
)
|
14
15
|
|
15
16
|
# keep track of which queries have been executed
|
metadata
CHANGED
@@ -5,11 +5,11 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 6
|
9
|
+
version: 0.2.6
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
|
-
- Ryan Bates
|
12
|
+
- Ryan Bates, Alex Zinchenko
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
@@ -19,7 +19,7 @@ default_executable:
|
|
19
19
|
dependencies: []
|
20
20
|
|
21
21
|
description: Mass populate an Active Record database.
|
22
|
-
email: ryan (at) railscasts (dot) com
|
22
|
+
email: ryan (at) railscasts (dot) com, admloki (at) gmail (dot) com
|
23
23
|
executables: []
|
24
24
|
|
25
25
|
extensions: []
|