Module: LatoSettings

Defined in:
lib/lato_settings.rb,
lib/lato_settings/config.rb,
lib/lato_settings/engine.rb,
lib/lato_settings/version.rb,
app/models/lato_settings/setting.rb,
app/jobs/lato_settings/application_job.rb,
app/helpers/lato_settings/settings_helper.rb,
app/helpers/lato_settings/application_helper.rb,
app/mailers/lato_settings/application_mailer.rb,
app/controllers/lato_settings/settings_controller.rb,
app/controllers/lato_settings/application_controller.rb

Defined Under Namespace

Modules: ApplicationHelper, SettingsHelper Classes: ApplicationController, ApplicationJob, ApplicationMailer, Config, Engine, Setting, SettingsController

Constant Summary collapse

VERSION =
"3.0.6"

Class Method Summary collapse

Class Method Details

.configObject



7
8
9
# File 'lib/lato_settings.rb', line 7

def config
  @config ||= Config.new
end

.configure {|config| ... } ⇒ Object

Yields:



11
12
13
# File 'lib/lato_settings.rb', line 11

def configure
  yield config
end

.get(key, default = nil) ⇒ Object



15
16
17
18
19
# File 'lib/lato_settings.rb', line 15

def get(key, default = nil)
  load_cache

  @cache[:data][key.to_s] || default
end

.load_cacheObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/lato_settings.rb', line 21

def load_cache
  return true if defined?(@cache) && @cache && @cache[:expires_at] && @cache[:expires_at] > Time.now

  @cache = Rails.cache.fetch('LatoSettings/cache') do
    data = {}
    LatoSettings::Setting.all.each do |setting|
      data[setting.key] = setting.value_formatted
    end

    {
      data: data,
      expires_at: Time.now + 1.minute
    }
  end

  @cache
end

.reset_cacheObject



39
40
41
42
# File 'lib/lato_settings.rb', line 39

def reset_cache
  @cache = nil
  Rails.cache.delete('LatoSettings/cache')
end