Sha256: 1c78961cccf22e58bce733294fe59cb52fa15ebaa216b706bba86a5bbe62116e

Contents?: true

Size: 817 Bytes

Versions: 3

Compression:

Stored size: 817 Bytes

Contents

module SVGGVS
  class Session
    attr_accessor :svg_source, :svg_merged_target, :individual_files_path, :on_card_finished
    attr_accessor :png_files_path, :png_export_width, :pdf_card_size, :pdf_dpi
    attr_accessor :pdf_target, :card_back

    def initialize
      @index = 0
    end

    def configure
      yield self
    end

    def process(&block)
      @process = block
    end

    def card_finished!
      @on_card_finished.call(@index) if @on_card_finished

      @index += 1
    end

    def on_card_finished(&block)
      @on_card_finished = block
    end

    def file
      @file ||= SVGGVS::File.new(@svg_source)
    end

    def run
      @process.call
    end

    def with_new_target
      file.with_new_target do |target|
        yield target
      end

      card_finished!
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
svggvs-0.0.3 lib/svggvs/session.rb
svggvs-0.0.2 lib/svggvs/session.rb
svggvs-0.0.1 lib/svggvs/session.rb