diff --git a/app/models/dependency.rb b/app/models/dependency.rb index dfc98c9b4fa..07b0f3da738 100644 --- a/app/models/dependency.rb +++ b/app/models/dependency.rb @@ -13,6 +13,12 @@ class Dependency < ActiveRecord::Base attr_accessor :gem_dependency + cattr_writer :allow_unknown + + def self.allow_unknown + @@allow_unknown ||= false + end + def name rubygem.name end @@ -42,6 +48,8 @@ def use_gem_dependency end def use_existing_rubygem + return true if self.class.allow_unknown + self.rubygem = Rubygem.find_by_name(gem_dependency.name) if rubygem.blank? diff --git a/config/initializers/rubygems_config.rb b/config/initializers/rubygems_config.rb index be79a41a093..d61717672cc 100644 --- a/config/initializers/rubygems_config.rb +++ b/config/initializers/rubygems_config.rb @@ -1,7 +1,8 @@ $rubygems_config = YAML.load_file(Rails.root.join("config", "rubygems.yml"))[Rails.env].symbolize_keys -HOST = $rubygems_config[:host] -Hostess.local = $rubygems_config[:local_storage] +HOST = $rubygems_config[:host] +Hostess.local = $rubygems_config[:local_storage] +Dependency.allow_unknown = $rubygems_config[:allow_unknown_dependencies] Gemcutter::Application.configure do config.action_mailer.default_url_options = { :host => HOST } diff --git a/config/rubygems.yml.example b/config/rubygems.yml.example index cbab71c0914..a66bb0cf0fc 100644 --- a/config/rubygems.yml.example +++ b/config/rubygems.yml.example @@ -1,10 +1,12 @@ development: host: localhost local_storage: true + allow_unknown_dependencies: false test: &TEST host: www.example.com local_storage: true + allow_unknown_dependencies: false cucumber: <<: *TEST @@ -12,11 +14,14 @@ cucumber: staging: host: staging.rubygems.org local_storage: false + allow_unknown_dependencies: false production: host: rubygems.org local_storage: false + allow_unknown_dependencies: false maintenance: host: rubygems.org local_storage: false + allow_unknown_dependencies: false