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