Sha256: 18d050458e87f3e06900a718ec0ac755b84496a0c48cf4ce5cf2797a038efe75

Contents?: true

Size: 1.75 KB

Versions: 13

Compression:

Stored size: 1.75 KB

Contents

class FakeGemcutter
  def initialize(api_key)
    @api_key = api_key
  end

  def respond(code, text)
    [code, {"Content-Type" => "text/plain"}, text]
  end

  def call(env)
    request = Rack::Request.new(env)

    if request.env["HTTP_AUTHORIZATION"] != @api_key
      respond 401, "One cannot simply walk into Mordor!"
    elsif request.path == "/api/v1/gems" && request.post?
      respond 200, "Successfully registered rake (0.8.7)"
    elsif request.path == "/api/v1/gems/yank" && request.delete?
      version = request.params["version"].to_i
      if version < 1
        respond 404, "This gem could not be found"
      elsif version < 2
        respond 200, "Successfully yanked gem: #{request.params["gem_name"]} (#{request.params["version"]})"
      else
        respond 500, "The version #{request.params["version"]} has already been yanked."
      end
    elsif request.path == "/api/v1/gems/unyank" && request.put?
      version = request.params["version"].to_i
      if version < 1
        respond 404, "This gem could not be found"
      elsif version < 2
        respond 200, "Successfully unyanked gem: #{request.params["gem_name"]} (#{request.params["version"]})"
      else
        respond 500, "The version #{request.params["version"]} is already indexed."
      end
    elsif request.path == "/api/v1/gems/rake/owners"
      if request.post?
        respond 200, "Owner added successfully."
      elsif request.delete?
        respond 200, "Owner removed successfully."
      end
    elsif request.path == "/api/v1/gems/rake/owners.yaml" && request.get?
      yaml = YAML.dump([{'email' => 'geddy@example.com'},
                        {'email' => 'lerxst@example.com'}])
      respond(200, yaml)
    else
      respond(404, "Invalid request")
    end
  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
bpm-1.0.0.beta.11 spec/support/fake_gemcutter.rb
bpm-1.0.0.beta.10 spec/support/fake_gemcutter.rb
bpm-1.0.0.beta.9 spec/support/fake_gemcutter.rb
bpm-1.0.0.beta.8 spec/support/fake_gemcutter.rb
bpm-1.0.0.beta.6 spec/support/fake_gemcutter.rb
bpm-1.0.0.beta.5 spec/support/fake_gemcutter.rb
bpm-1.0.0.beta.4 spec/support/fake_gemcutter.rb
bpm-0.1.4 spec/support/fake_gemcutter.rb
bpm-0.1.3 spec/support/fake_gemcutter.rb
bpm-0.1.2 spec/support/fake_gemcutter.rb
bpm-0.1.0 spec/support/fake_gemcutter.rb
spade-packager-0.1.0.1 spec/support/fake_gemcutter.rb
spade-packager-0.1.0 spec/support/fake_gemcutter.rb