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

Inherits:
ActiveRecordSurvey::Node::Answer show all
Includes:
Answer::Chained
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, #next_question, #question, #remove_link, #validate_node

Methods inherited from ActiveRecordSurvey::Node

#answers, #has_instance_node_for_instance?, #instance_node_for_instance, #instance_node_path_to_root?, #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:



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

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



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

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