class ViewModel::Migration::Builder

Tiny DSL for defining migration classes

Public Class Methods

new() click to toggle source
# File lib/view_model/migration.rb, line 18
def initialize
  @up_block = nil
  @down_block = nil
end

Public Instance Methods

build!() click to toggle source
# File lib/view_model/migration.rb, line 23
def build!
  migration = Class.new(ViewModel::Migration)
  migration.define_method(:up, &@up_block) if @up_block
  migration.define_method(:down, &@down_block) if @down_block
  migration
end

Private Instance Methods

check_signature!(block) click to toggle source
# File lib/view_model/migration.rb, line 42
def check_signature!(block)
  unless block.arity == 2
    raise RuntimeError.new('Illegal signature for migration method, must be (view, references)')
  end
end
down(&block) click to toggle source
# File lib/view_model/migration.rb, line 37
def down(&block)
  check_signature!(block)
  @down_block = block
end
up(&block) click to toggle source
# File lib/view_model/migration.rb, line 32
def up(&block)
  check_signature!(block)
  @up_block = block
end