Class: KirguduBase::Settings::SettingsManager

Inherits:
Object
  • Object
show all
Defined in:
app/models/kirgudu_base/settings/settings_manager.rb

Instance Method Summary collapse

Constructor Details

#initializeSettingsManager

Returns a new instance of SettingsManager.



6
7
8
# File 'app/models/kirgudu_base/settings/settings_manager.rb', line 6

def initialize
  @options = {}
end

Instance Method Details

#create_value_for_option(user, option) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'app/models/kirgudu_base/settings/settings_manager.rb', line 36

def create_value_for_option(user, option)
  value = ::KirguduBase::Settings::Value.new(
    option: option,
    creator: user,
    updater: user
  )
  value.data = option.default_value if option.default_value
  value.save
end

#generate_values_for_options(user) ⇒ Object



28
29
30
31
32
33
34
# File 'app/models/kirgudu_base/settings/settings_manager.rb', line 28

def generate_values_for_options(user)
  values_ids = ::KirguduBase::Settings::Value.all.map { |u| u.option_id }
  options = ::KirguduBase::Settings::Option.where { -(id.in values_ids) }
  options.each do |option|
    self.create_value_for_option(user, option)
  end
end

#get(option_name) ⇒ Object



10
11
12
13
14
15
16
17
# File 'app/models/kirgudu_base/settings/settings_manager.rb', line 10

def get(option_name)
  option = @options[option_name]
  unless option
    option = self.get_option_by_name(option_name)
    @options[option_name] = option unless option
  end
  option
end

#get_option_value(option_name) ⇒ Object



53
54
55
56
# File 'app/models/kirgudu_base/settings/settings_manager.rb', line 53

def get_option_value(option_name)
  option = ::KirguduBase::Settings::Option.where(name: option_name).first
  option.data if option
end

#get_options_values(group) ⇒ Object



58
59
60
# File 'app/models/kirgudu_base/settings/settings_manager.rb', line 58

def get_options_values(group)
  ::KirguduBase::Settings::Option.include(value).where(group_id: group)
end

#load_options(option_names) ⇒ Object



46
47
48
49
50
51
# File 'app/models/kirgudu_base/settings/settings_manager.rb', line 46

def load_options(option_names)
  @options = {}
  ::KirguduBase::Settings::Option.where(slug: option_names).each do |option|
    @options[option.slug] = option
  end
end

#set(option_name, value) ⇒ Object



19
20
21
22
23
24
25
# File 'app/models/kirgudu_base/settings/settings_manager.rb', line 19

def set(option_name, value)
  option = set.get_option_by_name(option_name)
  unless option
    # option = self.create_value_for_option()
    option.value = value
  end
end