module SchemaDev::Gemfiles
Public Instance Methods
_force_rename(src, dst)
click to toggle source
# File lib/schema_dev/gemfiles.rb, line 43 def _force_rename(src, dst) dst.rmtree if dst.directory? src.rename dst end
_install(relpath)
click to toggle source
# File lib/schema_dev/gemfiles.rb, line 39 def _install(relpath) Templates.install_relative src: relpath, dst: @tmpdir end
build(config)
click to toggle source
# File lib/schema_dev/gemfiles.rb, line 12 def build(config) Dir.mktmpdir do |tmpdir| @tmpdir = Pathname.new(tmpdir).realpath gemfiles = Pathname('gemfiles') tmp_root = @tmpdir + gemfiles target_root = Pathname.new('.').realpath + gemfiles _install gemfiles + 'Gemfile.base' config.activerecord.each do |activerecord| activerecord_path = gemfiles + "activerecord-#{activerecord}" _install activerecord_path + 'Gemfile.base' config.db.each do |db| _install activerecord_path + "Gemfile.#{db}" end end if `diff -rq #{tmp_root} #{target_root} 2>&1 | grep -v lock`.empty? return false end _force_rename(tmp_root, target_root) return true end end