Sha256: a4e138f488ffba49ed302a8f98cf2af2d9a86644201db5c189a6bc58317ac10c

Contents?: true

Size: 1.59 KB

Versions: 11

Compression:

Stored size: 1.59 KB

Contents

module CLIHelper
  def default_cli_hook
    <<-RUBY.strip_heredoc
      require 'ridgepole'

      class Ridgepole::Delta
        def initialize(*args);
        end
        def migrate(*args)
          puts "Ridgepole::Delta#migrate"
          [#{differ}, "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.map {|i| i.kind_of?(File) ? i.path : i.inspect}.join(', ')}])"
        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.map {|i| i.kind_of?(File) ? i.path : i.inspect}.join(', ')}])"
            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', __dir__)

    Tempfile.open(["#{File.basename __FILE__}.#{$PROCESS_ID}", '.rb']) do |f|
      f.puts(hook)
      f.puts(File.read(path))
      f.flush

      cmd = ([:ruby, f.path] + args).join(' ')
      Open3.capture2e(cmd)
    end
  end
end
include CLIHelper

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
ridgepole-0.8.0.rc1 spec/cli_helper.rb
ridgepole-0.7.7 spec/cli_helper.rb
ridgepole-0.7.6 spec/cli_helper.rb
ridgepole-0.7.5 spec/cli_helper.rb
ridgepole-0.7.5.beta3 spec/cli_helper.rb
ridgepole-0.7.5.beta2 spec/cli_helper.rb
ridgepole-0.7.5.beta spec/cli_helper.rb
ridgepole-0.7.4 spec/cli_helper.rb
ridgepole-0.7.3 spec/cli_helper.rb
ridgepole-0.7.3.beta3 spec/cli_helper.rb
ridgepole-0.7.3.beta2 spec/cli_helper.rb