spec/spec_helper.rb in ridgepole-0.4.6 vs spec/spec_helper.rb in ridgepole-0.4.7

- old
+ new

@@ -1,9 +1,13 @@ $: << File.expand_path('..', __FILE__) require 'ridgepole' +require 'ridgepole/cli/config' require 'active_support/core_ext/string/strip' require 'string_ext' +require 'open3' +require 'tempfile' +require 'json' ActiveRecord::Migration.verbose = false Ridgepole::Logger.instance.level = ::Logger::ERROR RSpec.configure do |config| @@ -34,6 +38,67 @@ def conn_spec(config = {}) { adapter: 'mysql2', database: 'ridgepole_test', }.merge(config) +end + +def default_cli_hook + <<-RUBY.strip_heredoc + require 'ridgepole' + + class Ridgepole::Delta + def initialize(*args); + end + def migrate(*args) + puts "Ridgepole::Delta#migrate" + "create_table :table do\\nend" + end + def script + puts "Ridgepole::Delta#script" + + "create_table :table do\\nend" + end + def differ? + puts "Ridgepole::Delta#differ?" + #{differ} + end + end + + class Ridgepole::Client + def initialize(*args) + puts "Ridgepole::Client#initialize(\#{args.inspect})" + end + def dump + puts "Ridgepole::Client#dump" + end + def diff(*args) + puts "Ridgepole::Client#diff" + Ridgepole::Delta.new + end + class << self + def diff(*args) + puts "Ridgepole::Client.diff(\#{args.inspect})" + Ridgepole::Delta.new + end + def dump(args) + puts "Ridgepole::Client.dump" + end + end + end + RUBY +end + +def run_cli(options = {}) + args = options[:args] || [] + hook = options[:hook] || default_cli_hook + path = File.expand_path('../../bin/ridgepole', __FILE__) + + Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.rb']) do |f| + f.puts(hook) + f.puts(File.read(path)) + f.flush + + cmd = ([:ruby, f.path] + args).join(' ') + Open3.capture2e(cmd) + end end