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.
@@ -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