Sha256: 9b47d05b32d7a7da3970b22f59c88dab0370c1b1460dd20fe9e10326eedb2591

Contents?: true

Size: 1.18 KB

Versions: 18

Compression:

Stored size: 1.18 KB

Contents

require 'lolcommits/cli/fatals'

require 'mini_magick'

module Lolcommits
  module CLI
    # Creates an animated timeline GIF of lolcommits history.
    class TimelapseGif
      # param config [Lolcommits::Configuration]
      def initialize(config)
        @configuration = config
      end

      # Runs the history timeline animator task thingy
      # param args [String] the arg passed to the gif command on CLI (optional)
      def run(args = nil)
        case args
        when 'today'
          lolimages = @configuration.jpg_images_today
          filename  = "#{Date.today}.gif"
        else
          lolimages = @configuration.jpg_images
          filename  = 'archive.gif'
        end

        if lolimages.empty?
          warn 'No lolcommits have been captured for this time yet.'
          exit 1
        end

        puts '*** Generating animated gif.'

        gif = MiniMagick::Image.new File.join @configuration.archivedir, filename

        # This is for ruby 1.8.7, *lolimages just doesn't work with ruby 187
        gif.run_command('convert', *['-delay', '50', '-loop', '0', lolimages, gif.path.to_s].flatten)

        puts "*** #{gif.path} generated."
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
lolcommits-0.12.1 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.12.0 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.11.0 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.11.0.pre lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.10.0 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.10.0.pre1 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.8 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.7 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.7.pre1 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.6 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.5 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.5.pre1 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.4 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.4.pre1 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.3 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.3.pre3 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.3.pre2 lib/lolcommits/cli/timelapse_gif.rb
lolcommits-0.9.3.pre1 lib/lolcommits/cli/timelapse_gif.rb