Sha256: 03b984a4cf60aaf408118729ff5e653edc30d463ff6855ecc4918c0c618d472c

Contents?: true

Size: 964 Bytes

Versions: 2

Compression:

Stored size: 964 Bytes

Contents

module Scaffoldhub
  class TemplateFile < RemoteFile

    def initialize(src, dest, rename, local, base_url, status_proc)
      @src      = src
      @dest     = dest || ''
      @rename   = rename
      @local    = local
      @base_url = base_url
      super(url, status_proc)
    end

    def src
      if @local
        File.join(@base_url, @src)
      else
        @temp_file.path
      end
    end

    def close
      @temp_file.close if @temp_file
    end

    def dest
      if @rename
        File.join(@dest, @rename)
      else
        File.join(@dest, File.basename(@src))
      end
    end

    def download!
      if @local
        raise Errno::ENOENT.new(src) unless File.exists?(src)
      else
        @temp_file = Tempfile.new(File.basename(@src))
        File.open(@temp_file.path, "wb") do |file|
          file.write(remote_file_contents!)
        end
      end
      self
    end

    def url
      "#{@base_url}/#{@src}"
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
scaffoldhub-0.1.3 lib/scaffoldhub/template_file.rb
scaffoldhub-0.1.2 lib/scaffoldhub/template_file.rb