module Gemstash::GemSource::DependencyCaching

Module for caching dependencies in a GemSource.

Constants

API_REQUEST_LIMIT

Public Instance Methods

serve_dependencies() click to toggle source
# File lib/gemstash/gem_source/dependency_caching.rb, line 9
def serve_dependencies
  gems = gems_from_params

  halt 422, "Too many gems (use --full-index instead)" if gems.length > API_REQUEST_LIMIT

  content_type "application/octet-stream"
  Marshal.dump dependencies.fetch(gems)
end
serve_dependencies_json() click to toggle source
# File lib/gemstash/gem_source/dependency_caching.rb, line 18
def serve_dependencies_json
  gems = gems_from_params

  if gems.length > API_REQUEST_LIMIT
    halt 422, {
      "error" => "Too many gems (use --full-index instead)",
      "code" => 422
    }.to_json
  end

  content_type "application/json;charset=UTF-8"
  dependencies.fetch(gems).to_json
end

Private Instance Methods

gems_from_params() click to toggle source
# File lib/gemstash/gem_source/dependency_caching.rb, line 34
def gems_from_params
  halt(200) if params[:gems].nil? || params[:gems].empty?
  params[:gems].split(",").uniq
end