Sha256: 9c3290eca614a6dd558c29d33e1f45ec555eeb747d165bdf5cf6907264e7a472

Contents?: true

Size: 1.34 KB

Versions: 87

Compression:

Stored size: 1.34 KB

Contents

namespace :graphiti do
  def session
    @session ||= ActionDispatch::Integration::Session.new(Rails.application)
  end

  def setup_rails!
    Rails.application.eager_load!
    Rails.application.config.cache_classes = true
    Rails.application.config.action_controller.perform_caching = false
  end

  def make_request(path, debug = false)
    if path.split("/").length == 2
      path = "#{ApplicationResource.endpoint_namespace}#{path}"
    end
    path << if path.include?("?")
      "&cache=bust"
    else
      "?cache=bust"
    end
    path = "#{path}&debug=true" if debug
    session.get(path.to_s)
    JSON.parse(session.response.body)
  end

  desc "Execute request without web server."
  task :request, [:path, :debug] => [:environment] do |_, args|
    setup_rails!
    Graphiti.logger = Graphiti.stdout_logger
    Graphiti::Debugger.preserve = true
    require "pp"
    path, debug = args[:path], args[:debug]
    puts "Graphiti Request: #{path}"
    json = make_request(path, debug)
    pp json
    Graphiti::Debugger.flush if debug
  end

  desc "Execute benchmark without web server."
  task :benchmark, [:path, :requests] => [:environment] do |_, args|
    setup_rails!
    took = Benchmark.ms {
      args[:requests].to_i.times do
        make_request(args[:path])
      end
    }
    puts "Took: #{(took / args[:requests].to_f).round(2)}ms"
  end
end

Version data entries

87 entries across 87 versions & 1 rubygems

Version Path
graphiti-1.8.1 lib/graphiti/deprecated_tasks.rb
graphiti-1.8.0 lib/graphiti/deprecated_tasks.rb
graphiti-1.7.9 lib/graphiti/deprecated_tasks.rb
graphiti-1.7.8 lib/graphiti/deprecated_tasks.rb
graphiti-1.7.7 lib/graphiti/deprecated_tasks.rb
graphiti-1.7.6 lib/graphiti/deprecated_tasks.rb
graphiti-1.7.5 lib/graphiti/deprecated_tasks.rb
graphiti-1.7.4 lib/graphiti/deprecated_tasks.rb
graphiti-1.7.3 lib/graphiti/deprecated_tasks.rb
graphiti-1.7.2 lib/graphiti/deprecated_tasks.rb
graphiti-1.7.1 lib/graphiti/deprecated_tasks.rb
graphiti-1.7.0 lib/graphiti/deprecated_tasks.rb
graphiti-1.6.4 lib/graphiti/deprecated_tasks.rb
graphiti-1.6.3 lib/graphiti/deprecated_tasks.rb
graphiti-1.6.2 lib/graphiti/deprecated_tasks.rb
graphiti-1.6.1 lib/graphiti/deprecated_tasks.rb
graphiti-1.6.0 lib/graphiti/deprecated_tasks.rb
graphiti-1.5.3 lib/graphiti/deprecated_tasks.rb
graphiti-1.5.2 lib/graphiti/deprecated_tasks.rb
graphiti-1.5.1 lib/graphiti/deprecated_tasks.rb