Sha256: 3e807dcedb29e00069426cd882f15175a2c640c9bbccaed76d4f40bb4463b299

Contents?: true

Size: 601 Bytes

Versions: 2

Compression:

Stored size: 601 Bytes

Contents

module Undies
  class Source

    attr_reader :source, :data

    def initialize(source=nil)
      raise ArgumentError, "file or block required" if source.nil?

      @source = source
      if self.file? && !File.exists?(@source.to_s)
        raise ArgumentError, "no template file '#{@source}'"
      end

      # load source data and prepare (uses binread to avoid encoding issues)
      @data = if self.file?
        File.send(File.respond_to?(:binread) ? :binread : :read, @source.to_s)
      else
        @source
      end
    end

    def file?
      !@source.kind_of?(::Proc)
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
undies-1.1.0 lib/undies/source.rb
undies-1.0.0 lib/undies/source.rb