Class: Challenge

Inherits:
Exercise show all
Includes:
WithLayout
Defined in:
app/models/exercise/challenge.rb

Direct Known Subclasses

Interactive, QueriableChallenge

Instance Method Summary collapse

Methods inherited from Exercise

#console?, #description_context, #description_task, #ensure_type!, #friendly, #guide_done_for?, #import_from_json!, #messages_path_for, #messages_url_for, #new_solution, #pending_siblings_for, #previous, #reclassify!, #search_tags, #sibling_at, #slug, #slug_parts, #splitted_description, #structural_parent, #used_in?

Methods included from SiblingsNavigation

#navigable_name, #next_for, #restart

Methods included from ParentNavigation

#leave, #navigable_name, #navigable_parent, #navigation_end?

Methods included from Submittable

#find_assignment_and_submit!, #submit!

Methods included from Questionable

#submit_question!

Methods included from WithAssignments

#assigned_to?, #assignment_for, #current_content_for, #default_content_for, #extra_for, #files_for, #find_or_init_assignment_for, #has_messages_for?, #interpolate_for, #last_submission_date_for, #messages_for, #replace_content_reference, #solved_by?, #status_for, #submissions_count_for

Methods included from FriendlyName

#friendly_name, #to_param

Methods included from WithDescription

#description_teaser

Methods inherited from ApplicationRecord

aggregate_of, all_except, defaults, name_model_as, numbered, #save, #save_and_notify!, #save_and_notify_changes!, #update_and_notify!, update_or_create!

Instance Method Details

#extraObject



15
16
17
18
19
20
21
22
# File 'app/models/exercise/challenge.rb', line 15

def extra
  extra_code = [guide.extra, self[:extra]].compact.join("\n")
  if extra_code.empty? or extra_code.end_with? "\n"
    extra_code
  else
    "#{extra_code}\n"
  end
end

#extra_preview(user) ⇒ Object



6
7
8
# File 'app/models/exercise/challenge.rb', line 6

def extra_preview(user)
  Mumukit::ContentType::Markdown.highlighted_code(language.name, extra_for(user))
end

#reset!Object



10
11
12
13
# File 'app/models/exercise/challenge.rb', line 10

def reset!
  super
  self.layout = self.class.default_layout
end