Sha256: 4856bc69273e87e906334edd53f0b4db81f6d91d4a035d93fac2a0e4daa423b5

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

class KirguduBase::DynamicPages::ActionForBuilder

	def initialize(value, &block)

		@value = value
		@action = []
		@condition = :is
		@data_source = :nil

		instance_eval(&block) if block_given?

	end

	def action(value)
		if value.is_a?(Array)
			not_suppoted_actions = []
			value.each do |item|
				not_suppoted_actions << item unless ::KirguduBase::DynamicPages::ActionFor::SUPPORTED_ACTIONS.include?(item)
			end
			raise "Actions ':#{not_suppoted_actions.map { |i| ":#{i}" }.join(", ")}' is not supported. Supported Actions are #{::KirguduBase::DynamicPages::ActionFor::SUPPORTED_ACTIONS.map { |i| ":#{i}" }.join(", ")}" if not_suppoted_actions.length > 0
		else
			raise "Action ':#{value}' is not supported. Supported Actions are #{::KirguduBase::DynamicPages::ActionFor::SUPPORTED_ACTIONS.map { |i| ":#{i}" }.join(", ")}" unless ::KirguduBase::DynamicPages::ActionFor::SUPPORTED_ACTIONS.include?(value)
		end
		@action = value
	end

	def condition(value)
		raise "Condition ':#{value}' is not supported. Supported Conditions are #{::KirguduBase::DynamicPages::ActionFor::SUPPORTED_CONDITIONS.map { |i| ":#{i}" }.join(", ")}" unless ::KirguduBase::DynamicPages::ActionFor::SUPPORTED_CONDITIONS.include?(value)
		@condition = value
	end

	def data_source(value)
		@data_source = value
	end


	def to_action_for
		::KirguduBase::DynamicPages::ActionFor.new(
			vale: @value,
			action: @action,
			condition: @condition,
			data_source: @data_source
		)
	end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kirgudu_base-0.0.1 app/models/kirgudu_base/dynamic_pages/action_for_builder.rb