Sha256: 02084e5d3ec5ba8e6f7bae28887d6251c3c74e3c28faee383e081bb35219578f

Contents?: true

Size: 783 Bytes

Versions: 20

Compression:

Stored size: 783 Bytes

Contents

module ActiveRecordSurvey
	# Can hold a value on a scale (e.g. from 0-10)
	class Node::Answer::Scale < Node::Answer
		include Answer::Chained::InstanceMethods
		extend Answer::Chained::ClassMethods

		# Accept integer, float, or empty values
		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+(\.\d+)?)$/).nil?)
		end

		# Scale answers are considered answered if they have a value of greater than "0"
		def is_answered_for_instance?(instance)
			if instance_node = self.instance_node_for_instance(instance)
				# Answered if not empty and > 0
				!instance_node.value.to_s.empty? && instance_node.value.to_i >= 0
			else
				false
			end
		end
	end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
active_record_survey-0.1.49 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.48 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.47 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.46 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.45 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.44 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.43 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.42 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.41 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.40 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.39 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.38 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.37 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.36 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.35 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.34 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.32 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.31 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.30 lib/active_record_survey/node/answer/scale.rb
active_record_survey-0.1.29 lib/active_record_survey/node/answer/scale.rb