Sha256: 2f198f5a7bd56ab9db8277899e74d9e154e08687eef61a2c44334db3add72381

Contents?: true

Size: 1.31 KB

Versions: 7

Compression:

Stored size: 1.31 KB

Contents

module KirguduBase
	module Settings
		class Option < ::KirguduBase::BaseModel
			########################################## RELATIONS ########################################

			include ::KirguduBase::Models::BasicProperties::Portal

			include ::KirguduBase::Models::BasicProperties::CreatedBy
			include ::KirguduBase::Models::BasicProperties::UpdatedBy


			belongs_to :group, class_name: ::KirguduBase::Settings::Group, foreign_key: :group_id
			has_one :option_value, class_name: ::KirguduBase::Settings::Value, foreign_key: :option_id

			########################################## VALIDATIONS #######################################

			validates_presence_of :group_id, :name, :slug, :value_type, :sort_position
			validates_uniqueness_of :name, :slug, scope: :group_id

			######################################### SCOPES #############################################

			scope :with_search, lambda { |value|
				if value
					value = value.gsub("%", " ")
					value_like = "%#{value}%"
					where { (name.like value_like) }
				end
			}

			def group_name
				group.name if group
			end

			def value_type
				::Core::Common::DataType[self.value_type_id]
			end

			def data
				ChupakabraTools::Convert.string_to_value(option_value.data, ::Core::Common::DataType.tag_by_id(value_type_id)) if option_value
			end
		end
	end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
kirgudu_base-0.0.21 app/models/kirgudu_base/settings/option.rb
kirgudu_base-0.0.19 app/models/kirgudu_base/settings/option.rb
kirgudu_base-0.0.18 app/models/kirgudu_base/settings/option.rb
kirgudu_base-0.0.17 app/models/kirgudu_base/settings/option.rb
kirgudu_base-0.0.16 app/models/kirgudu_base/settings/option.rb
kirgudu_base-0.0.15 app/models/kirgudu_base/settings/option.rb
kirgudu_base-0.0.14 app/models/kirgudu_base/settings/option.rb