seeding 0.0.3 → 0.0.5
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/.project +12 -0
- data/lib/seeding/create_seed.rb +2 -1
- data/lib/seeding/version.rb +1 -1
- data/seeding.gemspec +5 -0
- data/spec/employee.rb +3 -0
- data/spec/seed_spec.rb +64 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/testdb.sqlite3 +0 -0
- metadata +84 -7
data/.project
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<projectDescription>
|
3
|
+
<name>seeding</name>
|
4
|
+
<comment></comment>
|
5
|
+
<projects>
|
6
|
+
</projects>
|
7
|
+
<buildSpec>
|
8
|
+
</buildSpec>
|
9
|
+
<natures>
|
10
|
+
<nature>com.aptana.ruby.core.rubynature</nature>
|
11
|
+
</natures>
|
12
|
+
</projectDescription>
|
data/lib/seeding/create_seed.rb
CHANGED
@@ -22,7 +22,8 @@ module Seeding
|
|
22
22
|
if v[at].class.to_s == "Fixnum"
|
23
23
|
str << " :#{at} => #{v[at]}, "
|
24
24
|
else
|
25
|
-
|
25
|
+
temp_string = v[at].to_s.gsub("\"", "\\\"")
|
26
|
+
str << " :#{at} => \"#{temp_string}\", "
|
26
27
|
end
|
27
28
|
end
|
28
29
|
# todo: Clean this up
|
data/lib/seeding/version.rb
CHANGED
data/seeding.gemspec
CHANGED
@@ -16,4 +16,9 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.version = Seeding::VERSION
|
17
17
|
|
18
18
|
gem.add_runtime_dependency "uuid"
|
19
|
+
|
20
|
+
gem.add_development_dependency("rake")
|
21
|
+
gem.add_development_dependency("rspec")
|
22
|
+
gem.add_development_dependency("sqlite3")
|
23
|
+
gem.add_development_dependency("activerecord")
|
19
24
|
end
|
data/spec/employee.rb
ADDED
data/spec/seed_spec.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require "active_record"
|
3
|
+
require 'uuid'
|
4
|
+
require 'rake'
|
5
|
+
require 'employee'
|
6
|
+
|
7
|
+
describe Seeding::CreateSeed, "create" do
|
8
|
+
before(:each) do
|
9
|
+
@instance = Seeding::CreateSeed.new
|
10
|
+
ActiveRecord::Base.establish_connection(
|
11
|
+
:adapter => "sqlite3",
|
12
|
+
:database => File.dirname(__FILE__) + "/testdb.sqlite3"
|
13
|
+
)
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should generate proper row values for a given model" do
|
18
|
+
# step 0 : Clean up
|
19
|
+
Dir.glob("seeding-*.rb") do |fname|
|
20
|
+
File.delete fname
|
21
|
+
end
|
22
|
+
|
23
|
+
Employee.delete_all
|
24
|
+
|
25
|
+
# step 1 : create an instance of the model
|
26
|
+
test_model = Employee.new
|
27
|
+
|
28
|
+
# step 2 : Generate random values
|
29
|
+
temp_name = UUID.new.generate
|
30
|
+
temp_name = temp_name + "tes\"t1"
|
31
|
+
temp_name = temp_name + "tes't2"
|
32
|
+
|
33
|
+
# step 3 : insert values into the model
|
34
|
+
test_model.name = temp_name
|
35
|
+
test_model.save
|
36
|
+
|
37
|
+
# step 4 : generate seed file
|
38
|
+
Seeding::CreateSeed.new.query { Employee.all}
|
39
|
+
Dir.glob("seeding-*.rb") do |fname|
|
40
|
+
@seedfile = fname
|
41
|
+
end
|
42
|
+
|
43
|
+
# step 5 : delete values from the model
|
44
|
+
Employee.delete_all
|
45
|
+
|
46
|
+
# step 6 : execute seed file
|
47
|
+
fileContent = File.open(@seedfile, "r").read
|
48
|
+
fileContent.gsub!(/\r\n?/, "\n")
|
49
|
+
fileContent.each_line do |row|
|
50
|
+
eval "#{row}"
|
51
|
+
end
|
52
|
+
|
53
|
+
# Step 7 : Delete seed file
|
54
|
+
Dir.glob("seeding-*.rb") do |fname|
|
55
|
+
File.delete fname
|
56
|
+
end
|
57
|
+
|
58
|
+
# step 8 : read model and compare with initial values
|
59
|
+
test_model = Employee.find(:all).first
|
60
|
+
|
61
|
+
# Step 9 : compare the result from step 8 and it should match
|
62
|
+
test_model.name.should eq temp_name
|
63
|
+
end
|
64
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require "rubygems"
|
4
|
+
require "bundler"
|
5
|
+
Bundler.setup
|
6
|
+
|
7
|
+
require 'seeding'
|
8
|
+
|
9
|
+
|
10
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
11
|
+
# in spec/support/ and its subdirectories.
|
12
|
+
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f }
|
13
|
+
|
14
|
+
#RSpec.configure do |config|
|
15
|
+
# config.include ReaderSpecHelper
|
16
|
+
#end
|
data/spec/testdb.sqlite3
ADDED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seeding
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: uuid
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,76 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
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: rake
|
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: rspec
|
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: sqlite3
|
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: activerecord
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
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: '0'
|
25
94
|
description: Seeding creates a seed.rb from your existing database. You can write
|
26
95
|
queries on the rails console and it will write the results to your seed.rb. I wrote
|
27
96
|
it after having to create seed files with thousands of rows and could not handle
|
@@ -33,6 +102,7 @@ extensions: []
|
|
33
102
|
extra_rdoc_files: []
|
34
103
|
files:
|
35
104
|
- .gitignore
|
105
|
+
- .project
|
36
106
|
- Gemfile
|
37
107
|
- LICENSE
|
38
108
|
- README.md
|
@@ -41,6 +111,10 @@ files:
|
|
41
111
|
- lib/seeding/create_seed.rb
|
42
112
|
- lib/seeding/version.rb
|
43
113
|
- seeding.gemspec
|
114
|
+
- spec/employee.rb
|
115
|
+
- spec/seed_spec.rb
|
116
|
+
- spec/spec_helper.rb
|
117
|
+
- spec/testdb.sqlite3
|
44
118
|
homepage: https://github.com/nikoma/seeding
|
45
119
|
licenses: []
|
46
120
|
post_install_message:
|
@@ -61,9 +135,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
135
|
version: '0'
|
62
136
|
requirements: []
|
63
137
|
rubyforge_project:
|
64
|
-
rubygems_version: 1.8.
|
138
|
+
rubygems_version: 1.8.25
|
65
139
|
signing_key:
|
66
140
|
specification_version: 3
|
67
141
|
summary: Seeding creates a seed.rb from query results
|
68
|
-
test_files:
|
69
|
-
|
142
|
+
test_files:
|
143
|
+
- spec/employee.rb
|
144
|
+
- spec/seed_spec.rb
|
145
|
+
- spec/spec_helper.rb
|
146
|
+
- spec/testdb.sqlite3
|