Sha256: d77596b02d002857cb3a5071ddd6e15a1700d2a600d8850d7c1023c12acae414

Contents?: true

Size: 1.62 KB

Versions: 24

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true

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

24 entries across 24 versions & 1 rubygems

Version Path
ridgepole-0.9.5 spec/cli_helper.rb
ridgepole-0.9.4 spec/cli_helper.rb
ridgepole-0.9.3 spec/cli_helper.rb
ridgepole-0.9.2 spec/cli_helper.rb
ridgepole-0.9.1 spec/cli_helper.rb
ridgepole-0.9.0 spec/cli_helper.rb
ridgepole-0.8.13 spec/cli_helper.rb
ridgepole-0.9.0.rc1 spec/cli_helper.rb
ridgepole-0.9.0.beta spec/cli_helper.rb
ridgepole-0.8.12 spec/cli_helper.rb
ridgepole-0.8.11 spec/cli_helper.rb
ridgepole-0.8.10 spec/cli_helper.rb
ridgepole-0.8.9 spec/cli_helper.rb
ridgepole-0.8.8 spec/cli_helper.rb
ridgepole-0.8.7 spec/cli_helper.rb
ridgepole-0.8.6 spec/cli_helper.rb
ridgepole-0.8.5 spec/cli_helper.rb
ridgepole-0.8.4 spec/cli_helper.rb
ridgepole-0.8.3 spec/cli_helper.rb
ridgepole-0.8.2 spec/cli_helper.rb