Sha256: c22fb8ce96056e733e7626d4a390bce23360b48deb585b9df5b62de17508ea89

Contents?: true

Size: 1.88 KB

Versions: 3

Compression:

Stored size: 1.88 KB

Contents

module KirguduBase
	class DynamicPages::FormBuilder < ::KirguduBase::DynamicPages::PageElementBuilder

		def initialize(name, &block)

			self.builder_options.merge!({
				                            url: nil,
				                            http_method: nil,
				                            allow_client_validations: nil,
				                            is_ajax: nil,
				                            properties: nil,
				                            elements: nil,
				                            parent: nil
			                            })

			super(name, &block)
		end

		def url(value)
			self.builder_options[:url] = value
		end

		def url_path(controller, action, params = {})
			self.builder_options[:url_path] = {
				controller: controller,
				action: action,
				params: params
			}
		end

		def http_method(value)
			self.builder_options[:http_method] = value
		end

		def allow_client_validations(value)
			self.builder_options[:allow_client_validations] = value
		end

		def is_ajax(value)
			self.builder_options[:is_ajax] = value
		end

		def properties(&block)
			elements = ::KirguduBase::DynamicPages::FormPropertiesBlockBuilder.new(&block).to_elements
			elements.each do |element|
				self.builder_options[:properties] = {} unless self.builder_options[:properties]
				self.builder_options[:properties][element.name] = element
			end
		end

		def elements
			elements = ::KirguduBase::DynamicPages::FormElementsBlockBuilder.new(&block).to_elements
			elements.each do |element|
				self.builder_options[:elements] = [] unless self.builder_options[:elements]
				self.builder_options[:elements] << element
			end
		end

		def parent(value)
			self.validate_empty_parameter('parent', value)
			self.builder_options[:parent] = value
		end

		def to_element
			element = ::KirguduBase::DynamicPages::Form.new
			self.build_element(element)
			self.validate_generated_element(element)
			element
		end
	end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kirgudu_base-0.0.25 app/models/kirgudu_base/dynamic_pages/form_builder.rb
kirgudu_base-0.0.23 app/models/kirgudu_base/dynamic_pages/form_builder.rb
kirgudu_base-0.0.22 app/models/kirgudu_base/dynamic_pages/form_builder.rb