Sha256: cf84fe1b985380e811a1d0413ab0d326321908e385747306dda4dc0f264b095d

Contents?: true

Size: 1.29 KB

Versions: 17

Compression:

Stored size: 1.29 KB

Contents

module KirguduBase
	module DynamicPages
		class Element

			include ActiveModel::Validations

			include ::KirguduBase::Models::MergeableElements::InstanceMethods
			extend ::KirguduBase::Models::MergeableElements::ClassMethods

			include ::KirguduBase::Models::FixableElements::InstanceMethods
			extend ::KirguduBase::Models::FixableElements::ClassMethods


			def initialize(options = {})
				if options
					options.symbolize_keys!
					options.each_pair do |key, value|
						self.send("#{key}=", value)
					end
				end
			end


			attr_reader :parent_entry

			def fix_parent_entry(parent_entry)
				if parent_entry
					unless parent_entry.is_a?(::KirguduBase::DynamicPages::Element)
						raise "Parent Entry must be a derivative of class ::KirguduBase::Pages::Element"
					end
					self.parent_entry = parent_entry
				end
			end

			def to_external_hash(options = {})
				options ||= {}
				options
			end

			def kontroller_klass
				self.parent_entry.kontroller_klass if self.parent_entry && self.parent_entry.respond_to?(:kontroller_klass)
			end

			def as_json(options = {})
				super((options || {}).merge({
					                            :except => [:parent_entry, :validation_context, :errors]
				                            }))
			end

			protected

			attr_writer :parent_entry

		end
	end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
kirgudu_base-0.0.21 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.19 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.18 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.17 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.16 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.15 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.14 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.13 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.12 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.11 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.10 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.9 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.8 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.7 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.6 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.5 app/models/kirgudu_base/dynamic_pages/element.rb
kirgudu_base-0.0.4 app/models/kirgudu_base/dynamic_pages/element.rb