Module: MigrationValidators::Spec::Macros::DBMacros::ClassMethods
- Defined in:
- lib/migration_validators/spec/macros/db_macros.rb
Instance Method Summary collapse
- #for_column(column_name, column_type, column_options = {}, &block) ⇒ Object
- #for_table(table_name, &block) ⇒ Object
- #for_test_column(column_type, column_options = {}, &block) ⇒ Object
- #for_test_table(&block) ⇒ Object
- #with_change(opts = {}, &block) ⇒ Object
- #with_options(opts = {}, &block) ⇒ Object (also: #with_option)
- #with_validator(validator_name, opts = true, &block) ⇒ Object
Instance Method Details
#for_column(column_name, column_type, column_options = {}, &block) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/migration_validators/spec/macros/db_macros.rb', line 28 def for_column column_name, column_type, = {}, &block describe "for column #{column_name} (#{column_type})" do before :all do raise "'for_column' must be called in table context only" unless @table_wrapper.kind_of?(MigrationValidators::Spec::Support::TableWrapper) @column_wrapper = MigrationValidators::Spec::Support::ColumnWrapper.new(column_name, @table_wrapper, db) @column_type = column_type @column_options ||= end subject do @column_wrapper end before :each do new_table @table_wrapper.table_name do |t| t.column @column_wrapper.column_name, @column_type, @column_options.clone end end instance_eval(&block) end end |
#for_table(table_name, &block) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/migration_validators/spec/macros/db_macros.rb', line 10 def for_table table_name, &block describe "for table #{table_name}" do before :all do @table_wrapper = table(table_name) end before :each do @table_wrapper.drop end instance_eval(&block) end end |
#for_test_column(column_type, column_options = {}, &block) ⇒ Object
53 54 55 |
# File 'lib/migration_validators/spec/macros/db_macros.rb', line 53 def for_test_column column_type, = {}, &block for_column :test_column, column_type, , &block end |
#for_test_table(&block) ⇒ Object
24 25 26 |
# File 'lib/migration_validators/spec/macros/db_macros.rb', line 24 def for_test_table &block for_table :test_table, &block end |
#with_change(opts = {}, &block) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/migration_validators/spec/macros/db_macros.rb', line 106 def with_change opts = {}, &block describe "with change in column #{opts}" do before :all do raise "'with_change' must be called in column context only" unless @column_wrapper.kind_of?(MigrationValidators::Spec::Support::ColumnWrapper) end before :each do = @column_options[:validates] = {} unless .kind_of?(Hash) .merge!(opts) chg_table @table_wrapper.table_name do |t| t.change_validates @column_wrapper.column_name, end end subject do @column_wrapper end instance_eval(&block) end end |
#with_options(opts = {}, &block) ⇒ Object Also known as: with_option
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/migration_validators/spec/macros/db_macros.rb', line 83 def opts = {}, &block describe "with options #{opts}" do before :all do raise "'with_options' must be called in validator context only" if @validator_name.blank? @column_options = @column_options.clone @column_options[:validates] = @column_options[:validates].clone = @column_options[:validates][@validator_name] @column_options[:validates][@validator_name] = .kind_of?(Hash) ? .merge(opts) : opts end subject do @column_wrapper end instance_eval(&block) end end |
#with_validator(validator_name, opts = true, &block) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/migration_validators/spec/macros/db_macros.rb', line 66 def with_validator validator_name, opts = true, &block describe "validated for #{validator_name}" do before :all do raise "'for_validator' must be called in column context only" unless @column_wrapper.kind_of?(MigrationValidators::Spec::Support::ColumnWrapper) @validator_name = validator_name @column_options.merge!(:validates => {validator_name => opts}) end subject do @column_wrapper end instance_eval(&block) end end |