Module: ChobbleForms::FieldUtils

Extended by:
T::Sig
Defined in:
lib/chobble_forms/field_utils.rb

Class Method Summary collapse

Class Method Details

.base_field_name(field) ⇒ Object



46
47
48
# File 'lib/chobble_forms/field_utils.rb', line 46

def self.base_field_name(field)
  strip_field_suffix(field)
end

.form_field_label(form, field) ⇒ Object



51
52
53
# File 'lib/chobble_forms/field_utils.rb', line 51

def self.form_field_label(form, field)
  I18n.t("forms.#{form}.fields.#{field}")
end

.form_name_from_assessment(assessment_key) ⇒ Object



56
57
58
# File 'lib/chobble_forms/field_utils.rb', line 56

def self.form_name_from_assessment(assessment_key)
  assessment_key.to_s.gsub(/_assessment$/, "").to_sym
end

.get_composite_fields(field, partial) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/chobble_forms/field_utils.rb', line 16

def self.get_composite_fields(field, partial)
  fields = T.let([], T::Array[Symbol])
  partial_str = partial.to_s

  fields << :"#{field}_pass" if partial_str.include?("pass_fail") && !field.to_s.end_with?("_pass")

  if partial_str.include?("comment")
    base = field.to_s.end_with?("_pass") ? strip_field_suffix(field) : field
    fields << :"#{base}_comment"
  end

  fields
end

.is_comment_field?(field) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/chobble_forms/field_utils.rb', line 36

def self.is_comment_field?(field)
  field.to_s.end_with?("_comment")
end

.is_composite_field?(field) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/chobble_forms/field_utils.rb', line 41

def self.is_composite_field?(field)
  is_pass_field?(field) || is_comment_field?(field)
end

.is_pass_field?(field) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/chobble_forms/field_utils.rb', line 31

def self.is_pass_field?(field)
  field.to_s.end_with?("_pass")
end

.strip_field_suffix(field) ⇒ Object



11
12
13
# File 'lib/chobble_forms/field_utils.rb', line 11

def self.strip_field_suffix(field)
  field.to_s.gsub(/_pass$|_comment$/, "").to_sym
end