Sha256: 8c6cd412df1b96857e62f15faf6242f29ecbc3c4693aef3dfd6487e6066cccc1

Contents?: true

Size: 699 Bytes

Versions: 2

Compression:

Stored size: 699 Bytes

Contents

require_relative 'easing'
require_relative 'frameset'

module WhirledPeas
  module Animator
    class Producer
      def self.produce(consumer)
        producer = new(consumer)
        yield producer
        consumer.process
      end

      def initialize(consumer)
        @consumer = consumer
      end

      def add_frame(name, duration:, args: {})
        frameset(duration) do |fs|
          fs.add_frame(name, args: args)
        end
      end

      def frameset(duration, easing: :linear, effect: :in_out, &block)
        fs = Frameset.new(duration, easing, effect)
        yield fs
        consumer.add_frameset(fs)
      end

      private

      attr_reader :consumer
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
whirled_peas-0.13.0 lib/whirled_peas/animator/producer.rb
whirled_peas-0.12.0 lib/whirled_peas/animator/producer.rb