Sha256: 7eb734cc9e0315972e969cd78bff05fec7f763bdbf39d1b16381d3b9653bc9cb

Contents?: true

Size: 728 Bytes

Versions: 10

Compression:

Stored size: 728 Bytes

Contents

module ActiveRecordSurvey
	class Survey < ::ActiveRecord::Base
		self.table_name = "active_record_surveys"
		has_many :node_maps, :class_name => "ActiveRecordSurvey::NodeMap", :foreign_key => :active_record_survey_id, autosave: true
		has_many :nodes, -> { distinct }, :through => :node_maps
		has_many :questions, :class_name => "ActiveRecordSurvey::Node::Question", :foreign_key => :active_record_survey_id

		def root_node
			self.node_maps.includes(:node).select { |i| i.depth === 0 }.first
		end

		def as_map(*args)
			options = args.extract_options!
			options[:node_maps] ||= self.node_maps

			self.node_maps.select { |i| !i.parent && !i.marked_for_destruction? }.collect { |i|
				i.as_map(options)
			}
		end
	end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
active_record_survey-0.1.36 lib/active_record_survey/survey.rb
active_record_survey-0.1.35 lib/active_record_survey/survey.rb
active_record_survey-0.1.34 lib/active_record_survey/survey.rb
active_record_survey-0.1.32 lib/active_record_survey/survey.rb
active_record_survey-0.1.31 lib/active_record_survey/survey.rb
active_record_survey-0.1.30 lib/active_record_survey/survey.rb
active_record_survey-0.1.29 lib/active_record_survey/survey.rb
active_record_survey-0.1.28 lib/active_record_survey/survey.rb
active_record_survey-0.1.27 lib/active_record_survey/survey.rb
active_record_survey-0.1.26 lib/active_record_survey/survey.rb