module Marksman class Presentation include Equality attr_accessor :filename, :metadata, :slides, :theme def initialize(options) @filename = options[:filename] @slides = options[:slides] || [] @metadata = defaults(filename).merge(options[:metadata] || {}) @theme = Theme.new @metadata[:theme] end def title @metadata[:title] end def defaults(filename) { filename: filename, title: filename, theme: 'plain' } end end end