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