schema_plus 2.0.0.pre5 → 2.0.0.pre6

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.
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