activerecord-mysql-unsigned 0.1.1 → 0.1.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/activerecord-mysql-unsigned.gemspec +1 -1
- data/lib/activerecord-mysql-unsigned/active_record/v4_1/connection_adapters/abstract_mysql_adapter.rb +4 -1
- data/lib/activerecord-mysql-unsigned/version.rb +1 -1
- data/spec/after_option_spec.rb +18 -0
- data/spec/spec_helper.rb +1 -2
- data/spec/support/migrations.rb +10 -3
- data/spec/support/models.rb +3 -0
- data/spec/unsigned_spec.rb +15 -7
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0701a7029950db4d1a05d8de74aaadf39b035368
|
4
|
+
data.tar.gz: 737d28712950d180796320e100cbd87b24c050cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d735efbeba0b96dad50e43c07e98fe9910b4f1d18127a2341b53abf1d7daa5ad75936def02ef086f60d12101c396251338fbf76c7f00a76109f22147a99ffe3
|
7
|
+
data.tar.gz: 1e2d852d8f0f616c6e0c71d36a6465ef543591ba404c50d0a1bc63e5fc2280e7988141e1f46c91622357abf893aeea2295a2ca3169cf096687edd44aaddc1c56
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "rspec"
|
23
|
+
spec.add_development_dependency "rspec", "~> 3.0.0"
|
24
24
|
spec.add_development_dependency "database_cleaner"
|
25
25
|
spec.add_runtime_dependency "activesupport", ">= 3.2", "< 4.2"
|
26
26
|
spec.add_runtime_dependency "activerecord", ">= 3.2", "< 4.2"
|
@@ -9,7 +9,10 @@ module ActiveRecord
|
|
9
9
|
def visit_AddColumn(o)
|
10
10
|
sql_type = type_to_sql(o.type.to_sym, o.limit, o.precision, o.scale, o.unsigned)
|
11
11
|
sql = "ADD #{quote_column_name(o.name)} #{sql_type}"
|
12
|
-
|
12
|
+
add_column_position!(
|
13
|
+
add_column_options!(sql, column_options(o)),
|
14
|
+
column_options(o)
|
15
|
+
)
|
13
16
|
end
|
14
17
|
|
15
18
|
def visit_ChangeColumnDefinition(o)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "after option" do
|
4
|
+
before :all do
|
5
|
+
AddColumnAfterToGoodsTable.change
|
6
|
+
end
|
7
|
+
|
8
|
+
it "insert 'added_after_name' column after 'name' column" do
|
9
|
+
name_num = added_after_name_num = 0
|
10
|
+
|
11
|
+
Goods.columns.each_with_index do |column, i|
|
12
|
+
name_num = i if column.name == "name"
|
13
|
+
added_after_name_num = i if column.name == "added_after_name"
|
14
|
+
end
|
15
|
+
|
16
|
+
expect(name_num + 1).to eq(added_after_name_num)
|
17
|
+
end
|
18
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,8 +8,7 @@ Dir["#{File.dirname(__FILE__)}/support/*.rb"].each {|file| require file}
|
|
8
8
|
|
9
9
|
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
10
10
|
RSpec.configure do |config|
|
11
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
12
11
|
config.run_all_when_everything_filtered = true
|
13
12
|
config.filter_run :focus
|
14
|
-
config.
|
13
|
+
config.color = true
|
15
14
|
end
|
data/spec/support/migrations.rb
CHANGED
@@ -10,18 +10,22 @@ ActiveRecord::Base.establish_connection(config.merge(database: 'mysql'))
|
|
10
10
|
ActiveRecord::Base.connection.drop_database(config[:database]) rescue nil
|
11
11
|
ActiveRecord::Base.connection.create_database(config[:database])
|
12
12
|
ActiveRecord::Base.establish_connection(config)
|
13
|
+
#ActiveRecord::Base.logger = Logger.new(STDOUT)
|
13
14
|
|
14
15
|
ActiveRecord::Migration.verbose = true
|
15
16
|
|
17
|
+
# create goods table
|
16
18
|
class CreateGoodsTable < ActiveRecord::Migration
|
17
19
|
def self.change
|
18
20
|
create_table :goods, force: true do |t|
|
19
21
|
t.string :name, null: false
|
22
|
+
t.boolean :deleted, default: false
|
20
23
|
end
|
21
24
|
end
|
22
25
|
end
|
23
26
|
CreateGoodsTable.change
|
24
27
|
|
28
|
+
# create users table
|
25
29
|
class CreateUsersTable < ActiveRecord::Migration
|
26
30
|
def self.change
|
27
31
|
create_table :users, force: true, id: false do |t|
|
@@ -42,7 +46,6 @@ class ChangePrimaryKeyToGoodsTable < ActiveRecord::Migration
|
|
42
46
|
change_column :goods, :id, :integer, limit: 8, unsigned: true, null: false, auto_increment: true
|
43
47
|
end
|
44
48
|
end
|
45
|
-
ChangePrimaryKeyToGoodsTable.change
|
46
49
|
|
47
50
|
class ChangeColumnToUsersTable < ActiveRecord::Migration
|
48
51
|
def self.change
|
@@ -52,11 +55,15 @@ class ChangeColumnToUsersTable < ActiveRecord::Migration
|
|
52
55
|
change_column :users, :will_bigint, :integer, limit: 8
|
53
56
|
end
|
54
57
|
end
|
55
|
-
ChangeColumnToUsersTable.change
|
56
58
|
|
57
59
|
class AddColumnToUsersTable < ActiveRecord::Migration
|
58
60
|
def self.change
|
59
61
|
add_column :users, :added_unsigned_int, :integer, unsigned: true
|
60
62
|
end
|
61
63
|
end
|
62
|
-
|
64
|
+
|
65
|
+
class AddColumnAfterToGoodsTable < ActiveRecord::Migration
|
66
|
+
def self.change
|
67
|
+
add_column :goods, :added_after_name, :integer, unsigned: true, after: :name
|
68
|
+
end
|
69
|
+
end
|
data/spec/support/models.rb
CHANGED
data/spec/unsigned_spec.rb
CHANGED
@@ -1,23 +1,30 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "INT column" do
|
4
|
+
|
5
|
+
before :all do
|
6
|
+
ChangePrimaryKeyToGoodsTable.change
|
7
|
+
ChangeColumnToUsersTable.change
|
8
|
+
AddColumnToUsersTable.change
|
9
|
+
end
|
10
|
+
|
4
11
|
before(:each) do
|
5
12
|
@user = User.new(name: "bob")
|
6
13
|
end
|
7
14
|
|
8
15
|
it "max value of signed int" do
|
9
16
|
@user.signed_int = 2147483647
|
10
|
-
expect(@user.save).to
|
17
|
+
expect(@user.save).to be_truthy
|
11
18
|
end
|
12
19
|
|
13
20
|
it "max value of unsigned int" do
|
14
21
|
@user.unsigned_int = 4294967295
|
15
|
-
expect(@user.save).to
|
22
|
+
expect(@user.save).to be_truthy
|
16
23
|
end
|
17
24
|
|
18
25
|
it "allowed minus value of signed int" do
|
19
26
|
@user.signed_int = -2147483648
|
20
|
-
expect(@user.save).to
|
27
|
+
expect(@user.save).to be_truthy
|
21
28
|
end
|
22
29
|
|
23
30
|
it "not allowed minus value of unsigned int" do
|
@@ -26,7 +33,7 @@ describe "INT column" do
|
|
26
33
|
if ActiveRecord::VERSION::MAJOR == 4
|
27
34
|
begin
|
28
35
|
@user.save
|
29
|
-
expect(true).to
|
36
|
+
expect(true).to be_falsey # should not be reached here
|
30
37
|
rescue => e
|
31
38
|
expect(e).to be_an_instance_of ActiveRecord::StatementInvalid
|
32
39
|
end
|
@@ -37,10 +44,11 @@ describe "INT column" do
|
|
37
44
|
end
|
38
45
|
end
|
39
46
|
|
40
|
-
it "unsigned column has 'unsigned'
|
47
|
+
it "unsigned column has 'unsigned' attribute" do
|
41
48
|
signed_int_col = User.columns[2]
|
42
|
-
expect(signed_int_col.unsigned).to
|
49
|
+
expect(signed_int_col.unsigned).to be_falsey
|
50
|
+
|
43
51
|
unsigned_int_col = User.columns[3]
|
44
|
-
expect(unsigned_int_col.unsigned).to
|
52
|
+
expect(unsigned_int_col.unsigned).to be_truthy
|
45
53
|
end
|
46
54
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-mysql-unsigned
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yo_waka
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 3.0.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 3.0.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: database_cleaner
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -153,6 +153,7 @@ files:
|
|
153
153
|
- lib/activerecord-mysql-unsigned/base.rb
|
154
154
|
- lib/activerecord-mysql-unsigned/railtie.rb
|
155
155
|
- lib/activerecord-mysql-unsigned/version.rb
|
156
|
+
- spec/after_option_spec.rb
|
156
157
|
- spec/spec_helper.rb
|
157
158
|
- spec/support/database_cleaner.rb
|
158
159
|
- spec/support/migrations.rb
|
@@ -179,11 +180,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
180
|
version: '0'
|
180
181
|
requirements: []
|
181
182
|
rubyforge_project:
|
182
|
-
rubygems_version: 2.2.
|
183
|
+
rubygems_version: 2.2.2
|
183
184
|
signing_key:
|
184
185
|
specification_version: 4
|
185
186
|
summary: Add unsigned option to integer type for ActiveRecord's MySQL2 adapter
|
186
187
|
test_files:
|
188
|
+
- spec/after_option_spec.rb
|
187
189
|
- spec/spec_helper.rb
|
188
190
|
- spec/support/database_cleaner.rb
|
189
191
|
- spec/support/migrations.rb
|