module LearnOpen
  module Lessons

    def self.default
      LabLesson
    end

    def self.lesson_types
      [
          JupyterLesson,
          ReadmeLesson,
          IosLesson,
      ]
    end

    def self.classify(lesson_data, options = {})
      lesson = lesson_data[:lesson]
      default = method(:default)
      lesson_types.find(default) do |type|
        type.detect(lesson)
      end.new(lesson_data, options)
    end
  end
end