dump_truck 0.0.2

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,38 @@
1
+ /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
2
+ /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
3
+ /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
4
+ /*!40101 SET NAMES utf8 */;
5
+ /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
6
+ /*!40103 SET TIME_ZONE='+00:00' */;
7
+ /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
8
+ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
9
+ /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
10
+ /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
11
+ DROP TABLE IF EXISTS `permissions`;
12
+ /*!40101 SET @saved_cs_client = @@character_set_client */;
13
+ /*!40101 SET character_set_client = utf8 */;
14
+ CREATE TABLE `permissions` (
15
+ `id` int(11) NOT NULL AUTO_INCREMENT,
16
+ `name` varchar(255) NOT NULL,
17
+ `created_at` datetime DEFAULT NULL,
18
+ `updated_at` datetime DEFAULT NULL,
19
+ PRIMARY KEY (`id`),
20
+ UNIQUE KEY `index_permissions_on_name` (`name`)
21
+ ) ENGINE=InnoDB AUTO_INCREMENT=343 DEFAULT CHARSET=utf8;
22
+ /*!40101 SET character_set_client = @saved_cs_client */;
23
+
24
+ LOCK TABLES `permissions` WRITE;
25
+ /*!40000 ALTER TABLE `permissions` DISABLE KEYS */;
26
+ INSERT INTO `permissions` (`id`, `name`, `created_at`, `updated_at`) VALUES (11,'account:login','2009-08-11 11:10:17','2009-08-11 11:10:17'),(23,'job_artifacts:view','2009-08-11 11:10:17','2009-08-11 11:10:17'),(35,'charities:view','2009-08-11 11:10:17','2009-08-11 11:10:17'),(47,'charities:create','2009-08-11 11:10:17','2009-08-11 11:10:17'),(5,'charities:edit','2009-08-11 11:10:17','2009-08-11 11:10:17'),(60,'careers:create','2009-08-11 11:10:17','2009-08-11 11:10:17'),(67,'careers:view','2009-08-11 11:10:18','2009-08-11 11:10:18'),(89,'careers:edit','2009-08-11 11:10:18','2009-08-11 11:10:18'),(9,'media_stories:create','2009-08-11 11:10:18','2009-08-11 11:10:18'),(100,'media_stories:view','2009-08-11 11:10:18','2009-08-11 11:10:18'),(112,'media_stories:edit','2009-08-11 11:10:18','2009-08-11 11:10:18'),(122,'media_stories:destroy','2009-08-11 11:10:18','2009-08-11 11:10:18');
27
+ /*!40000 ALTER TABLE `permissions` ENABLE KEYS */;
28
+ UNLOCK TABLES;
29
+ /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
30
+
31
+ /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
32
+ /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
33
+ /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
34
+ /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
35
+ /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
36
+ /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
37
+ /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
38
+
@@ -0,0 +1,39 @@
1
+ /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
2
+ /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
3
+ /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
4
+ /*!40101 SET NAMES utf8 */;
5
+ /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
6
+ /*!40103 SET TIME_ZONE='+00:00' */;
7
+ /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
8
+ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
9
+ /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
10
+ /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
11
+ DROP TABLE IF EXISTS `roles`;
12
+ /*!40101 SET @saved_cs_client = @@character_set_client */;
13
+ /*!40101 SET character_set_client = utf8 */;
14
+ CREATE TABLE `roles` (
15
+ `id` int(11) NOT NULL AUTO_INCREMENT,
16
+ `name` varchar(255) NOT NULL,
17
+ `description` varchar(255) DEFAULT NULL,
18
+ `created_at` datetime DEFAULT NULL,
19
+ `updated_at` datetime DEFAULT NULL,
20
+ PRIMARY KEY (`id`),
21
+ UNIQUE KEY `index_roles_on_name` (`name`)
22
+ ) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;
23
+ /*!40101 SET character_set_client = @saved_cs_client */;
24
+
25
+ LOCK TABLES `roles` WRITE;
26
+ /*!40000 ALTER TABLE `roles` DISABLE KEYS */;
27
+ INSERT INTO `roles` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES (21,'Employee',NULL,'2009-08-11 11:10:17','2009-08-11 11:10:17'),(23,'Charity Management',NULL,'2009-08-11 11:10:17','2009-08-11 11:10:17'),(34,'Content Management',NULL,'2009-08-11 11:10:17','2009-08-11 11:10:17'),(84,'Email Management',NULL,'2009-08-11 11:10:18','2009-08-11 11:10:18'),(85,'Search Management',NULL,'2009-08-11 11:10:18','2009-08-11 11:10:18'),(96,'Net Promoter Management',NULL,'2009-08-11 11:10:18','2009-08-11 11:10:18'),(207,'Promo Management',NULL,'2009-08-11 11:10:18','2009-08-11 11:10:18'),(308,'Marketing Management',NULL,'2009-08-11 11:10:18','2009-08-11 11:10:18');
28
+ /*!40000 ALTER TABLE `roles` ENABLE KEYS */;
29
+ UNLOCK TABLES;
30
+ /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
31
+
32
+ /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
33
+ /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
34
+ /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
35
+ /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
36
+ /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
37
+ /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
38
+ /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
39
+
@@ -0,0 +1,111 @@
1
+ /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
2
+ /*!40103 SET TIME_ZONE='+00:00' */;
3
+ /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
4
+ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
5
+ /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
6
+ /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
7
+ /*!40101 SET @saved_cs_client = @@character_set_client */;
8
+ /*!40101 SET character_set_client = utf8 */;
9
+ CREATE TABLE `permissions` (
10
+ `id` int(11) NOT NULL AUTO_INCREMENT,
11
+ `name` varchar(255) NOT NULL,
12
+ `created_at` datetime DEFAULT NULL,
13
+ `updated_at` datetime DEFAULT NULL,
14
+ PRIMARY KEY (`id`),
15
+ UNIQUE KEY `index_permissions_on_name` (`name`)
16
+ ) ENGINE=InnoDB AUTO_INCREMENT=343 DEFAULT CHARSET=utf8;
17
+ /*!40101 SET character_set_client = @saved_cs_client */;
18
+ /*!40101 SET @saved_cs_client = @@character_set_client */;
19
+ /*!40101 SET character_set_client = utf8 */;
20
+ CREATE TABLE `roles` (
21
+ `id` int(11) NOT NULL AUTO_INCREMENT,
22
+ `name` varchar(255) NOT NULL,
23
+ `description` varchar(255) DEFAULT NULL,
24
+ `created_at` datetime DEFAULT NULL,
25
+ `updated_at` datetime DEFAULT NULL,
26
+ PRIMARY KEY (`id`),
27
+ UNIQUE KEY `index_roles_on_name` (`name`)
28
+ ) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;
29
+ /*!40101 SET character_set_client = @saved_cs_client */;
30
+ /*!40101 SET @saved_cs_client = @@character_set_client */;
31
+ /*!40101 SET character_set_client = utf8 */;
32
+ CREATE TABLE `users` (
33
+ `id` int(11) NOT NULL AUTO_INCREMENT,
34
+ `login` varchar(255) CHARACTER SET utf8 NOT NULL,
35
+ `email` varchar(255) CHARACTER SET utf8 NOT NULL,
36
+ `encrypted_password` varchar(128) NOT NULL DEFAULT '',
37
+ `password_salt` varchar(128) NOT NULL DEFAULT '',
38
+ `created_at` datetime DEFAULT NULL,
39
+ `updated_at` datetime DEFAULT NULL,
40
+ `remember_token` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
41
+ `remember_token_expires_at` datetime DEFAULT NULL,
42
+ `confirmed_agreement` tinyint(1) NOT NULL DEFAULT '0',
43
+ `first_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
44
+ `middle_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
45
+ `last_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
46
+ `role` int(11) DEFAULT '0',
47
+ `status` int(11) DEFAULT '0',
48
+ `pw_reset_code` varchar(40) CHARACTER SET utf8 DEFAULT NULL,
49
+ `activated` tinyint(1) DEFAULT '0',
50
+ `activation_key` varchar(40) DEFAULT NULL,
51
+ `telephone` varchar(255) DEFAULT NULL,
52
+ `confirmed_referral_terms` tinyint(1) DEFAULT '0',
53
+ `confirmed_referral_terms_at` datetime DEFAULT NULL,
54
+ `current_facility_id` int(11) DEFAULT NULL,
55
+ `selected_drive_id` int(11) DEFAULT NULL,
56
+ `triggers_qc` tinyint(1) NOT NULL DEFAULT '0',
57
+ `persistence_token` varchar(255) DEFAULT NULL,
58
+ `single_access_token` varchar(255) DEFAULT NULL,
59
+ `requires_ldap_authentication` tinyint(1) DEFAULT '0',
60
+ `sign_in_count` int(11) DEFAULT '0',
61
+ `current_sign_in_at` datetime DEFAULT NULL,
62
+ `last_sign_in_at` datetime DEFAULT NULL,
63
+ `current_sign_in_ip` varchar(255) DEFAULT NULL,
64
+ `last_sign_in_ip` varchar(255) DEFAULT NULL,
65
+ PRIMARY KEY (`id`),
66
+ UNIQUE KEY `index_users_on_email` (`email`),
67
+ UNIQUE KEY `index_users_on_single_access_token` (`single_access_token`),
68
+ UNIQUE KEY `index_users_on_pw_reset_code` (`pw_reset_code`),
69
+ KEY `index_users_on_activation_key` (`activation_key`),
70
+ KEY `index_users_on_activated` (`activated`),
71
+ KEY `index_users_on_last_name` (`last_name`)
72
+ ) ENGINE=InnoDB AUTO_INCREMENT=919492 DEFAULT CHARSET=latin1;
73
+ /*!40101 SET character_set_client = @saved_cs_client */;
74
+ /*!40101 SET @saved_cs_client = @@character_set_client */;
75
+ /*!40101 SET character_set_client = utf8 */;
76
+ CREATE TABLE `mail_queue` (
77
+ `id` int(11) NOT NULL AUTO_INCREMENT,
78
+ `subject` varchar(255) DEFAULT NULL,
79
+ `from` varchar(255) DEFAULT NULL,
80
+ `to` varchar(255) DEFAULT NULL,
81
+ `cc` varchar(255) DEFAULT NULL,
82
+ `bcc` varchar(255) DEFAULT NULL,
83
+ `charset` varchar(255) DEFAULT NULL,
84
+ `content_type` varchar(255) DEFAULT NULL,
85
+ `body` text,
86
+ `data` text,
87
+ `locked` tinyint(1) NOT NULL DEFAULT '0',
88
+ `priority` int(11) NOT NULL DEFAULT '3',
89
+ `tries` int(11) NOT NULL DEFAULT '0',
90
+ `maximum_tries` int(11) NOT NULL DEFAULT '3',
91
+ `created_at` datetime DEFAULT NULL,
92
+ `updated_at` datetime DEFAULT NULL,
93
+ `sent_at` datetime DEFAULT NULL,
94
+ `attachments` tinyint(1) DEFAULT '0',
95
+ PRIMARY KEY (`id`),
96
+ KEY `index_mail_queue_on_locked` (`locked`),
97
+ KEY `index_mail_queue_on_priority` (`priority`),
98
+ KEY `index_mail_queue_on_tries` (`tries`),
99
+ KEY `index_mail_queue_on_created_at` (`created_at`),
100
+ KEY `index_mail_queue_on_sent_at` (`sent_at`),
101
+ KEY `index_mail_queue_on_to` (`to`),
102
+ KEY `mail_queue_locked_sent_at_updated_at_tries` (`locked`,`sent_at`,`updated_at`,`tries`)
103
+ ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
104
+ /*!40101 SET character_set_client = @saved_cs_client */;
105
+ /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
106
+
107
+ /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
108
+ /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
109
+ /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
110
+ /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
111
+
@@ -0,0 +1,71 @@
1
+ /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
2
+ /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
3
+ /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
4
+ /*!40101 SET NAMES utf8 */;
5
+ /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
6
+ /*!40103 SET TIME_ZONE='+00:00' */;
7
+ /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
8
+ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
9
+ /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
10
+ /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
11
+ DROP TABLE IF EXISTS `users`;
12
+ /*!40101 SET @saved_cs_client = @@character_set_client */;
13
+ /*!40101 SET character_set_client = utf8 */;
14
+ CREATE TABLE `users` (
15
+ `id` int(11) NOT NULL AUTO_INCREMENT,
16
+ `login` varchar(255) CHARACTER SET utf8 NOT NULL,
17
+ `email` varchar(255) CHARACTER SET utf8 NOT NULL,
18
+ `encrypted_password` varchar(128) NOT NULL DEFAULT '',
19
+ `password_salt` varchar(128) NOT NULL DEFAULT '',
20
+ `created_at` datetime DEFAULT NULL,
21
+ `updated_at` datetime DEFAULT NULL,
22
+ `remember_token` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
23
+ `remember_token_expires_at` datetime DEFAULT NULL,
24
+ `confirmed_agreement` tinyint(1) NOT NULL DEFAULT '0',
25
+ `first_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
26
+ `middle_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
27
+ `last_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
28
+ `role` int(11) DEFAULT '0',
29
+ `status` int(11) DEFAULT '0',
30
+ `pw_reset_code` varchar(40) CHARACTER SET utf8 DEFAULT NULL,
31
+ `activated` tinyint(1) DEFAULT '0',
32
+ `activation_key` varchar(40) DEFAULT NULL,
33
+ `telephone` varchar(255) DEFAULT NULL,
34
+ `confirmed_referral_terms` tinyint(1) DEFAULT '0',
35
+ `confirmed_referral_terms_at` datetime DEFAULT NULL,
36
+ `current_facility_id` int(11) DEFAULT NULL,
37
+ `selected_drive_id` int(11) DEFAULT NULL,
38
+ `triggers_qc` tinyint(1) NOT NULL DEFAULT '0',
39
+ `persistence_token` varchar(255) DEFAULT NULL,
40
+ `single_access_token` varchar(255) DEFAULT NULL,
41
+ `requires_ldap_authentication` tinyint(1) DEFAULT '0',
42
+ `sign_in_count` int(11) DEFAULT '0',
43
+ `current_sign_in_at` datetime DEFAULT NULL,
44
+ `last_sign_in_at` datetime DEFAULT NULL,
45
+ `current_sign_in_ip` varchar(255) DEFAULT NULL,
46
+ `last_sign_in_ip` varchar(255) DEFAULT NULL,
47
+ PRIMARY KEY (`id`),
48
+ UNIQUE KEY `index_users_on_email` (`email`),
49
+ UNIQUE KEY `index_users_on_single_access_token` (`single_access_token`),
50
+ UNIQUE KEY `index_users_on_pw_reset_code` (`pw_reset_code`),
51
+ KEY `index_users_on_activation_key` (`activation_key`),
52
+ KEY `index_users_on_activated` (`activated`),
53
+ KEY `index_users_on_last_name` (`last_name`)
54
+ ) ENGINE=InnoDB AUTO_INCREMENT=919492 DEFAULT CHARSET=latin1;
55
+ /*!40101 SET character_set_client = @saved_cs_client */;
56
+
57
+ LOCK TABLES `users` WRITE;
58
+ /*!40000 ALTER TABLE `users` DISABLE KEYS */;
59
+ INSERT INTO `users` (`id`, `login`, `email`, `encrypted_password`, `password_salt`, `created_at`, `updated_at`, `remember_token`, `remember_token_expires_at`, `confirmed_agreement`, `first_name`, `middle_name`, `last_name`, `role`, `status`, `pw_reset_code`, `activated`, `activation_key`, `telephone`, `confirmed_referral_terms`, `confirmed_referral_terms_at`, `current_facility_id`, `selected_drive_id`, `triggers_qc`, `persistence_token`, `single_access_token`, `requires_ldap_authentication`, `sign_in_count`, `current_sign_in_at`, `last_sign_in_at`, `current_sign_in_ip`, `last_sign_in_ip`) VALUES (1,'jimmy@example.com','jimmy@example.com','937777777777e4077eacdd785afb55c5aac35d0e','937777777777e4077eacdd785afb55c5aac35d0e','2007-01-12 07:49:00','2009-05-20 18:43:04',NULL,NULL,0,'James','P','McElhiney',4,0,NULL,1,'937777777777e4077eacdd785afb55c5aac35d0e',NULL,1,'2009-02-16 20:03:34',1,NULL,0,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(9,'shari@secondrotation.com','shari@secondrotation.com','937777777777e4077eacdd785afb55c5aac35d0e','937777777777e4077eacdd785afb55c5aac35d0e','2007-01-20 20:19:21','2008-07-28 00:38:27',NULL,NULL,0,'Jimmy','','Shivers',4,0,'937777777777e4077eacdd785afb55c5aac35d0e',1,'937777777777e4077eacdd785afb55c5aac35d0e',NULL,0,'2008-07-28 00:33:35',NULL,NULL,0,NULL,NULL,0,0,NULL,NULL,NULL,NULL);
60
+ /*!40000 ALTER TABLE `users` ENABLE KEYS */;
61
+ UNLOCK TABLES;
62
+ /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
63
+
64
+ /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
65
+ /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
66
+ /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
67
+ /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
68
+ /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
69
+ /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
70
+ /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
71
+
@@ -0,0 +1,115 @@
1
+ require 'spec_helper'
2
+
3
+ describe DumpTruck::Mysql::Translator do
4
+ let(:translator){DumpTruck::Mysql::Translator.new}
5
+
6
+ describe '#table?' do
7
+ context "when line contains table create" do
8
+ let(:line){"CREATE TABLE `roles` (\n"}
9
+
10
+ it 'returns truthy' do
11
+ expect(translator).to be_table(line)
12
+ end
13
+ end
14
+
15
+ context "when line doesn't contain table create" do
16
+ let(:line){") ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;\n"}
17
+
18
+ it 'returns falsey' do
19
+ expect(translator).to_not be_table(line)
20
+ end
21
+ end
22
+ end
23
+
24
+ describe '#extract_table' do
25
+ context "when line contains table create" do
26
+ let(:line){"CREATE TABLE `roles` (\n"}
27
+
28
+ it 'extracts the table name' do
29
+ expect(translator.extract_table(line)).to eq('roles')
30
+ end
31
+ end
32
+
33
+ context "when line doesn't contain table create" do
34
+ let(:line){") ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;\n"}
35
+
36
+ it 'returns nil' do
37
+ expect(translator.extract_table(line)).to be_nil
38
+ end
39
+ end
40
+ end
41
+
42
+ describe '#insert?' do
43
+ context "when line contains insert" do
44
+ let(:line){"INSERT INTO `roles` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES (1,'Employee',NULL,'2009-08-11 11:10:17','2009-08-11 11:10:17');\n"}
45
+
46
+ it 'returns truthy' do
47
+ expect(translator).to be_insert(line)
48
+ end
49
+ end
50
+
51
+ context "when line doesn't contain insert" do
52
+ let(:line){") ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;\n"}
53
+
54
+ it 'returns falsey' do
55
+ expect(translator).to_not be_insert(line)
56
+ end
57
+ end
58
+ end
59
+
60
+ describe '#extract_insert' do
61
+ context 'with typical example' do
62
+ let(:line){"INSERT INTO `roles` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES (1,'Employee',NULL,'2009-08-11 11:10:17','2009-08-11 11:10:17');\n"}
63
+
64
+ it 'extracts the fields and values' do
65
+ expect(translator.extract_insert(line)).to eq([
66
+ %w(id name description created_at updated_at),
67
+ [{
68
+ 'id' => 1,
69
+ 'name' => 'Employee',
70
+ 'description' => nil,
71
+ 'created_at' => '2009-08-11 11:10:17',
72
+ 'updated_at' => '2009-08-11 11:10:17'
73
+ }]
74
+ ])
75
+ end
76
+ end
77
+
78
+ context 'with special cases' do
79
+ let(:line){"INSERT INTO `special_cases` (`contains_escaped_quote`, `empty_string`, `escapes_slash_before_quote`, `negative_number`, `negative_float`) VALUES ('\\'','','\\\\',-1,-1.3);\n"}
80
+
81
+ it 'extracts the fields and values' do
82
+ expect(translator.extract_insert(line)).to eq([
83
+ %w(contains_escaped_quote empty_string escapes_slash_before_quote negative_number negative_float),
84
+ [{
85
+ 'contains_escaped_quote' => "\\'",
86
+ 'empty_string' => '',
87
+ 'escapes_slash_before_quote' => "\\\\",
88
+ 'negative_number' => -1,
89
+ 'negative_float' => -1.3
90
+ }]
91
+ ])
92
+ end
93
+ end
94
+ end
95
+
96
+ describe '#generate_insert' do
97
+ let(:table){'roles'}
98
+ let(:keys){%w(id name description created_at updated_at)}
99
+ let(:data) do
100
+ [{
101
+ 'id' => 1,
102
+ 'name' => 'Employee',
103
+ 'description' => nil,
104
+ 'created_at' => '2009-08-11 11:10:17',
105
+ 'updated_at' => '2009-08-11 11:10:17'
106
+ }]
107
+ end
108
+
109
+ it 'generates a valid insert line' do
110
+ expect(translator.generate_insert(table, keys, data)).to eq(
111
+ "INSERT INTO `roles` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES (1,'Employee',NULL,'2009-08-11 11:10:17','2009-08-11 11:10:17');\n"
112
+ )
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+
3
+ describe DumpTruck::SchemaConfiguration do
4
+ describe '.new' do
5
+ let(:config) do
6
+ DumpTruck::SchemaConfiguration.new('app_production') do
7
+ target_path '/home/jake/dumps'
8
+ target_name{|schema| schema + Time.at(0).strftime("_%Y%m%d%H%M%S")}
9
+
10
+ table(:users){}
11
+ end
12
+ end
13
+ subject{config}
14
+
15
+ its(:name){should eq('app_production')}
16
+ its(:target){should eq('/home/jake/dumps/app_production_19691231190000.sql.gz')}
17
+ its(:table_default){should eq(DumpTruck::TableConfiguration.new{truncate})}
18
+ its(:tables){should eq([DumpTruck::TableConfiguration.new(:users)])}
19
+ end
20
+
21
+ describe '#table_config_for' do
22
+ context 'with no table configuration' do
23
+ let(:config) do
24
+ DumpTruck::SchemaConfiguration.new('app_production')
25
+ end
26
+
27
+ it "uses the default table config" do
28
+ expect(config.table_config_for('cats')).to eq(config.table_default)
29
+ end
30
+ end
31
+
32
+ context 'with table config specified' do
33
+ let(:config) do
34
+ DumpTruck::SchemaConfiguration.new('app_production') do
35
+ table(:users){}
36
+ end
37
+ end
38
+
39
+ it 'uses the specified table config' do
40
+ expect(config.table_config_for(:users)).to eq(DumpTruck::TableConfiguration.new(:users))
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,21 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'dump_truck'
3
+ require 'pry'
4
+
5
+ # This file was generated by the `rspec --init` command. Conventionally, all
6
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
7
+ # Require this file using `require "spec_helper"` to ensure that it is only
8
+ # loaded once.
9
+ #
10
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
11
+ RSpec.configure do |config|
12
+ config.treat_symbols_as_metadata_keys_with_true_values = true
13
+ config.run_all_when_everything_filtered = true
14
+ config.filter_run :focus
15
+
16
+ # Run specs in random order to surface order dependencies. If you find an
17
+ # order dependency and want to debug it, you can fix the order by providing
18
+ # the seed, which is printed after each run.
19
+ # --seed 1234
20
+ config.order = 'random'
21
+ end