diff options
Diffstat (limited to 'spec/bundler/support/artifice/compact_index_range_not_satisfiable.rb')
-rw-r--r-- | spec/bundler/support/artifice/compact_index_range_not_satisfiable.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/bundler/support/artifice/compact_index_range_not_satisfiable.rb b/spec/bundler/support/artifice/compact_index_range_not_satisfiable.rb new file mode 100644 index 0000000000..487be4771a --- /dev/null +++ b/spec/bundler/support/artifice/compact_index_range_not_satisfiable.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +require File.expand_path("../compact_index", __FILE__) + +Artifice.deactivate + +class CompactIndexRangeNotSatisfiable < CompactIndexAPI + get "/versions" do + if env["HTTP_RANGE"] + status 416 + else + etag_response do + file = tmp("versions.list") + file.delete if file.file? + file = CompactIndex::VersionsFile.new(file.to_s) + file.create(gems) + file.contents + end + end + end + + get "/info/:name" do + if env["HTTP_RANGE"] + status 416 + else + etag_response do + gem = gems.find {|g| g.name == params[:name] } + CompactIndex.info(gem ? gem.versions : []) + end + end + end +end + +Artifice.activate_with(CompactIndexRangeNotSatisfiable) |