Sha256: 9c9a1ba35cc1fb68bca43450f736e4557cd7575d7ec78a6a7e5dfb339278f2e1

Contents?: true

Size: 1.76 KB

Versions: 9

Compression:

Stored size: 1.76 KB

Contents

desc "Set up a dev instance of the Pact Broker"
task "pact_broker:dev:setup" do
  puts "Copying example directory"
  FileUtils.cp_r "example", "dev"
  gemfile_contents = File.read("dev/Gemfile")


  puts "Changing source of pact_broker gem from rubygems.org to local file system"
  new_gemfile_contents = gemfile_contents.gsub(/^.*gem.*pact_broker.*$/, "gem 'pact_broker', path: '../'")
  File.open("dev/Gemfile", "w") { |file| file << new_gemfile_contents }

  Dir.chdir("dev") do
    Bundler.with_clean_env do
      puts "Executing bundle update"
      puts `bundle update`
    end
  end
end

desc "List the Pact Broker API routes"
task "pact_broker:routes", [:search_term] do | _, args |
  puts "Listing routes containing the term '#{args[:search_term]}'" if args[:search_term]
  require "tempfile"
  require "sequel"
  require "pact_broker"
  require "pact_broker/project_root"

  Tempfile.create("pact_broker_routes") do |f|
    CONNECTION = Sequel.connect({ adapter: "sqlite", database: f.path, encoding: "utf8", sql_log_level: :debug })

    require "pact_broker/db"
    PactBroker::DB.run_migrations(CONNECTION)

    require "pact_broker/api"

    routes_debugging = PactBroker::API.application.routes.collect do | route |
      ["/" + route.path_spec.collect{ |part| part.is_a?(Symbol) ? ":#{part}" : part  }.join("/"), route.resource]
    end

    if args[:search_term]
      routes_debugging = routes_debugging.select{ |(route, _)| route.include?(args[:search_term]) }
    end

    routes_debugging.sort_by(&:first).each do | (path, resource_class) |
      puts ""
      puts "#{path}"
      puts "      class: #{resource_class}"
      puts "      location: #{resource_class.instance_method(:allowed_methods).source_location.first.gsub(PactBroker.project_root.to_s + "/", "")}"
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
pact_broker-2.87.0 tasks/development.rake
pact_broker-2.86.0 tasks/development.rake
pact_broker-2.85.1 tasks/development.rake
pact_broker-2.85.0 tasks/development.rake
pact_broker-2.84.0 tasks/development.rake
pact_broker-2.83.0 tasks/development.rake
pact_broker-2.82.0 tasks/development.rake
pact_broker-2.81.0 tasks/development.rake
pact_broker-2.80.0 tasks/development.rake