lib/geminabox/server.rb in geminabox-0.13.13 vs lib/geminabox/server.rb in geminabox-0.13.14

- old
+ new

@@ -2,61 +2,41 @@ module Geminabox class Server < Sinatra::Base enable :static, :methodoverride - use Rack::Session::Pool, :expire_after => 2592000 - use Rack::Protection + set :public_folder, Geminabox.public_folder + set :views, Geminabox.views - def self.delegate_to_geminabox(*delegate_methods) - delegate_methods.each{|m| set m, Geminabox.send(m)} - end - - delegate_to_geminabox( - :public_folder, - :data, - :build_legacy, - :incremental_updates, - :views, - :allow_replace, - :gem_permissions, - :allow_delete, - :lockfile, - :retry_interval, - :rubygems_proxy, - :ruby_gems_url, - :allow_upload - ) - - if Server.rubygems_proxy + if Geminabox.rubygems_proxy use Proxy::Hostess else use Hostess end class << self def disallow_replace? - ! allow_replace + ! Geminabox.allow_replace end def allow_delete? - allow_delete + Geminabox.allow_delete end def allow_upload? - allow_upload + Geminabox.allow_upload end def fixup_bundler_rubygems! return if @post_reset_hook_applied Gem.post_reset{ Gem::Specification.all = nil } if defined? Bundler and Gem.respond_to? :post_reset @post_reset_hook_applied = true end def reindex(force_rebuild = false) fixup_bundler_rubygems! - force_rebuild = true unless incremental_updates + force_rebuild = true unless Geminabox.incremental_updates if force_rebuild indexer.generate_index dependency_cache.flush else begin @@ -76,19 +56,19 @@ end rescue Gem::SystemExitException end def indexer - Gem::Indexer.new(data, :build_legacy => build_legacy) + Gem::Indexer.new(Geminabox.data, :build_legacy => Geminabox.build_legacy) end def dependency_cache - @dependency_cache ||= Geminabox::DiskCache.new(File.join(data, "_cache")) + @dependency_cache ||= Geminabox::DiskCache.new(File.join(Geminabox.data, "_cache")) end def with_rlock(&block) - file_class.open(settings.lockfile, File::RDWR | File::CREAT) do |f| + file_class.open(Geminabox.lockfile, File::RDWR | File::CREAT) do |f| ReentrantFlock.synchronize(f, File::LOCK_EX | File::LOCK_NB, &block) end end # This method provides a test hook, as stubbing File is painful... @@ -201,11 +181,11 @@ private def serialize_update(&block) with_rlock(&block) rescue ReentrantFlock::AlreadyLocked - halt 503, { 'Retry-After' => settings.retry_interval }, 'Repository lock is held by another process' + halt 503, { 'Retry-After' => Geminabox.retry_interval }, 'Repository lock is held by another process' end def with_rlock(&block) self.class.with_rlock(&block) end @@ -241,11 +221,11 @@ HTML halt [code, html] end def file_path - File.expand_path(File.join(settings.data, *request.path_info)) + File.expand_path(File.join(Geminabox.data, *request.path_info)) end def dependency_cache self.class.dependency_cache end @@ -268,11 +248,11 @@ [:specs, :prerelease_specs] end def specs_files_paths specs_file_types.map do |specs_file_type| - File.join(settings.data, spec_file_name(specs_file_type)) + File.join(Geminabox.data, spec_file_name(specs_file_type)) end end def spec_file_name(specs_file_type) [specs_file_type, Gem.marshal_version, 'gz'].join('.') @@ -285,11 +265,11 @@ def index_gems(gems) Set.new(gems.map{|gem| gem.name[0..0].downcase}) end def gem_list - settings.rubygems_proxy ? combined_gem_list : local_gem_list + Geminabox.rubygems_proxy ? combined_gem_list : local_gem_list end def query_gems params[:gems].to_s.split(',') end @@ -320,10 +300,10 @@ end def spec_for(gem_name, version, platform = default_platform) filename = [gem_name, version] filename.push(platform) if platform != default_platform - spec_file = File.join(settings.data, "quick", "Marshal.#{Gem.marshal_version}", "#{filename.join("-")}.gemspec.rz") + spec_file = File.join(Geminabox.data, "quick", "Marshal.#{Gem.marshal_version}", "#{filename.join("-")}.gemspec.rz") File::open(spec_file, 'r') do |unzipped_spec_file| unzipped_spec_file.binmode Marshal.load(Gem.inflate(unzipped_spec_file.read)) end if File.exist? spec_file end