Class: Fig::ApplicationConfiguration

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

Overview

Configuration for the Fig program, as opposed to a config in a package.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(remote_repository_url) ⇒ ApplicationConfiguration

Returns a new instance of ApplicationConfiguration.



7
8
9
10
11
# File 'lib/fig/applicationconfiguration.rb', line 7

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

Instance Attribute Details

#remote_repository_urlObject (readonly)

Returns the value of attribute remote_repository_url.



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

def remote_repository_url
  @remote_repository_url
end

Instance Method Details

#[](key) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/fig/applicationconfiguration.rb', line 23

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



42
43
44
# File 'lib/fig/applicationconfiguration.rb', line 42

def clear_cached_data()
  @whitelist = nil
end

#ensure_url_whitelist_initializedObject



13
14
15
16
17
18
19
20
21
# File 'lib/fig/applicationconfiguration.rb', line 13

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



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

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

#unshift_dataset(dataset) ⇒ Object



36
37
38
# File 'lib/fig/applicationconfiguration.rb', line 36

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

#url_access_allowed?(url) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
49
50
51
52
53
# File 'lib/fig/applicationconfiguration.rb', line 46

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