summaryrefslogtreecommitdiff
path: root/spec/bundler/support/artifice/compact_index_precompiled_before.rb
blob: 9f310e653b22933c56f053839949136cb371a615 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# frozen_string_literal: true

require_relative "compact_index"

Artifice.deactivate

class CompactIndexPrecompiledBefore < CompactIndexAPI
  get "/info/:name" do
    etag_response do
      gem = gems.find {|g| g.name == params[:name] }
      move_ruby_variant_to_the_end(CompactIndex.info(gem ? gem.versions : []))
    end
  end

  private

  def move_ruby_variant_to_the_end(response)
    lines = response.split("\n")
    ruby = lines.find {|line| /\A\d+\.\d+\.\d* \|/.match(line) }
    lines.delete(ruby)
    lines.push(ruby).join("\n")
  end
end

Artifice.activate_with(CompactIndexPrecompiledBefore)