# frozen_string_literal: true require 'hs/loaders/module_loader' require 'hs/preview/content_preview' require 'hs/models/review_status' module HS class Module extend HS::ModuleLoader include HS::ContentPreview include HS::ReviewStatus attr_reader :chapter, :content attr_accessor :slug, :title, :intro def self.load(chapter, file) load_module(chapter, File.read(file)) end def initialize(chapter, args) @chapter = chapter @content = [] args.each do |key, val| instance_variable_set("@#{key}", val) end end # URL of this module when published. def hs_url "#{chapter.hs_url}/#{slug}" end end end