Sha256: b70d814f8f3e4af355285314bf58ab6e10e46a29c77d5df4946da476c27c5618

Contents?: true

Size: 1.21 KB

Versions: 41

Compression:

Stored size: 1.21 KB

Contents

module Fig; end

# Configuration for the Fig program, as opposed to a config in a package.
class Fig::ApplicationConfiguration
  attr_accessor :base_whitelisted_url
  attr_accessor :remote_repository_url

  def initialize()
    @data = []
    clear_cached_data
  end

  def ensure_url_whitelist_initialized()
    return if not @whitelist.nil?
    whitelist = self['url whitelist']
    if whitelist.nil?
      @whitelist = []
    elsif @base_whitelisted_url
      @whitelist = [@base_whitelisted_url, whitelist].flatten
    elsif whitelist.is_a? Array
      @whitelist = whitelist
    else
      @whitelist = [whitelist]
    end
  end

  def [](key)
    @data.each do |dataset|
      if dataset.has_key?(key)
        return dataset[key]
      end
    end
    return nil
  end

  def push_dataset(dataset)
    @data.push(dataset)
  end

  # After push_dataset, call clear_cached, and lazy initialize as far as the
  # list of things to exclude
  def clear_cached_data()
    @whitelist = nil
  end

  def url_access_allowed?(url)
    ensure_url_whitelist_initialized
    return true if @whitelist.empty?
    @whitelist.each do |allowed_url|
      return true if url.match(/\A#{Regexp.quote(allowed_url)}\b/)
    end
    return false
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
fig-1.23.0 lib/fig/application_configuration.rb
fig-1.22.1.beta.1 lib/fig/application_configuration.rb
fig-1.22.0 lib/fig/application_configuration.rb
fig-1.21.1.beta.2 lib/fig/application_configuration.rb
fig-1.21.1.beta.1 lib/fig/application_configuration.rb
fig-1.21.0 lib/fig/application_configuration.rb
fig-1.20.1.beta.1 lib/fig/application_configuration.rb
fig-1.20.0 lib/fig/application_configuration.rb
fig-1.19.0 lib/fig/application_configuration.rb
fig-1.18.0 lib/fig/application_configuration.rb
fig-1.17.0 lib/fig/application_configuration.rb
fig-1.16.1.beta.1 lib/fig/application_configuration.rb
fig-1.16.0 lib/fig/application_configuration.rb
fig-1.15.1.beta.2 lib/fig/application_configuration.rb
fig-1.15.1.beta.1 lib/fig/application_configuration.rb
fig-1.15.0 lib/fig/application_configuration.rb
fig-1.14.0 lib/fig/application_configuration.rb
fig-1.13.0 lib/fig/application_configuration.rb
fig-1.12.0 lib/fig/application_configuration.rb
fig-1.11.0 lib/fig/application_configuration.rb