schema_plus 2.0.0.pre5 → 2.0.0.pre6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +41 -51
  3. data/lib/schema_plus.rb +10 -10
  4. data/lib/schema_plus/db_default.rb +7 -0
  5. data/lib/{schema_plus_db_default → schema_plus/db_default}/active_record/attribute.rb +1 -1
  6. data/lib/{schema_plus_db_default → schema_plus/db_default}/db_default.rb +2 -2
  7. data/lib/{schema_plus_db_default → schema_plus/db_default}/middleware.rb +1 -1
  8. data/lib/{schema_plus_default_expr.rb → schema_plus/default_expr.rb} +8 -8
  9. data/lib/{schema_plus_default_expr → schema_plus/default_expr}/active_record/connection_adapters/column.rb +1 -1
  10. data/lib/{schema_plus_default_expr → schema_plus/default_expr}/active_record/connection_adapters/mysql2_adapter.rb +1 -1
  11. data/lib/{schema_plus_default_expr → schema_plus/default_expr}/active_record/connection_adapters/postgresql_adapter.rb +1 -1
  12. data/lib/{schema_plus_default_expr → schema_plus/default_expr}/active_record/connection_adapters/sqlite3_adapter.rb +1 -1
  13. data/lib/{schema_plus_default_expr → schema_plus/default_expr}/middleware.rb +1 -1
  14. data/lib/schema_plus/enums.rb +6 -0
  15. data/lib/{schema_plus_enums → schema_plus/enums}/active_record.rb +1 -1
  16. data/lib/{schema_plus_enums → schema_plus/enums}/middleware.rb +1 -1
  17. data/lib/{schema_plus_foreign_keys.rb → schema_plus/foreign_keys.rb} +21 -21
  18. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/active_record/base.rb +2 -2
  19. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/active_record/connection_adapters/abstract_adapter.rb +5 -5
  20. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/active_record/connection_adapters/foreign_key_definition.rb +2 -2
  21. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/active_record/connection_adapters/mysql2_adapter.rb +2 -2
  22. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/active_record/connection_adapters/postgresql_adapter.rb +2 -2
  23. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/active_record/connection_adapters/sqlite3_adapter.rb +2 -2
  24. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/active_record/connection_adapters/table_definition.rb +8 -8
  25. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/active_record/migration/command_recorder.rb +1 -1
  26. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/active_record/schema.rb +4 -4
  27. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/middleware/dumper.rb +2 -2
  28. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/middleware/migration.rb +2 -2
  29. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/middleware/model.rb +1 -1
  30. data/lib/{schema_plus_foreign_keys → schema_plus/foreign_keys}/middleware/sql.rb +1 -1
  31. data/lib/schema_plus/foreign_keys/version.rb +3 -0
  32. data/lib/schema_plus/tables.rb +15 -0
  33. data/lib/{schema_plus_tables → schema_plus/tables}/active_record/connection_adapters/abstract_adapter.rb +2 -2
  34. data/lib/{schema_plus_tables → schema_plus/tables}/active_record/connection_adapters/mysql2_adapter.rb +2 -2
  35. data/lib/{schema_plus_tables → schema_plus/tables}/active_record/connection_adapters/postgresql_adapter.rb +2 -2
  36. data/lib/{schema_plus_tables → schema_plus/tables}/active_record/connection_adapters/sqlite3_adapter.rb +1 -1
  37. data/lib/schema_plus/version.rb +1 -1
  38. data/schema_plus.gemspec +2 -1
  39. data/spec/schema_plus_db_default/column_spec.rb +1 -1
  40. data/spec/schema_plus_default_expr/schema_dumper_spec.rb +1 -1
  41. data/spec/schema_plus_foreign_keys/migration_spec.rb +13 -13
  42. data/spec/schema_plus_foreign_keys/schema_dumper_spec.rb +78 -11
  43. data/spec/schema_plus_foreign_keys/schema_spec.rb +6 -6
  44. data/spec/spec_helper.rb +5 -5
  45. data/spec/support/helpers.rb +1 -1
  46. data/spec/support/matchers/have_index.rb +1 -1
  47. data/spec/support/matchers/reference.rb +1 -1
  48. metadata +51 -42
  49. data/lib/schema_plus_columns.rb +0 -7
  50. data/lib/schema_plus_columns/active_record/connection_adapters/column.rb +0 -65
  51. data/lib/schema_plus_columns/middleware/model.rb +0 -16
  52. data/lib/schema_plus_db_default.rb +0 -7
  53. data/lib/schema_plus_enums.rb +0 -6
  54. data/lib/schema_plus_foreign_keys/version.rb +0 -3
  55. data/lib/schema_plus_tables.rb +0 -15
  56. data/spec/schema_plus_columns/column_spec.rb +0 -156
data/spec/spec_helper.rb CHANGED
@@ -18,18 +18,18 @@ SchemaDev::Rspec.setup
18
18
  Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
19
19
 
20
20
  RSpec.configure do |config|
21
- config.include(SchemaPlusMatchers)
22
- config.include(SchemaPlusHelpers)
21
+ config.include(SchemaPlus::Matchers)
22
+ config.include(SchemaPlus::Helpers)
23
23
  config.warnings = true
24
24
  end
25
25
 
26
26
  def with_fk_config(opts, &block)
27
- save = Hash[opts.keys.collect{|key| [key, SchemaPlusForeignKeys.config.send(key)]}]
27
+ save = Hash[opts.keys.collect{|key| [key, SchemaPlus::ForeignKeys.config.send(key)]}]
28
28
  begin
29
- SchemaPlusForeignKeys.config.update_attributes(opts)
29
+ SchemaPlus::ForeignKeys.config.update_attributes(opts)
30
30
  yield
31
31
  ensure
32
- SchemaPlusForeignKeys.config.update_attributes(save)
32
+ SchemaPlus::ForeignKeys.config.update_attributes(save)
33
33
  end
34
34
  end
35
35
 
@@ -1,4 +1,4 @@
1
- module SchemaPlusHelpers
1
+ module SchemaPlus::Helpers
2
2
  extend self
3
3
 
4
4
  def suppress_messages
@@ -1,4 +1,4 @@
1
- module SchemaPlusMatchers
1
+ module SchemaPlus::Matchers
2
2
 
3
3
  class HaveIndex
4
4
 
@@ -1,4 +1,4 @@
1
- module SchemaPlusMatchers
1
+ module SchemaPlus::Matchers
2
2
 
3
3
  class Reference
4
4
  def initialize(expected)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_plus
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre5
4
+ version: 2.0.0.pre6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ronen Barzel
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-02-11 00:00:00.000000000 Z
12
+ date: 2015-02-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -73,6 +73,20 @@ dependencies:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.1.2
76
+ - !ruby/object:Gem::Dependency
77
+ name: schema_plus_columns
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.1'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.1'
76
90
  - !ruby/object:Gem::Dependency
77
91
  name: schema_plus_indexes
78
92
  requirement: !ruby/object:Gem::Requirement
@@ -82,7 +96,7 @@ dependencies:
82
96
  version: '0.1'
83
97
  - - ">="
84
98
  - !ruby/object:Gem::Version
85
- version: 0.1.2
99
+ version: 0.1.3
86
100
  type: :runtime
87
101
  prerelease: false
88
102
  version_requirements: !ruby/object:Gem::Requirement
@@ -92,7 +106,7 @@ dependencies:
92
106
  version: '0.1'
93
107
  - - ">="
94
108
  - !ruby/object:Gem::Version
95
- version: 0.1.2
109
+ version: 0.1.3
96
110
  - !ruby/object:Gem::Dependency
97
111
  name: schema_plus_pg_indexes
98
112
  requirement: !ruby/object:Gem::Requirement
@@ -236,48 +250,44 @@ files:
236
250
  - gemfiles/activerecord-4.2/Gemfile.postgresql
237
251
  - gemfiles/activerecord-4.2/Gemfile.sqlite3
238
252
  - lib/schema_plus.rb
253
+ - lib/schema_plus/db_default.rb
254
+ - lib/schema_plus/db_default/active_record/attribute.rb
255
+ - lib/schema_plus/db_default/db_default.rb
256
+ - lib/schema_plus/db_default/middleware.rb
257
+ - lib/schema_plus/default_expr.rb
258
+ - lib/schema_plus/default_expr/active_record/connection_adapters/column.rb
259
+ - lib/schema_plus/default_expr/active_record/connection_adapters/mysql2_adapter.rb
260
+ - lib/schema_plus/default_expr/active_record/connection_adapters/postgresql_adapter.rb
261
+ - lib/schema_plus/default_expr/active_record/connection_adapters/sqlite3_adapter.rb
262
+ - lib/schema_plus/default_expr/middleware.rb
263
+ - lib/schema_plus/enums.rb
264
+ - lib/schema_plus/enums/active_record.rb
265
+ - lib/schema_plus/enums/middleware.rb
266
+ - lib/schema_plus/foreign_keys.rb
267
+ - lib/schema_plus/foreign_keys/active_record/base.rb
268
+ - lib/schema_plus/foreign_keys/active_record/connection_adapters/abstract_adapter.rb
269
+ - lib/schema_plus/foreign_keys/active_record/connection_adapters/foreign_key_definition.rb
270
+ - lib/schema_plus/foreign_keys/active_record/connection_adapters/mysql2_adapter.rb
271
+ - lib/schema_plus/foreign_keys/active_record/connection_adapters/postgresql_adapter.rb
272
+ - lib/schema_plus/foreign_keys/active_record/connection_adapters/sqlite3_adapter.rb
273
+ - lib/schema_plus/foreign_keys/active_record/connection_adapters/table_definition.rb
274
+ - lib/schema_plus/foreign_keys/active_record/migration/command_recorder.rb
275
+ - lib/schema_plus/foreign_keys/active_record/schema.rb
276
+ - lib/schema_plus/foreign_keys/middleware/dumper.rb
277
+ - lib/schema_plus/foreign_keys/middleware/migration.rb
278
+ - lib/schema_plus/foreign_keys/middleware/model.rb
279
+ - lib/schema_plus/foreign_keys/middleware/sql.rb
280
+ - lib/schema_plus/foreign_keys/version.rb
281
+ - lib/schema_plus/tables.rb
282
+ - lib/schema_plus/tables/active_record/connection_adapters/abstract_adapter.rb
283
+ - lib/schema_plus/tables/active_record/connection_adapters/mysql2_adapter.rb
284
+ - lib/schema_plus/tables/active_record/connection_adapters/postgresql_adapter.rb
285
+ - lib/schema_plus/tables/active_record/connection_adapters/sqlite3_adapter.rb
239
286
  - lib/schema_plus/version.rb
240
- - lib/schema_plus_columns.rb
241
- - lib/schema_plus_columns/active_record/connection_adapters/column.rb
242
- - lib/schema_plus_columns/middleware/model.rb
243
- - lib/schema_plus_db_default.rb
244
- - lib/schema_plus_db_default/active_record/attribute.rb
245
- - lib/schema_plus_db_default/db_default.rb
246
- - lib/schema_plus_db_default/middleware.rb
247
- - lib/schema_plus_default_expr.rb
248
- - lib/schema_plus_default_expr/active_record/connection_adapters/column.rb
249
- - lib/schema_plus_default_expr/active_record/connection_adapters/mysql2_adapter.rb
250
- - lib/schema_plus_default_expr/active_record/connection_adapters/postgresql_adapter.rb
251
- - lib/schema_plus_default_expr/active_record/connection_adapters/sqlite3_adapter.rb
252
- - lib/schema_plus_default_expr/middleware.rb
253
- - lib/schema_plus_enums.rb
254
- - lib/schema_plus_enums/active_record.rb
255
- - lib/schema_plus_enums/middleware.rb
256
- - lib/schema_plus_foreign_keys.rb
257
- - lib/schema_plus_foreign_keys/active_record/base.rb
258
- - lib/schema_plus_foreign_keys/active_record/connection_adapters/abstract_adapter.rb
259
- - lib/schema_plus_foreign_keys/active_record/connection_adapters/foreign_key_definition.rb
260
- - lib/schema_plus_foreign_keys/active_record/connection_adapters/mysql2_adapter.rb
261
- - lib/schema_plus_foreign_keys/active_record/connection_adapters/postgresql_adapter.rb
262
- - lib/schema_plus_foreign_keys/active_record/connection_adapters/sqlite3_adapter.rb
263
- - lib/schema_plus_foreign_keys/active_record/connection_adapters/table_definition.rb
264
- - lib/schema_plus_foreign_keys/active_record/migration/command_recorder.rb
265
- - lib/schema_plus_foreign_keys/active_record/schema.rb
266
- - lib/schema_plus_foreign_keys/middleware/dumper.rb
267
- - lib/schema_plus_foreign_keys/middleware/migration.rb
268
- - lib/schema_plus_foreign_keys/middleware/model.rb
269
- - lib/schema_plus_foreign_keys/middleware/sql.rb
270
- - lib/schema_plus_foreign_keys/version.rb
271
- - lib/schema_plus_tables.rb
272
- - lib/schema_plus_tables/active_record/connection_adapters/abstract_adapter.rb
273
- - lib/schema_plus_tables/active_record/connection_adapters/mysql2_adapter.rb
274
- - lib/schema_plus_tables/active_record/connection_adapters/postgresql_adapter.rb
275
- - lib/schema_plus_tables/active_record/connection_adapters/sqlite3_adapter.rb
276
287
  - schema_dev.yml
277
288
  - schema_plus.gemspec
278
289
  - spec/schema/auto_schema.rb
279
290
  - spec/schema/core_schema.rb
280
- - spec/schema_plus_columns/column_spec.rb
281
291
  - spec/schema_plus_db_default/column_spec.rb
282
292
  - spec/schema_plus_default_expr/column_default_spec.rb
283
293
  - spec/schema_plus_default_expr/migration_spec.rb
@@ -323,7 +333,6 @@ summary: Enhances ActiveRecord schema mechanism, including more DRY index creati
323
333
  test_files:
324
334
  - spec/schema/auto_schema.rb
325
335
  - spec/schema/core_schema.rb
326
- - spec/schema_plus_columns/column_spec.rb
327
336
  - spec/schema_plus_db_default/column_spec.rb
328
337
  - spec/schema_plus_default_expr/column_default_spec.rb
329
338
  - spec/schema_plus_default_expr/migration_spec.rb
@@ -1,7 +0,0 @@
1
- require 'schema_monkey'
2
- require 'schema_plus_indexes'
3
-
4
- require_relative 'schema_plus_columns/active_record/connection_adapters/column'
5
- require_relative 'schema_plus_columns/middleware/model'
6
-
7
- SchemaMonkey.register(SchemaPlusColumns)
@@ -1,65 +0,0 @@
1
- module SchemaPlusColumns
2
- module ActiveRecord
3
- module ConnectionAdapters
4
-
5
- #
6
- # SchemaPlusIndex adds several methods to Column
7
- #
8
- module Column
9
-
10
- attr_writer :model # model assigned set by Middleware::Model::Columns
11
-
12
- # Returns the list of IndexDefinition instances for each index that
13
- # refers to this column. Returns an empty list if there are no
14
- # such indexes.
15
- def indexes
16
- @indexes ||= @model.indexes.select{|index| index.columns.include? self.name}
17
- end
18
-
19
- # If the column is in a unique index, returns a list of names of other columns in
20
- # the index. Returns an empty list if it's a single-column index.
21
- # Returns nil if the column is not in a unique index.
22
- def unique_scope
23
- if index = indexes.select{|i| i.unique}.sort_by{|i| i.columns.size}.first
24
- index.columns.reject{|name| name == self.name}
25
- end
26
- end
27
-
28
- # Returns true if the column is in a unique index. See also
29
- # unique_scope
30
- def unique?
31
- indexes.any?{|i| i.unique}
32
- end
33
-
34
- # Returns true if the column is in one or more indexes that are
35
- # case sensitive. Will raise exception if
36
- # IndexDefinition#case_sensitive? isn't defined, i.e. if
37
- # schema_plus_pg_indexes hasn't been loaded.
38
- def case_sensitive?
39
- indexes.any?{|i| i.case_sensitive?}
40
- end
41
-
42
- # The default as_jon includes all instance variables. but
43
- # @model can't be dumped (it contains circular references)
44
- def as_json(options=nil)
45
- instance_values.except "model", "adapter"
46
- end
47
-
48
- # Returns the circumstance in which the column must have a value:
49
- # nil if the column may be null
50
- # :save if the column has no default value
51
- # :update otherwise
52
- def required_on
53
- if null
54
- nil
55
- elsif default.nil?
56
- :save
57
- else
58
- :update
59
- end
60
- end
61
- end
62
- end
63
- end
64
- end
65
-
@@ -1,16 +0,0 @@
1
- module SchemaPlusColumns
2
- module Middleware
3
- module Model
4
-
5
- module Columns
6
-
7
- def after(env)
8
- env.columns.each do |column|
9
- column.model = env.model
10
- end
11
- end
12
-
13
- end
14
- end
15
- end
16
- end
@@ -1,7 +0,0 @@
1
- require 'schema_monkey'
2
-
3
- require_relative 'schema_plus_db_default/active_record/attribute'
4
- require_relative 'schema_plus_db_default/db_default'
5
- require_relative 'schema_plus_db_default/middleware'
6
-
7
- SchemaMonkey.register(SchemaPlusDbDefault)
@@ -1,6 +0,0 @@
1
- require 'schema_monkey'
2
-
3
- require_relative 'schema_plus_enums/active_record'
4
- require_relative 'schema_plus_enums/middleware'
5
-
6
- SchemaMonkey.register(SchemaPlusEnums)
@@ -1,3 +0,0 @@
1
- module SchemaPlusForeignKeys
2
- VERSION = "0.1.0"
3
- end
@@ -1,15 +0,0 @@
1
- require 'schema_monkey'
2
-
3
- require_relative 'schema_plus_tables/active_record/connection_adapters/abstract_adapter'
4
-
5
- module SchemaPlusTables
6
- module ActiveRecord
7
- module ConnectionAdapters
8
- autoload :Mysql2Adapter, 'schema_plus_tables/active_record/connection_adapters/mysql2_adapter'
9
- autoload :PostgresqlAdapter, 'schema_plus_tables/active_record/connection_adapters/postgresql_adapter'
10
- autoload :Sqlite3Adapter, 'schema_plus_tables/active_record/connection_adapters/sqlite3_adapter'
11
- end
12
- end
13
- end
14
-
15
- SchemaMonkey.register(SchemaPlusTables)
@@ -1,156 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Column" do
4
-
5
- before(:all) do
6
- class User < ::ActiveRecord::Base ; end
7
- end
8
-
9
- let(:migration) { ::ActiveRecord::Migration }
10
-
11
- context "JSON serialization" do
12
- before(:each) do
13
- create_table(User, :login => { :index => true})
14
- @login = User.columns.find{|column| column.name == "login"}
15
- end
16
- it "works properly" do
17
- type = case
18
- when SchemaDev::Rspec::Helpers.mysql?
19
- { "sql_type" => "varchar(255)" }
20
- when SchemaDev::Rspec::Helpers.postgresql?
21
- { "sql_type" => "character varying" }
22
- when SchemaDev::Rspec::Helpers.sqlite3?
23
- { "sql_type" => "varchar" }
24
- end
25
- expect(JSON.parse(@login.to_json)).to include(type.merge("name" => "login"))
26
- end
27
- end
28
-
29
- context "regarding indexes" do
30
-
31
- context "if not unique" do
32
-
33
- before(:each) do
34
- create_table(User, :login => { :index => true})
35
- @login = User.columns.find{|column| column.name == "login"}
36
- end
37
-
38
- it "should report not unique" do
39
- expect(@login).not_to be_unique
40
- end
41
-
42
- it "should report nil unique scope" do
43
- create_table(User, :login => { :index => true})
44
- expect(@login.unique_scope).to be_nil
45
- end
46
- end
47
-
48
- context "if unique single column" do
49
- before(:each) do
50
- create_table(User, :login => { :index => :unique})
51
- @login = User.columns.find{|column| column.name == "login"}
52
- end
53
-
54
- it "should report unique" do
55
- expect(@login).to be_unique
56
- end
57
-
58
- it "should report an empty unique scope" do
59
- expect(@login.unique_scope).to eq([])
60
- end
61
- end
62
-
63
- context "if unique multicolumn" do
64
-
65
- before(:each) do
66
- create_table(User, :first => {}, :middle => {}, :last => { :index => {:with => [:first, :middle], :unique => true}})
67
- @first = User.columns.find{|column| column.name == "first"}
68
- @middle = User.columns.find{|column| column.name == "middle"}
69
- @last = User.columns.find{|column| column.name == "last"}
70
- end
71
-
72
- it "should report unique for each" do
73
- expect(@first).to be_unique
74
- expect(@middle).to be_unique
75
- expect(@last).to be_unique
76
- end
77
-
78
- it "should report unique scope for each" do
79
- expect(@first.unique_scope).to match_array(%W[middle last])
80
- expect(@middle.unique_scope).to match_array(%W[first last])
81
- expect(@last.unique_scope).to match_array(%W[first middle])
82
- end
83
- end
84
-
85
- context "with case insensitive" do
86
- before(:each) do
87
- create_table(User, :login => { :index => {}})
88
- User.reset_column_information
89
- @column = User.columns.find(&its.name == "login")
90
- end
91
-
92
- context "index", :mysql => :skip do
93
-
94
- it "reports column as case insensitive" do
95
- allow(User.indexes.first).to receive(:case_sensitive?).and_return(false);
96
- expect(@column).not_to be_case_sensitive
97
- end
98
- end
99
-
100
- context "database", :mysql => :only do
101
-
102
- # make sure we haven't broken mysql's method
103
- it "reports column as case insensitive" do
104
- allow(migration).to receive(:collation).and_return("utf8_unicode_ci") # mysql determines case insensitivity its own way
105
- expect(@column).not_to be_case_sensitive
106
- end
107
- end
108
- end
109
-
110
- end
111
-
112
- context "regarding when it requires a value" do
113
-
114
- it "not required if the column can be null" do
115
- create_table(User, :login => { :null => true})
116
- expect(User.columns.find{|column| column.name == "login"}.required_on).to be_nil
117
- end
118
-
119
- it "must have a value on :save if there's no default" do
120
- create_table(User, :login => { :null => false })
121
- expect(User.columns.find{|column| column.name == "login"}.required_on).to eq(:save)
122
- end
123
-
124
- it "must have a value on :update if there's default" do
125
- create_table(User, :login => { :null => false, :default => "foo" })
126
- expect(User.columns.find{|column| column.name == "login"}.required_on).to eq(:update)
127
- end
128
-
129
- end
130
-
131
- context "Postgresql array", :postgresql => :only do
132
-
133
- before(:each) do
134
- create_table(User, :alpha => { :default => [], :array => true })
135
- end
136
-
137
- it "respects array: true" do
138
- column = User.columns.find(&its.name == "alpha")
139
- expect(column.array).to be_truthy
140
- end
141
- end
142
-
143
- protected
144
-
145
- def create_table(model, columns_with_options)
146
- migration.suppress_messages do
147
- migration.create_table model.table_name, :force => true do |t|
148
- columns_with_options.each_pair do |column, options|
149
- t.send :string, column, options
150
- end
151
- end
152
- model.reset_column_information
153
- end
154
- end
155
-
156
- end