Class: Fig::ApplicationConfiguration

Inherits:
Object
  • Object
show all
Defined in:
lib/fig/applicationconfiguration.rb

Instance Method Summary collapse

Constructor Details

#initialize(remote_repository_url) ⇒ ApplicationConfiguration

Returns a new instance of ApplicationConfiguration.



4
5
6
7
8
# File 'lib/fig/applicationconfiguration.rb', line 4

def initialize(remote_repository_url)
  @data = []
  @remote_repository_url = remote_repository_url
  clear_cached_data
end

Instance Method Details

#[](key) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/fig/applicationconfiguration.rb', line 20

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

#clear_cached_dataObject

after push_dataset or unshift_dataset, call clear_cached, and lazy initialize as far as the list of things to exclude



39
40
41
# File 'lib/fig/applicationconfiguration.rb', line 39

def clear_cached_data()
  @whitelist = nil
end

#ensure_url_whitelist_initializedObject



10
11
12
13
14
15
16
17
18
# File 'lib/fig/applicationconfiguration.rb', line 10

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

#push_dataset(dataset) ⇒ Object



29
30
31
# File 'lib/fig/applicationconfiguration.rb', line 29

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

#unshift_dataset(dataset) ⇒ Object



33
34
35
# File 'lib/fig/applicationconfiguration.rb', line 33

def unshift_dataset(dataset)
  @data.unshift(dataset)
end

#url_access_allowed?(url) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
46
47
48
49
50
# File 'lib/fig/applicationconfiguration.rb', line 43

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