Sha256: 549e7934c45672db6aa67027a2f9d95ce666e2d4a6b5fb6d879f5ff38e995bfb

Contents?: true

Size: 1007 Bytes

Versions: 6

Compression:

Stored size: 1007 Bytes

Contents

require 'mumukit/core'
require 'i18n'

I18n.load_translations_path File.join(__dir__, '..', 'locales', '*.yml')

module Mumukit
  # An assistant is used to generate dynamic feedback
  # over a student's submission, based on rules.
  #
  # This feedback is composed of a list of markdown messages called _tips_,
  # and the whole processes of creating this feedback is called _assistance_.
  class Assistant
    attr_accessor :rules

    def initialize(rules)
      @rules = rules
    end

    # Provides tips for the student for the given submission,
    # based on the `rules`.
    def assist_with(submission)
      @rules
        .select { |it| it.matches?(submission) }
        .map { |it| it.message_for(submission.attemps_count) }
    end

    def self.parse(rules)
      new rules.map { |it| Mumukit::Assistant::Rule.parse it }
    end
  end
end

require_relative './assistant/rule'
require_relative './assistant/message'
require_relative './assistant/narrator'
require_relative './assistant/version'

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mumukit-assistant-0.4.0 lib/mumukit/assistant.rb
mumukit-assistant-0.3.0 lib/mumukit/assistant.rb
mumukit-assistant-0.2.1 lib/mumukit/assistant.rb
mumukit-assistant-0.2.0 lib/mumukit/assistant.rb
mumukit-assistant-0.1.1 lib/mumukit/assistant.rb
mumukit-assistant-0.1.0 lib/mumukit/assistant.rb