Class: Wovnrb::Settings

Inherits:
Hash
  • Object
show all
Defined in:
lib/wovnrb/settings.rb

Constant Summary collapse

DYNAMIC_KEYS =
{
  'wovn_token' => 'project_token',
  'wovn_ignore_paths' => 'ignore_paths',
}

Instance Method Summary collapse

Constructor Details

#initialize(*args, **kwargs) ⇒ Settings



3
4
5
6
# File 'lib/wovnrb/settings.rb', line 3

def initialize(*args, **kwargs)
  super(*args, **kwargs)
  @dynamic_settings = {}
end

Instance Method Details

#[](key) ⇒ Object



8
9
10
11
12
# File 'lib/wovnrb/settings.rb', line 8

def [](key)
  return @dynamic_settings[key] if @dynamic_settings.key?(key)
  return ignore_globs if key == 'ignore_globs'
  super(key)
end

#clear_dynamic_settings!Object



20
21
22
# File 'lib/wovnrb/settings.rb', line 20

def clear_dynamic_settings!
  @dynamic_settings.clear
end

#ignore_globsObject



14
15
16
17
18
# File 'lib/wovnrb/settings.rb', line 14

def ignore_globs
  ignore_paths = self['ignore_paths']
  return [] unless ignore_paths.kind_of?(Array)
  ignore_paths.map { |pattern| Glob.new(pattern) }
end

#update_dynamic_settings!(params) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/wovnrb/settings.rb', line 24

def update_dynamic_settings!(params)
  # If the user defines dynamic settings for this request, use it instead of the config
  DYNAMIC_KEYS.each do |params_key, setting_key|
    value = params[params_key]
    @dynamic_settings[setting_key] = value if value
  end
end