Sha256: 1c638375de3979066f3d88d3819a5f1b1459903f7cab8bebb52934978a0b8232

Contents?: true

Size: 1.07 KB

Versions: 7

Compression:

Stored size: 1.07 KB

Contents

module Approvals
  module Writers
    class BinaryWriter
      EXCEPTION_WRITER = Proc.new do |data, file|
        raise "BinaryWriter#callback missing"
      end

      def initialize(opts = {})
        @autoregister = opts[:autoregister] || true
        @detect = opts[:detect]
        @extension = opts[:extension] || ''
        @write = opts[:write] || EXCEPTION_WRITER
        self.format = opts[:format] || :binary
      end

      attr_reader :format

      def format=(sym)
        unregister if autoregister

        @format = sym

        register if autoregister

      end

      def register
        if @format
          Writer::REGISTRY[@format] = self
          Approval::BINARY_FORMATS << @format
          Approval::IDENTITIES[@format] = @detect if @detect
        end
      end

      def unregister
        if @format
          Writer::REGISTRY.delete!(@format)
          Approval::BINARY_FORMATS.delete!(@format)
          Approval::IDENTITIES.delete!(@format)
        end
      end

      def write(data,path)
        @write.call(data,path)
      end

    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
approvals-0.1.7 lib/approvals/writers/binary_writer.rb
approvals-0.0.26 lib/approvals/writers/binary_writer.rb
approvals-0.0.25 lib/approvals/writers/binary_writer.rb
approvals-0.0.24 lib/approvals/writers/binary_writer.rb
br-approvals-0.0.22 lib/approvals/writers/binary_writer.rb
approvals-0.0.22 lib/approvals/writers/binary_writer.rb
approvals-0.0.21 lib/approvals/writers/binary_writer.rb