activerecord-mysql-pkdump 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f0d9a53befd0202111beb23c6a99b38ce59613a
4
- data.tar.gz: c230aaf3f6d41e5e16db28bb718b322dbd5e59f3
3
+ metadata.gz: 9c304e333a9272b3844d1efb22311fe33e97cded
4
+ data.tar.gz: 7e3cd9e0ef4295ddaebd6e2092db4d7f1e83409f
5
5
  SHA512:
6
- metadata.gz: fa48a2e5b9aad96131faf78a1d75f229cec0d1b9c34ece4f88418cb99660606a6006791cb3450df0d93589db435efb0f881de6d2bfe13048fd348a8a6dcfabd7
7
- data.tar.gz: 764c1b0b51da875d85edbc20bf79cfb949fb1138328c39042364e64c0b03c375a8386fa8f597b4a23f3873dd4dcbb9a5774ad40b4267b155b6c248295d8edc26
6
+ metadata.gz: 1489c6faf9de44bdbb4771deaa6e1273585d9a9301f93d1504438db8726b9f28d8736e2d84b5074951dd76cbad75d237097711ea6953e654cc1f8c2270443d7b
7
+ data.tar.gz: 8a566e4158e0ffa397874acc2a46f1fe0442f9a92d183e4d06f32a92817f98a65e4be9acc1473d6a8142c689189afefe366179b22aae6bdc96cb46e9407d9eab
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --require spec_helper
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ script:
5
+ - bundle install
6
+ - bundle exec rake
data/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Dump the type information of a non-standard primary key.
4
4
 
5
+ [![Gem Version](https://badge.fury.io/rb/activerecord-mysql-pkdump.svg)](http://badge.fury.io/rb/activerecord-mysql-pkdump)
6
+ [![Build Status](https://travis-ci.org/winebarrel/activerecord-mysql-pkdump.svg?branch=master)](https://travis-ci.org/winebarrel/activerecord-mysql-pkdump)
7
+ [![Coverage Status](https://coveralls.io/repos/winebarrel/activerecord-mysql-pkdump/badge.png?branch=master)](https://coveralls.io/r/winebarrel/activerecord-mysql-pkdump?branch=master)
8
+
5
9
  ## Installation
6
10
 
7
11
  Add this line to your application's Gemfile:
@@ -31,7 +35,7 @@ ActiveRecord::Base.establish_connection(
31
35
 
32
36
  ActiveRecord::SchemaDumper.dump
33
37
  #=> ...
34
- # create_table "items", primary_key: "my_id", id: 'bigint(20) auto_increment PRIMARY KEY', force: true do |t|
38
+ # create_table "items", primary_key: "my_id", id: "bigint(20) PRIMARY KEY auto_increment", force: true do |t|
35
39
  # ...
36
40
  # end
37
41
  # ...
data/Rakefile CHANGED
@@ -1 +1,5 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new('spec')
5
+ task :default => :spec
@@ -22,4 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'bundler'
23
23
  spec.add_development_dependency 'rake', '~> 10.0'
24
24
  spec.add_development_dependency 'mysql2'
25
+ spec.add_development_dependency 'rake'
26
+ spec.add_development_dependency 'rspec', '>= 3.0.0'
27
+ spec.add_development_dependency 'coveralls'
25
28
  end
@@ -1,7 +1,7 @@
1
1
  module Activerecord
2
2
  module Mysql
3
3
  module Pkdump
4
- VERSION = '0.0.2'
4
+ VERSION = '0.1.0'
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,173 @@
1
+ describe Activerecord::Mysql::Pkdump do
2
+ context 'when there is no table' do
3
+ it do
4
+ expect(dump).to eq <<-RUBY.strip
5
+ ActiveRecord::Schema.define(version: 0) do
6
+
7
+ end
8
+ RUBY
9
+ end
10
+ end
11
+
12
+ context 'when PK is `id`(int)' do
13
+ before do
14
+ create_tables(:id, 'int(11) primary key auto_increment')
15
+ end
16
+
17
+ it do
18
+ expect(dump).to eq <<-RUBY.strip
19
+ ActiveRecord::Schema.define(version: 0) do
20
+
21
+ create_table "authors", force: true do |t|
22
+ t.string "name", null: false
23
+ t.datetime "created_at"
24
+ t.datetime "updated_at"
25
+ end
26
+
27
+ create_table "books", force: true do |t|
28
+ t.string "title", null: false
29
+ t.integer "author_id", null: false
30
+ t.datetime "created_at"
31
+ t.datetime "updated_at"
32
+ end
33
+
34
+ end
35
+ RUBY
36
+ end
37
+ end
38
+
39
+ context 'when PK is `my_id`(int)' do
40
+ before do
41
+ create_tables(:my_id, 'int(11) primary key auto_increment')
42
+ end
43
+
44
+ it do
45
+ expect(dump).to eq <<-RUBY.strip
46
+ ActiveRecord::Schema.define(version: 0) do
47
+
48
+ create_table "authors", primary_key: "my_id", force: true do |t|
49
+ t.string "name", null: false
50
+ t.datetime "created_at"
51
+ t.datetime "updated_at"
52
+ end
53
+
54
+ create_table "books", primary_key: "my_id", force: true do |t|
55
+ t.string "title", null: false
56
+ t.integer "author_id", null: false
57
+ t.datetime "created_at"
58
+ t.datetime "updated_at"
59
+ end
60
+
61
+ end
62
+ RUBY
63
+ end
64
+ end
65
+
66
+ context 'when PK is `id`(bigint)' do
67
+ before do
68
+ create_tables(:id, 'bigint primary key auto_increment')
69
+ end
70
+
71
+ it do
72
+ expect(dump).to eq <<-RUBY.strip
73
+ ActiveRecord::Schema.define(version: 0) do
74
+
75
+ create_table "authors", id: "bigint(20) PRIMARY KEY auto_increment", force: true do |t|
76
+ t.string "name", null: false
77
+ t.datetime "created_at"
78
+ t.datetime "updated_at"
79
+ end
80
+
81
+ create_table "books", id: "bigint(20) PRIMARY KEY auto_increment", force: true do |t|
82
+ t.string "title", null: false
83
+ t.integer "author_id", null: false
84
+ t.datetime "created_at"
85
+ t.datetime "updated_at"
86
+ end
87
+
88
+ end
89
+ RUBY
90
+ end
91
+ end
92
+
93
+ context 'when PK is `my_id`(bigint)' do
94
+ before do
95
+ create_tables(:my_id, 'bigint primary key auto_increment')
96
+ end
97
+
98
+ it do
99
+ expect(dump).to eq <<-RUBY.strip
100
+ ActiveRecord::Schema.define(version: 0) do
101
+
102
+ create_table "authors", primary_key: "my_id", id: "bigint(20) PRIMARY KEY auto_increment", force: true do |t|
103
+ t.string "name", null: false
104
+ t.datetime "created_at"
105
+ t.datetime "updated_at"
106
+ end
107
+
108
+ create_table "books", primary_key: "my_id", id: "bigint(20) PRIMARY KEY auto_increment", force: true do |t|
109
+ t.string "title", null: false
110
+ t.integer "author_id", null: false
111
+ t.datetime "created_at"
112
+ t.datetime "updated_at"
113
+ end
114
+
115
+ end
116
+ RUBY
117
+ end
118
+ end
119
+
120
+ context 'when PK is `id`(varchar(255))' do
121
+ before do
122
+ create_tables(:id, 'varchar(255) primary key')
123
+ end
124
+
125
+ it do
126
+ expect(dump).to eq <<-RUBY.strip
127
+ ActiveRecord::Schema.define(version: 0) do
128
+
129
+ create_table "authors", id: "varchar(255) PRIMARY KEY", force: true do |t|
130
+ t.string "name", null: false
131
+ t.datetime "created_at"
132
+ t.datetime "updated_at"
133
+ end
134
+
135
+ create_table "books", id: "varchar(255) PRIMARY KEY", force: true do |t|
136
+ t.string "title", null: false
137
+ t.integer "author_id", null: false
138
+ t.datetime "created_at"
139
+ t.datetime "updated_at"
140
+ end
141
+
142
+ end
143
+ RUBY
144
+ end
145
+ end
146
+
147
+ context 'when PK is `my_id`(varchar(255))' do
148
+ before do
149
+ create_tables(:my_id, 'varchar(255) primary key')
150
+ end
151
+
152
+ it do
153
+ expect(dump).to eq <<-RUBY.strip
154
+ ActiveRecord::Schema.define(version: 0) do
155
+
156
+ create_table "authors", primary_key: "my_id", id: "varchar(255) PRIMARY KEY", force: true do |t|
157
+ t.string "name", null: false
158
+ t.datetime "created_at"
159
+ t.datetime "updated_at"
160
+ end
161
+
162
+ create_table "books", primary_key: "my_id", id: "varchar(255) PRIMARY KEY", force: true do |t|
163
+ t.string "title", null: false
164
+ t.integer "author_id", null: false
165
+ t.datetime "created_at"
166
+ t.datetime "updated_at"
167
+ end
168
+
169
+ end
170
+ RUBY
171
+ end
172
+ end
173
+ end
@@ -0,0 +1,92 @@
1
+ if ENV['TRAVIS']
2
+ require 'simplecov'
3
+ require 'coveralls'
4
+
5
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
6
+ SimpleCov.start do
7
+ add_filter "spec/"
8
+ end
9
+ end
10
+
11
+ require 'active_record'
12
+ require 'activerecord-mysql-pkdump'
13
+
14
+ TEST_DATABASE = 'activerecord_mysql_pkdump_test'
15
+
16
+ RSpec.configure do |config|
17
+ config.before(:all) do
18
+ ActiveRecord::Base.establish_connection(
19
+ adapter: 'mysql2',
20
+ database: TEST_DATABASE,
21
+ )
22
+ end
23
+
24
+ config.before(:each) do
25
+ clean_database
26
+ end
27
+ end
28
+
29
+ def mysql
30
+ client = nil
31
+ retval = nil
32
+
33
+ begin
34
+ client = Mysql2::Client.new(
35
+ host: 'localhost',
36
+ username: 'root',
37
+ )
38
+
39
+ retval = yield(client)
40
+ ensure
41
+ client.close if client
42
+ end
43
+
44
+ retval
45
+ end
46
+
47
+ def create_database(client)
48
+ client.query("CREATE DATABASE #{TEST_DATABASE}")
49
+ end
50
+
51
+ def drop_database(client)
52
+ client.query("DROP DATABASE IF EXISTS #{TEST_DATABASE}")
53
+ end
54
+
55
+ def clean_database
56
+ mysql do |client|
57
+ drop_database(client)
58
+ create_database(client)
59
+ end
60
+ end
61
+
62
+ def create_tables(pk_name, pk_type)
63
+ mysql do |client|
64
+ client.query("USE #{TEST_DATABASE}")
65
+
66
+ client.query(<<-SQL)
67
+ CREATE TABLE books (
68
+ `#{pk_name}` #{pk_type},
69
+ `title` varchar(255) NOT NULL,
70
+ `author_id` int(10) unsigned NOT NULL,
71
+ `created_at` datetime DEFAULT NULL,
72
+ `updated_at` datetime DEFAULT NULL
73
+ ) DEFAULT CHARSET=utf8
74
+ SQL
75
+
76
+ client.query(<<-SQL)
77
+ CREATE TABLE authors (
78
+ `#{pk_name}` #{pk_type},
79
+ `name` varchar(255) NOT NULL,
80
+ `created_at` datetime DEFAULT NULL,
81
+ `updated_at` datetime DEFAULT NULL
82
+ ) DEFAULT CHARSET=utf8;
83
+ SQL
84
+ end
85
+ end
86
+
87
+ def dump
88
+ conn = ActiveRecord::Base.connection
89
+ stream = StringIO.new
90
+ ActiveRecord::SchemaDumper.dump(conn, stream)
91
+ stream.string.gsub(/^#.*$/, '').strip
92
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-mysql-pkdump
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-17 00:00:00.000000000 Z
11
+ date: 2014-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -66,6 +66,48 @@ dependencies:
66
66
  - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: 3.0.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: 3.0.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: coveralls
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
69
111
  description: Dump the type information of a non-standard primary key.
70
112
  email:
71
113
  - sgwr_dts@yahoo.co.jp
@@ -74,6 +116,8 @@ extensions: []
74
116
  extra_rdoc_files: []
75
117
  files:
76
118
  - .gitignore
119
+ - .rspec
120
+ - .travis.yml
77
121
  - Gemfile
78
122
  - LICENSE.txt
79
123
  - README.md
@@ -82,6 +126,8 @@ files:
82
126
  - lib/activerecord-mysql-pkdump.rb
83
127
  - lib/activerecord/mysql/pkdump.rb
84
128
  - lib/activerecord/mysql/pkdump/version.rb
129
+ - spec/activerecord-mysql-pkdump_spec.rb
130
+ - spec/spec_helper.rb
85
131
  homepage: https://github.com/winebarrel/activerecord-mysql-pkdump
86
132
  licenses:
87
133
  - MIT
@@ -106,4 +152,6 @@ rubygems_version: 2.0.14
106
152
  signing_key:
107
153
  specification_version: 4
108
154
  summary: Dump the type information of a non-standard primary key.
109
- test_files: []
155
+ test_files:
156
+ - spec/activerecord-mysql-pkdump_spec.rb
157
+ - spec/spec_helper.rb