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