Sha256: 1bf33b88f289bb5db1f282b7d8df081d3a832eb18a3d70747e3e23eed004eff2

Contents?: true

Size: 1.45 KB

Versions: 1

Compression:

Stored size: 1.45 KB

Contents

class Erika
  class SlideShow
    attr_accessor :images
    
    def initialize
      prepare_tmp_dir
      @images = []
      
      # Gen subtitles
      _images_
    end
    
    def start
      Video.merge(images)
      
      _gen_subtitle_file_
      
      Video.new(full_path: Erika::Default.temp.filename).mix()
    end
    
    private
      
      def _gen_subtitle_file_
        File.write(Erika::Default.temp.subtitle_filename, images.map(&:caption).join("\n"))
      end
      
      def _images_
        Dir[Erika::Config.source_files].sort.each_with_index do |file, index|
          full_path = File.absolute_path(file, __dir__)
          filename  = file.split('/').last.split('.').first
          image     = Erika::Image.new(filename: filename, full_path: full_path, index: index)
          image.resize_move_to_temp.create_video
          images << image
        end
      end
      
      
      def prepare_tmp_dir
        cmds = [
            %Q{rm -r "#{Erika::TempRoot}"},
            %Q{rm -r "#{Erika::Default.temp.dir}"},
            %Q{rm -r "#{Erika::Config.output_dir}"},
            
            %Q{mkdir "#{Erika::TempRoot}"},
            %Q{mkdir "#{Erika::Default.temp.dir}"},
            %Q{mkdir "#{Erika::Default.temp.image_dir}"},
            %Q{mkdir "#{Erika::Default.temp.video_dir}"},
            
            %Q{mkdir "#{Erika::Config.output_dir}"},
        ]
        
        cmds.each { |cmd| Erika::Runner.(cmd) }
      end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
erika-0.1.2 lib/erika/slideshow.rb