Module: Skyline::Rendering::Helpers::SettingsHelper

Included in:
Skyline::Renderer::Helpers
Defined in:
lib/skyline/rendering/helpers/settings_helper.rb

Instance Method Summary collapse

Instance Method Details

#page_from_setting(setting_identifier, field) ⇒ Page?

a safe way to get a page from the settings

Parameters:

  • setting_identifier (Symbol)

    the symbol of the settings page

  • field (Symbol)

    the name of the setting that references a page_id

Returns:

  • (Page, nil)

    The page if found, nil otherwise



25
26
27
28
29
30
# File 'lib/skyline/rendering/helpers/settings_helper.rb', line 25

def page_from_setting(setting_identifier, field)
  if page_id = setting(setting_identifier, field)
    return Skyline::Page.find_by_id(page_id) if page_id.present?
  end    
  nil
end

#setting(setting_identifier, field) ⇒ Object

A safe way to get a value of a setting and report a warning if it can’t be found

instead of calling Setting.field directly use setting(:setting_identifier, :field)

Parameters:

  • setting_identifier (Symbol)

    the symbol of the settings page

  • field (Symbol)

    the name of the setting

Returns:

  • Object the value of the setting or nil if not found



9
10
11
12
13
14
15
16
17
# File 'lib/skyline/rendering/helpers/settings_helper.rb', line 9

def setting(setting_identifier, field)
  if s = ::Settings[setting_identifier] 
    if s.respond_to?(field)
      return s.send(field)
    end
  end
  Rails.logger.warn "Couldn't find Setting[:#{setting_identifier}].#{field}"
  nil
end