Module: TimedConfig

Defined in:
lib/timed_config.rb,
lib/timed_config/gems.rb

Defined Under Namespace

Modules: Gems

Class Method Summary collapse

Class Method Details

.configObject



6
7
8
# File 'lib/timed_config.rb', line 6

def config
  reload
end

.pathObject



10
11
12
# File 'lib/timed_config.rb', line 10

def path
  @path || (defined?(Rails) ? "#{Rails.root}/config/timed_config.yml" : nil)
end

.path=(p) ⇒ Object



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

def path=(p)
  @path = p
  reload true
  p
end

.periodObject



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

def period
  @period || 60
end

.period=(p) ⇒ Object



24
25
26
27
28
# File 'lib/timed_config.rb', line 24

def period=(p)
  @period = p
  reload true
  p
end

.reload(force = false) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/timed_config.rb', line 30

def reload(force=false)
  if force || !@last_load || Time.now >= (@last_load + period)
    if TimedConfig.path && File.exists?(TimedConfig.path)
      @config = YAML::load(File.open(TimedConfig.path))
    else
      @config = nil
    end
    @last_load = Time.now
  end
  @config
end