Module: Settings

Defined in:
lib/character/settings.rb

Defined Under Namespace

Classes: Variable

Constant Summary collapse

@@settings_file =
"config/settings.yml"

Class Method Summary collapse

Class Method Details

.group(group_name) ⇒ Object



18
19
20
# File 'lib/character/settings.rb', line 18

def self.group(group_name)
  groups[group_name]
end

.groupsObject



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/character/settings.rb', line 22

def self.groups
  unless @groups
    @groups = {}
    settings_from_yml.keys.each do |group_name|
      @groups[group_name] = settings_from_yml[group_name].map do |name, attrs|
        [ name, Variable.new(group_name, name, attrs) ]
      end.to_h
    end
  end
  @groups
end

.settings_from_ymlObject



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/character/settings.rb', line 34

def self.settings_from_yml
  unless @settings_from_yml
    settings_file = ::Rails.root.join(@@settings_file)
    @settings_from_yml = {}

    if File.exists?(settings_file)
      data = YAML::load(ERB.new(IO.read(settings_file)).result)
      @settings_from_yml = data if data
    end
  end
  @settings_from_yml
end

.stored_variablesObject



47
48
49
50
# File 'lib/character/settings.rb', line 47

def self.stored_variables
  @stored_variables ||= Character::Settings::Variable.all
  Character::Settings::Variable.all
end

.value(key) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/character/settings.rb', line 9

def self.value(key)
  group_name, value_name = key.split('::')
  if groups.has_key? group_name and groups[group_name].has_key? value_name
    groups[group_name][value_name].value
  else
    ''
  end
end