Sha256: c6c9bf6327c8ed61c62ad96c10ece24c5641da4e398ca0e937ea3d6c6a888c7a

Contents?: true

Size: 1.24 KB

Versions: 1

Compression:

Stored size: 1.24 KB

Contents

class KirguduBase::DynamicPages::DataSourceBuilder

	def initialize(name, &block)

		@cross_domain = false
		@cache_locally = false
		@list_url = nil
		@entry_url = nil
		@data_format = :json
		@label_property = "name"
		@value_property = "id"
		@type = :local

		if name.is_a?(String)
			@name = name
			@model = nil
		elsif name.is_a?(Symbol)
			@name = nil
			@model = name

			instance_eval(&block) if block_given?
		end
	end


	def model(value)
		@model = value
	end

	def cross_domain(value)
		@cross_domain = value ? true : false
	end

	def list_url(value)
		@list_url = value
	end

	def entry_url(value)
		@entry_url = value
	end

	def data_format(value)
		@data_format = value
	end

	def label_property(value)
		@label_property = value
	end

	def value_property(value)
		@value_property = value
	end

	def cache_locally(value)
		@cache_locally = value ? true : false
	end

	def type(value)
		@type = value
	end

	def to_datasource
		::KirguduBase::DynamicPages::DataSource.new(
			name: @name,
			model: @model,
			cross_domain: @cross_domain,
			cache_locally: @cache_locally,
			list_url: @list_url,
			entry_url: @entry_url,
			data_format: @data_format,
			label_property: @label_property,
			value_property: @value_property,
		    type: @type
		)
	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/data_source_builder.rb