squealer 2.2.0 → 2.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/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  pkg/
2
2
  tags
3
+ tmp/
data/.rvmrc CHANGED
@@ -1,6 +1,6 @@
1
1
  # These are the rubies that squealer has been tested on. Uncomment the one you want to use right now.
2
2
  # 1.8.7-p249 segfaults postgres.
3
3
  #
4
- # rvm use 1.8.7-p174@squealer
5
- rvm use 1.9.1@squealer #-p378
4
+ rvm use 1.8.7-p174@squealer
5
+ # rvm use 1.9.1@squealer #-p378
6
6
  # rvm use 1.9.2@squealer #-preview3
data/README.md CHANGED
@@ -22,9 +22,9 @@ where the squeal script includes a `require 'squealer'`.
22
22
  ### v2.2
23
23
  * Adds support for PostgreSQL database as an export target
24
24
  * Uses EXPORT_DBMS environment variable to specify database adapter
25
- ** EXPORT_DMBS=mysql
26
- ** EXPORT_DBMS=postgres
27
- ** MySQL is default if not specified
25
+ * EXPORT_DMBS=mysql
26
+ * EXPORT_DBMS=postgres
27
+ * MySQL is default if not specified
28
28
  * Switched to using DataMapper's DataObjects SQL wrapper
29
29
  * Removed the need for some typecasting and export schema restrictions (e.g. true/false maps to whatever is idiomatic for the specified DBMS)
30
30
  * NB: The pg gem for PostgreSQL segfaults on Ruby 1.8.7-p249 so we've reverted to supporting up to 1.8.7-p174
data/Rakefile CHANGED
@@ -4,13 +4,14 @@
4
4
  require 'rake'
5
5
  require 'spec/rake/spectask'
6
6
  require 'rake/rdoctask'
7
+ require 'metric_fu'
7
8
 
8
9
  begin
9
10
  require 'jeweler'
10
11
  Jeweler::Tasks.new do |gemspec|
11
12
  gemspec.name = "squealer"
12
- gemspec.summary = "Document-oriented to Relational database exporter"
13
- gemspec.description = "Exports mongodb to mysql. More later."
13
+ gemspec.summary = "Document-oriented database to RDBMS exports"
14
+ gemspec.description = "Exports MongoDB to MySQL or PostgreSQL."
14
15
  gemspec.email = "joshua.graham@grahamis.com"
15
16
  gemspec.homepage = "http://github.com/delitescere/squealer/"
16
17
  gemspec.authors = ["Josh Graham", "Durran Jordan", "Matt Yoho", "Bernerd Schaefer"]
@@ -24,9 +25,7 @@ begin
24
25
 
25
26
  # export DBMS
26
27
  gemspec.add_dependency('data_objects', '>= 0.10.2')
27
- gemspec.add_dependency('mysql', '>= 2.8.1')
28
28
  gemspec.add_dependency('do_mysql', '>= 0.10.2')
29
- gemspec.add_dependency('pg', '>= 0.9.0')
30
29
  gemspec.add_dependency('do_postgres', '>= 0.10.2')
31
30
 
32
31
  gemspec.add_development_dependency('rspec', '>= 1.3.0')
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.2.0
1
+ 2.2.1
@@ -1,8 +1,5 @@
1
1
  require 'mongo'
2
2
  require 'data_objects'
3
- require 'mysql'
4
- require 'do_mysql'
5
- require 'do_postgres'
6
3
 
7
4
  require 'singleton'
8
5
 
@@ -16,6 +13,8 @@ module Squealer
16
13
  end
17
14
 
18
15
  def export_to(adapter, host, username, password, name)
16
+ require "do_#{adapter}"
17
+
19
18
  @@all_export_connections ||= []
20
19
  @export_do.dispose if @export_do
21
20
 
@@ -32,7 +31,7 @@ module Squealer
32
31
  end
33
32
 
34
33
  def upsertable?
35
- @export_do.is_a? DataObjects::Mysql::Connection
34
+ defined?(DataObjects::Mysql) && @export_do.is_a?(DataObjects::Mysql::Connection)
36
35
  end
37
36
 
38
37
  class Connection
@@ -1,4 +1,5 @@
1
1
  def create_export_db(name)
2
+ require 'do_mysql'
2
3
  $db_adapter = 'mysql'
3
4
  dbc = DataObjects::Connection.new("mysql://root@localhost/mysql")
4
5
  dbc.create_command("DROP DATABASE IF EXISTS #{name}").execute_non_query
@@ -1,4 +1,5 @@
1
1
  def create_export_db(name)
2
+ require 'do_postgres'
2
3
  $db_adapter = 'postgres'
3
4
  dbc = DataObjects::Connection.new("postgres://localhost/postgres")
4
5
  dbc.create_command("DROP DATABASE IF EXISTS #{name}").execute_non_query
@@ -5,13 +5,13 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{squealer}
8
- s.version = "2.2.0"
8
+ s.version = "2.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 = ["Josh Graham", "Durran Jordan", "Matt Yoho", "Bernerd Schaefer"]
12
12
  s.date = %q{2010-06-23}
13
13
  s.default_executable = %q{skewer}
14
- s.description = %q{Exports mongodb to mysql. More later.}
14
+ s.description = %q{Exports MongoDB to MySQL or PostgreSQL.}
15
15
  s.email = %q{joshua.graham@grahamis.com}
16
16
  s.executables = ["skewer"]
17
17
  s.extra_rdoc_files = [
@@ -50,8 +50,8 @@ Gem::Specification.new do |s|
50
50
  s.homepage = %q{http://github.com/delitescere/squealer/}
51
51
  s.rdoc_options = ["--charset=UTF-8"]
52
52
  s.require_paths = ["lib"]
53
- s.rubygems_version = %q{1.3.7}
54
- s.summary = %q{Document-oriented to Relational database exporter}
53
+ s.rubygems_version = %q{1.3.6}
54
+ s.summary = %q{Document-oriented database to RDBMS exports}
55
55
  s.test_files = [
56
56
  "spec/integration/export_a_record_spec.rb",
57
57
  "spec/spec_helper.rb",
@@ -68,22 +68,18 @@ Gem::Specification.new do |s|
68
68
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
69
69
  s.specification_version = 3
70
70
 
71
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
71
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
72
72
  s.add_runtime_dependency(%q<mongo>, [">= 0.18.3"])
73
73
  s.add_runtime_dependency(%q<bson_ext>, [">= 1.0.1"])
74
74
  s.add_runtime_dependency(%q<data_objects>, [">= 0.10.2"])
75
- s.add_runtime_dependency(%q<mysql>, [">= 2.8.1"])
76
75
  s.add_runtime_dependency(%q<do_mysql>, [">= 0.10.2"])
77
- s.add_runtime_dependency(%q<pg>, [">= 0.9.0"])
78
76
  s.add_runtime_dependency(%q<do_postgres>, [">= 0.10.2"])
79
77
  s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
80
78
  else
81
79
  s.add_dependency(%q<mongo>, [">= 0.18.3"])
82
80
  s.add_dependency(%q<bson_ext>, [">= 1.0.1"])
83
81
  s.add_dependency(%q<data_objects>, [">= 0.10.2"])
84
- s.add_dependency(%q<mysql>, [">= 2.8.1"])
85
82
  s.add_dependency(%q<do_mysql>, [">= 0.10.2"])
86
- s.add_dependency(%q<pg>, [">= 0.9.0"])
87
83
  s.add_dependency(%q<do_postgres>, [">= 0.10.2"])
88
84
  s.add_dependency(%q<rspec>, [">= 1.3.0"])
89
85
  end
@@ -91,9 +87,7 @@ Gem::Specification.new do |s|
91
87
  s.add_dependency(%q<mongo>, [">= 0.18.3"])
92
88
  s.add_dependency(%q<bson_ext>, [">= 1.0.1"])
93
89
  s.add_dependency(%q<data_objects>, [">= 0.10.2"])
94
- s.add_dependency(%q<mysql>, [">= 2.8.1"])
95
90
  s.add_dependency(%q<do_mysql>, [">= 0.10.2"])
96
- s.add_dependency(%q<pg>, [">= 0.9.0"])
97
91
  s.add_dependency(%q<do_postgres>, [">= 0.10.2"])
98
92
  s.add_dependency(%q<rspec>, [">= 1.3.0"])
99
93
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squealer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
5
4
  prerelease: false
6
5
  segments:
7
6
  - 2
8
7
  - 2
9
- - 0
10
- version: 2.2.0
8
+ - 1
9
+ version: 2.2.1
11
10
  platform: ruby
12
11
  authors:
13
12
  - Josh Graham
@@ -25,11 +24,9 @@ dependencies:
25
24
  name: mongo
26
25
  prerelease: false
27
26
  requirement: &id001 !ruby/object:Gem::Requirement
28
- none: false
29
27
  requirements:
30
28
  - - ">="
31
29
  - !ruby/object:Gem::Version
32
- hash: 81
33
30
  segments:
34
31
  - 0
35
32
  - 18
@@ -41,11 +38,9 @@ dependencies:
41
38
  name: bson_ext
42
39
  prerelease: false
43
40
  requirement: &id002 !ruby/object:Gem::Requirement
44
- none: false
45
41
  requirements:
46
42
  - - ">="
47
43
  - !ruby/object:Gem::Version
48
- hash: 21
49
44
  segments:
50
45
  - 1
51
46
  - 0
@@ -57,11 +52,9 @@ dependencies:
57
52
  name: data_objects
58
53
  prerelease: false
59
54
  requirement: &id003 !ruby/object:Gem::Requirement
60
- none: false
61
55
  requirements:
62
56
  - - ">="
63
57
  - !ruby/object:Gem::Version
64
- hash: 51
65
58
  segments:
66
59
  - 0
67
60
  - 10
@@ -69,87 +62,49 @@ dependencies:
69
62
  version: 0.10.2
70
63
  type: :runtime
71
64
  version_requirements: *id003
72
- - !ruby/object:Gem::Dependency
73
- name: mysql
74
- prerelease: false
75
- requirement: &id004 !ruby/object:Gem::Requirement
76
- none: false
77
- requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- hash: 45
81
- segments:
82
- - 2
83
- - 8
84
- - 1
85
- version: 2.8.1
86
- type: :runtime
87
- version_requirements: *id004
88
65
  - !ruby/object:Gem::Dependency
89
66
  name: do_mysql
90
67
  prerelease: false
91
- requirement: &id005 !ruby/object:Gem::Requirement
92
- none: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
93
69
  requirements:
94
70
  - - ">="
95
71
  - !ruby/object:Gem::Version
96
- hash: 51
97
72
  segments:
98
73
  - 0
99
74
  - 10
100
75
  - 2
101
76
  version: 0.10.2
102
77
  type: :runtime
103
- version_requirements: *id005
104
- - !ruby/object:Gem::Dependency
105
- name: pg
106
- prerelease: false
107
- requirement: &id006 !ruby/object:Gem::Requirement
108
- none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- hash: 59
113
- segments:
114
- - 0
115
- - 9
116
- - 0
117
- version: 0.9.0
118
- type: :runtime
119
- version_requirements: *id006
78
+ version_requirements: *id004
120
79
  - !ruby/object:Gem::Dependency
121
80
  name: do_postgres
122
81
  prerelease: false
123
- requirement: &id007 !ruby/object:Gem::Requirement
124
- none: false
82
+ requirement: &id005 !ruby/object:Gem::Requirement
125
83
  requirements:
126
84
  - - ">="
127
85
  - !ruby/object:Gem::Version
128
- hash: 51
129
86
  segments:
130
87
  - 0
131
88
  - 10
132
89
  - 2
133
90
  version: 0.10.2
134
91
  type: :runtime
135
- version_requirements: *id007
92
+ version_requirements: *id005
136
93
  - !ruby/object:Gem::Dependency
137
94
  name: rspec
138
95
  prerelease: false
139
- requirement: &id008 !ruby/object:Gem::Requirement
140
- none: false
96
+ requirement: &id006 !ruby/object:Gem::Requirement
141
97
  requirements:
142
98
  - - ">="
143
99
  - !ruby/object:Gem::Version
144
- hash: 27
145
100
  segments:
146
101
  - 1
147
102
  - 3
148
103
  - 0
149
104
  version: 1.3.0
150
105
  type: :development
151
- version_requirements: *id008
152
- description: Exports mongodb to mysql. More later.
106
+ version_requirements: *id006
107
+ description: Exports MongoDB to MySQL or PostgreSQL.
153
108
  email: joshua.graham@grahamis.com
154
109
  executables:
155
110
  - skewer
@@ -196,30 +151,26 @@ rdoc_options:
196
151
  require_paths:
197
152
  - lib
198
153
  required_ruby_version: !ruby/object:Gem::Requirement
199
- none: false
200
154
  requirements:
201
155
  - - ">="
202
156
  - !ruby/object:Gem::Version
203
- hash: 3
204
157
  segments:
205
158
  - 0
206
159
  version: "0"
207
160
  required_rubygems_version: !ruby/object:Gem::Requirement
208
- none: false
209
161
  requirements:
210
162
  - - ">="
211
163
  - !ruby/object:Gem::Version
212
- hash: 3
213
164
  segments:
214
165
  - 0
215
166
  version: "0"
216
167
  requirements: []
217
168
 
218
169
  rubyforge_project:
219
- rubygems_version: 1.3.7
170
+ rubygems_version: 1.3.6
220
171
  signing_key:
221
172
  specification_version: 3
222
- summary: Document-oriented to Relational database exporter
173
+ summary: Document-oriented database to RDBMS exports
223
174
  test_files:
224
175
  - spec/integration/export_a_record_spec.rb
225
176
  - spec/spec_helper.rb