class Quby::Questionnaires::Entities::Flag

Public Class Methods

new(key:, description_true: nil, description_false: nil, description: nil, internal: false, trigger_on: true, shows_questions: [], hides_questions: [], depends_on: nil, default_in_interface: nil) click to toggle source
Calls superclass method
# File lib/quby/questionnaires/entities/flag.rb, line 9
def initialize(key:,
               description_true: nil,
               description_false: nil,
               description: nil,
               internal: false,
               trigger_on: true,
               shows_questions: [],
               hides_questions: [],
               depends_on: nil, # used in interface to hide this flag unless the depended on flag is set to true
               default_in_interface: nil) # used in interface to set a default for the flag state,
                                          # does not have an effect outside of the interface
  super(key, description_true, description_false, description, internal, trigger_on, shows_questions,
        hides_questions, depends_on, default_in_interface)
  ensure_valid_descriptions
end

Public Instance Methods

if_triggered_by(answer_flags) { || ... } click to toggle source

rubocop:enable ParameterLists

# File lib/quby/questionnaires/entities/flag.rb, line 26
def if_triggered_by(answer_flags)
  yield if answer_flags[key] == trigger_on
end
to_codebook(_options = {}) click to toggle source
# File lib/quby/questionnaires/entities/flag.rb, line 34
def to_codebook(_options = {})
  output = []
  output << "#{key} flag"
  output << "'#{description}'" if description.present?
  output << " 'true' - #{description_true}"
  output << " 'false' - #{description_false}"
  output << " '' (leeg) - Vlag niet ingesteld, informatie onbekend"
  output << ""
  output.join("\n")
end
variable_description() click to toggle source
# File lib/quby/questionnaires/entities/flag.rb, line 30
def variable_description
  "#{description} (true - '#{description_true}', false - '#{description_false}')"
end

Private Instance Methods

ensure_valid_descriptions() click to toggle source
# File lib/quby/questionnaires/entities/flag.rb, line 47
def ensure_valid_descriptions
  unless (description_false.present? && description_true.present?) || description.present?
    raise "Flag '#{key}' Requires at least either both description_true and description_false or a description"
  end
end