class Quby::Questionnaires::Entities::Questions::DateQuestion
Constants
- COMPONENT_KEYS
- COMPONENT_PLACEHOLDERS
- DEFAULT_COMPONENTS
- POSSIBLE_COMPONENTS
Attributes
components[RW]
@!attribute [r] components
@return [Array<Symbol>] date parts to show
@!attribute [r] required_components
@return [Array<Symbol>] date parts that are required if the question is required or partly filled out.
optional_components[RW]
@!attribute [r] components
@return [Array<Symbol>] date parts to show
@!attribute [r] required_components
@return [Array<Symbol>] date parts that are required if the question is required or partly filled out.
required_components[RW]
@!attribute [r] components
@return [Array<Symbol>] date parts to show
@!attribute [r] required_components
@return [Array<Symbol>] date parts that are required if the question is required or partly filled out.
Public Class Methods
new(key, options = {})
click to toggle source
Calls superclass method
Quby::Questionnaires::Entities::Question::new
# File lib/quby/questionnaires/entities/questions/date_question.rb, line 24 def initialize(key, options = {}) super @components = options[:components] || DEFAULT_COMPONENTS @required_components = options[:required_components] || @components @optional_components = @components - @required_components components.each do |component| component_key = options[:"#{component}_key"] || "#{key}_#{COMPONENT_KEYS[component]}" instance_variable_set("@#{component}_key", component_key.to_sym) end end
Public Instance Methods
answer_keys()
click to toggle source
# File lib/quby/questionnaires/entities/questions/date_question.rb, line 41 def answer_keys components.map do |component| send("#{component}_key").to_sym end end
as_json(options = {})
click to toggle source
Calls superclass method
Quby::Questionnaires::Entities::Question#as_json
# File lib/quby/questionnaires/entities/questions/date_question.rb, line 54 def as_json(options = {}) component_keys = components.each_with_object({}) do |component, hash| hash["#{component}Key"] = send("#{component}_key") end super.merge(components: components).merge(component_keys) end
claimed_keys()
click to toggle source
# File lib/quby/questionnaires/entities/questions/date_question.rb, line 37 def claimed_keys [key] + answer_keys end
to_codebook(questionnaire, opts = {})
click to toggle source
# File lib/quby/questionnaires/entities/questions/date_question.rb, line 61 def to_codebook(questionnaire, opts = {}) output = [] components.each do |component| output << "#{codebook_key(send("#{component}_key"), questionnaire, opts)} " \ "#{type}_#{component} #{codebook_output_range}" output << "\"#{title}\"" unless title.blank? output << options.map(&:to_codebook).join("\n") unless options.blank? output << "" end output.join("\n") end
variable_descriptions()
click to toggle source
# File lib/quby/questionnaires/entities/questions/date_question.rb, line 47 def variable_descriptions components.each_with_object(key => context_free_title) do |component, hash| key = send("#{component}_key") hash[key] = "#{context_free_title} (#{I18n.t component})" end.with_indifferent_access end