class DocTemplate::Tags::ActivityMetadataTypeTag

Constants

TAG_NAME
TASK_RE
TEMPLATES

Attributes

activity[R]
opts[R]

Public Instance Methods

optional?() click to toggle source
# File lib/doc_template/tags/activity_metadata_type_tag.rb, line 16
def optional?
  !!@activity.try(:optional)
end
parse(node, opts = {}) click to toggle source
# File lib/doc_template/tags/activity_metadata_type_tag.rb, line 20
def parse(node, opts = {})
  @opts = opts
  @metadata = opts[:activity]
  @activity = @metadata.find_by_anchor(opts[:value])
  @anchor = @activity.anchor

  content = DocTemplate.sanitizer.strip_html(content_until_break(node))
  content = parse_nested content.to_s, opts
  params = {
    activity: @activity,
    content: DocTemplate.sanitizer.strip_html_element(content),
    placeholder: placeholder_id
  }

  # Extend basic params set with additional which can be customized
  params.merge! extended_parse_params

  @content = parse_template params, template_name(opts)
  @materials = @activity.try(:material_ids) || []
  replace_tag node
  self
end

Private Instance Methods

extended_params_default() click to toggle source
# File lib/doc_template/tags/activity_metadata_type_tag.rb, line 55
def extended_params_default
  if @activity.respond_to?(:activity_guidance)
    @activity[:activity_guidance] = DocTemplate.sanitizer.strip_html_element(@activity[:activity_guidance])
  end

  {
    foundational: opts[:foundational_skills],
    priority_description: priority_description(activity),
    priority_icon: priority_icon(activity),
    react_props: {
      activity: {
        title: @activity.title,
        type: @activity.activity_type
      },
      material_ids: @activity.material_ids
    }
  }
end
extended_parse_params() click to toggle source
# File lib/doc_template/tags/activity_metadata_type_tag.rb, line 47
def extended_parse_params
  custom_params = ::DocTemplate::Tags.config[TAG_NAME]['extend-params-with'].to_s
  return extended_params_default if custom_params.blank?

  mod, method = custom_params.split('.')
  mod.constantize.send method
end