module Typus
module Configuration
##
# Default Typus options which can be overwritten from the
# initializer. Example:
#
# Typus::Configuration.options[:recover_password]
#
# Special cases:
#
# Typus::Configuration.options[:user_fk]
# Typus.user_fk
#
# Typus::Configuration.options[:user_class_name]
# Typus.user_class
#
typus_options = { :app_name => 'Typus',
:config_folder => 'config/typus',
:email => 'admin@example.com',
:locales => [ [ "English", :en ] ],
:recover_password => false,
:root => 'admin',
:ssl => false,
:templates_folder => 'admin/templates',
:user_class_name => 'TypusUser',
:user_fk => 'typus_user_id' }
##
# Default model options which can be overwritten from the
# initializer. Example:
#
# Model.typus_options_for(:default_action_on_item)
#
model_options = { :default_action_on_item => 'edit',
:end_year => nil,
:form_rows => 10,
:icon_on_boolean => true,
:index_after_save => false,
:minute_step => 5,
:nil => 'nil',
:only_user_items => false,
:per_page => 15,
:sidebar_selector => 5,
:start_year => nil,
:toggle => true }
@@options = typus_options.merge(model_options)
mattr_accessor :options
##
# Read Typus Configuration files placed on config/typus/**/*.yml.
#
# Typus::Configuration.config! overwrites @@config
#
def self.config!
files = Dir["#{Rails.root}/#{options[:config_folder]}/**/*.yml"].sort
files = files.delete_if { |x| x.include?('_roles.yml') }
@@config = {}
files.each do |file|
data = YAML.load_file(file)
@@config = @@config.merge(data) if data
end
return @@config
end
mattr_accessor :config
##
# Read Typus Roles from configuration files placed on config/typus/**/*_roles.yml.
#
# Typus::Configuration.roles! overwrites @@roles
#
def self.roles!
files = Dir["#{Rails.root}/#{options[:config_folder]}/**/*_roles.yml"].sort
@@roles = { options[:root] => {} }
files.each do |file|
data = YAML.load_file(file)
next unless data
data.each do |key, value|
next unless value
begin
@@roles[key] = @@roles[key].merge(value)
rescue
@@roles[key] = value
end
end
end
return @@roles.compact
end
mattr_accessor :roles
end
end