seeding 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>
@@ -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
- str << " :#{at} => \"#{v[at]}\", "
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
@@ -1,3 +1,3 @@
1
1
  module Seeding
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -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
@@ -0,0 +1,3 @@
1
+ class Employee < ActiveRecord::Base
2
+ attr_accessible :name
3
+ end
@@ -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
@@ -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
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.3
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: 2012-08-09 00:00:00.000000000 Z
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: &70287250827500 !ruby/object:Gem::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: *70287250827500
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.10
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
- has_rdoc:
142
+ test_files:
143
+ - spec/employee.rb
144
+ - spec/seed_spec.rb
145
+ - spec/spec_helper.rb
146
+ - spec/testdb.sqlite3