seed_dump 0.1.4 → 0.2.1
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/README.rdoc +4 -2
- data/VERSION +1 -1
- data/lib/seed_dump.rb +1 -5
- data/lib/seed_dump/railtie.rb +9 -0
- data/lib/{railties/tasks.rake → tasks/seed_dump.rake} +10 -22
- data/seed_dump.gemspec +4 -4
- metadata +5 -5
- data/lib/version.rb +0 -9
data/README.rdoc
CHANGED
@@ -5,8 +5,10 @@ Seed dump is a simple plugin that adds a rake task named db:seed:dump.
|
|
5
5
|
It allows you to create a db/seeds.rb from your existing data in the database.
|
6
6
|
When there is no data in the database it will generate empty create statements.
|
7
7
|
|
8
|
+
It mainly exists for people who are too lazy writing create statements in db/seeds.rb themselves
|
9
|
+
and need something (+seed_dump+) to dump data from the table(s) into seeds.rb
|
8
10
|
|
9
|
-
|
11
|
+
== Example Usage
|
10
12
|
|
11
13
|
Dump all data directly to db/seeds.rb:
|
12
14
|
|
@@ -56,7 +58,7 @@ Here is a full example using all of the options above:
|
|
56
58
|
|
57
59
|
rake db:seed:dump MODELS=Category LIMIT=10 APPEND=true FILE=db/categories.rb WITH_ID=1 NO_DATA=1
|
58
60
|
|
59
|
-
|
61
|
+
== All environment variables
|
60
62
|
|
61
63
|
APPEND:
|
62
64
|
Append the data to db/seeds.rb instead of overwriting it.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1
|
1
|
+
0.2.1
|
data/lib/seed_dump.rb
CHANGED
@@ -1,22 +1,6 @@
|
|
1
1
|
namespace :db do
|
2
|
-
|
3
|
-
|
4
|
-
# test empty opt.models
|
5
|
-
# test populated opt.models
|
6
|
-
# test no_id option
|
7
|
-
# test limit option
|
8
|
-
# test empty table but valid seed
|
9
|
-
# test no-data
|
10
|
-
# Write by default to db/seeds.rb
|
11
|
-
# make filename optional with FILE env variable
|
12
|
-
# should ignore append if file doesn't exist
|
13
|
-
#
|
14
|
-
# rake db:seed:dump WITH_ID=true MODELS=User,Product LIMIT=1 NO_DATA=true APPEND=true INDENT=8 FILE=/tmp/seeds.rb
|
15
|
-
#
|
16
|
-
namespace :seed do
|
17
|
-
desc =<<HERE
|
18
|
-
Dump records from the database into db/seeds
|
19
|
-
HERE
|
2
|
+
namespace :seed do
|
3
|
+
desc "Dump records from the database into db/seeds.rb"
|
20
4
|
task :dump => :environment do
|
21
5
|
|
22
6
|
# config
|
@@ -31,7 +15,7 @@ HERE
|
|
31
15
|
|
32
16
|
models = opts['models'].split(',').collect {|x| x.underscore.singularize }
|
33
17
|
|
34
|
-
new_line = "\
|
18
|
+
new_line = "\n"
|
35
19
|
|
36
20
|
seed_rb = ""
|
37
21
|
Dir['app/models/*.rb'].each do |f|
|
@@ -47,15 +31,20 @@ HERE
|
|
47
31
|
arr.each_with_index { |r,i|
|
48
32
|
|
49
33
|
attr_s = [];
|
50
|
-
|
34
|
+
|
35
|
+
r.attributes.each { |k,v|
|
36
|
+
v = v.class == Time ? "\"#{v}\"" : v.inspect
|
37
|
+
attr_s.push("#{k.to_sym.inspect} => #{v}") unless k == 'id' && !opts['with_id']
|
38
|
+
}
|
51
39
|
|
52
40
|
create_hash << (i > 0 ? ",#{new_line}" : new_line) << indent << '{ ' << attr_s.join(', ') << ' }'
|
53
41
|
|
54
42
|
}
|
55
43
|
|
56
|
-
seed_rb << "#{new_line}#{model_name.pluralize} = #{model_name.camelize}.create(#{create_hash}#{new_line})#{new_line}"
|
44
|
+
seed_rb << "#{new_line}#{model_name.pluralize} = #{model_name.camelize}.create([#{create_hash}#{new_line}])#{new_line}"
|
57
45
|
end
|
58
46
|
end
|
47
|
+
|
59
48
|
File.open(opts['file'], (opts['append'] ? "a" : "w")) { |f|
|
60
49
|
|
61
50
|
unless opts['append']
|
@@ -74,5 +63,4 @@ HERE
|
|
74
63
|
}
|
75
64
|
end
|
76
65
|
end
|
77
|
-
|
78
66
|
end
|
data/seed_dump.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{seed_dump}
|
8
|
-
s.version = "0.1
|
8
|
+
s.version = "0.2.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Rob Halff"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-08-01}
|
13
13
|
s.description = %q{Dump (parts) of your database to db/seeds.rb to get a headstart creating a meaningful seeds.rb file}
|
14
14
|
s.email = %q{rob.halff@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -22,9 +22,9 @@ Gem::Specification.new do |s|
|
|
22
22
|
"README.rdoc",
|
23
23
|
"Rakefile",
|
24
24
|
"VERSION",
|
25
|
-
"lib/railties/tasks.rake",
|
26
25
|
"lib/seed_dump.rb",
|
27
|
-
"lib/
|
26
|
+
"lib/seed_dump/railtie.rb",
|
27
|
+
"lib/tasks/seed_dump.rake",
|
28
28
|
"seed_dump.gemspec",
|
29
29
|
"test/seed_dump_test.rb",
|
30
30
|
"test/test_helper.rb"
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
+
- 2
|
7
8
|
- 1
|
8
|
-
|
9
|
-
version: 0.1.4
|
9
|
+
version: 0.2.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Rob Halff
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-08-01 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -33,9 +33,9 @@ files:
|
|
33
33
|
- README.rdoc
|
34
34
|
- Rakefile
|
35
35
|
- VERSION
|
36
|
-
- lib/railties/tasks.rake
|
37
36
|
- lib/seed_dump.rb
|
38
|
-
- lib/
|
37
|
+
- lib/seed_dump/railtie.rb
|
38
|
+
- lib/tasks/seed_dump.rake
|
39
39
|
- seed_dump.gemspec
|
40
40
|
- test/seed_dump_test.rb
|
41
41
|
- test/test_helper.rb
|