Class: ActiveRecordSurvey::Node::Answer::Rank

Inherits:
ActiveRecordSurvey::Node::Answer show all
Extended by:
Answer::Chained::ClassMethods
Includes:
Answer::Chained::InstanceMethods
Defined in:
lib/active_record_survey/node/answer/rank.rb

Overview

Rank in relation to parent/children of ActiveRecordSurvey::Node::Answer::Rank

Instance Method Summary collapse

Methods inherited from ActiveRecordSurvey::Node::Answer

#build_link, #move_down, #move_up, #next_question, #question, #sibling_index, #sibling_index=, #validate_node

Methods inherited from ActiveRecordSurvey::Node

#answers, #build_link, #has_instance_node_for_instance?, #instance_node_for_instance, #instance_node_path_to_root?, #remove_link, #validate_parent_instance_node

Instance Method Details

#is_answered_for_instance?(instance) ⇒ Boolean

Rank answers are considered answered if they have a value of greater than “0”

Returns:



18
19
20
21
22
23
# File 'lib/active_record_survey/node/answer/rank.rb', line 18

def is_answered_for_instance?(instance)
	if instance_node = self.instance_node_for_instance(instance)
		# Answered if > 0
		instance_node.value.to_i > 0
	end
end

#validate_instance_node(instance_node) ⇒ Object

Accept integer or empty values Must be within range of the number of ranking nodes



9
10
11
12
13
14
15
# File 'lib/active_record_survey/node/answer/rank.rb', line 9

def validate_instance_node(instance_node)
	# super - all validations on this node pass
	super &&
	(instance_node.value.to_s.empty? || !instance_node.value.to_s.match(/^\d+$/).nil?) &&
	(instance_node.value.to_s.empty? || instance_node.value.to_i >= 1) &&
	instance_node.value.to_i <= self.max_rank
end