class Cas::SectionConfig

Public Class Methods

new(section) click to toggle source
# File lib/cas/section_config.rb, line 3
def initialize(section)
  @section = section
end

Public Instance Methods

accessible_by_user?(user) click to toggle source
# File lib/cas/section_config.rb, line 31
def accessible_by_user?(user)
  roles = user.roles.map(&:to_s)
  accessible_roles = load_field["accessible_roles"]

  if accessible_roles.present?
    (accessible_roles.map(&:to_s) & roles).compact.present?
  else
    true
  end
end
form_has_field?(field) click to toggle source
# File lib/cas/section_config.rb, line 42
def form_has_field?(field)
  config = YAML.load_file(filename)
  sites = config["sites"]
  site = sites[@section.site.slug]
  section = site["sections"]
  section_fields = section.find { |key, value|
    key == @section.slug
  }[1]["fields"]

  Array.wrap(section_fields).any? do |section_field|
    if section_field.is_a?(Hash)
      section_field.keys.map(&:to_s).include?(field.to_s)
    else
      section_field.to_s == field.to_s
    end
  end
end
list_fields() click to toggle source
# File lib/cas/section_config.rb, line 20
def list_fields
  config = YAML.load_file(filename)
  sites = config["sites"]
  site = sites[@section.site.slug]
  section = site["sections"]
  fields = section.find { |key, value|
    key == @section.slug
  }[1]["list_fields"]
  fields || ['title', 'created_at']
end
list_order_by() click to toggle source
# File lib/cas/section_config.rb, line 7
def list_order_by
  config = YAML.load_file(filename)
  sites = config["sites"]
  site = sites[@section.site.slug]
  section = site["sections"]

  order_field = section.find { |key, value|
    key == @section.slug
  }[1]['list_order_by']

  order_field || ['created_at']
end

Private Instance Methods

filename() click to toggle source
# File lib/cas/section_config.rb, line 62
def filename
  if Rails.env.test?
    "spec/fixtures/cas.yml"
  else
    "cas.yml"
  end
end
load_field() click to toggle source
# File lib/cas/section_config.rb, line 70
def load_field
  @config ||= begin
    config_file = YAML.load_file(filename)
    sites = config_file["sites"]
    site = sites[@section.site.slug]
    section = site["sections"]
    field = section.find { |key, value|
      key == @section.slug
    }
    (field && field[1]) || {}
  end
end