class Mio::Migrations

Public Class Methods

new(base_uri, username, password, verify_ssl, base_dir='./migrations') click to toggle source
# File lib/mio/migrations.rb, line 7
def initialize base_uri, username, password, verify_ssl, base_dir='./migrations'
  @mio = Mio.new do |m|
    m.base_uri = base_uri
    m.username = username
    m.password = password
    m.verify_ssl = verify_ssl
  end
  @base = File.expand_path(base_dir)
  @migrations = Dir.glob( File.join(@base, '*.rb') ).sort
end

Public Instance Methods

create_migration_file(desc) click to toggle source
# File lib/mio/migrations.rb, line 18
def create_migration_file desc
  File.join(@base,
            "#{Time.now.strftime('%Y%m%d%H%M%S')}_#{desc.gsub(/\W/, '-')}.rb")
end
has_run?(migration) click to toggle source
# File lib/mio/migrations.rb, line 31
def has_run? migration
  false
end
load_migration(migration) click to toggle source
# File lib/mio/migrations.rb, line 35
def load_migration migration
  eval File.read(migration)
end
method_missing(method_sym, *arguments) { |conf| ... } click to toggle source
Calls superclass method
# File lib/mio/migrations.rb, line 55
def method_missing method_sym, *arguments, &block
  mapped = Mio::Model.mappings[method_sym.to_s]

  if mapped.nil?
    super
  else
    conf = OpenStruct.new
    yield conf
    type_migration mapped, conf
  end
end
migrate(desc, &block) click to toggle source

Helper methods for within the migrations

# File lib/mio/migrations.rb, line 40
def migrate desc, &block
  msg desc, 'starting'
  block.call

  msg desc, 'completed'
end
respond_to?(method_sym, include_private=false) click to toggle source
Calls superclass method
# File lib/mio/migrations.rb, line 67
def respond_to? method_sym, include_private=false
  if Mio::Model.mappings[method_sym.to_s].nil?
    super
  else
    true
  end
end
run_migrations() click to toggle source
# File lib/mio/migrations.rb, line 23
def run_migrations
  @migrations.each do |migration|
    unless has_run? migration
      load_migration migration
    end
  end
end
type_migration(klass, conf) click to toggle source
# File lib/mio/migrations.rb, line 47
def type_migration klass, conf
  if klass.nested?
    get_it klass.new(@mio.client, conf)
  else
    do_it klass.new(@mio.client, conf)
  end
end

Private Instance Methods

do_it(thing) click to toggle source
# File lib/mio/migrations.rb, line 76
def do_it thing
  if thing.valid?
    obj = thing.go
  end
  puts "Created '#{obj['name']}' with id '#{obj['id']}'"
end
get_it(thing) click to toggle source
# File lib/mio/migrations.rb, line 83
def get_it thing
  if thing.valid?
    return thing.create_hash
  end
  return nil
end
msg(desc, state) click to toggle source
# File lib/mio/migrations.rb, line 91
def msg desc, state
  print '======> '.magenta
  print "#{desc}:\t".cyan
  puts "#{state.upcase}".magenta
end