Class: Scaffoldhub::TemplateFile

Inherits:
RemoteFile show all
Defined in:
lib/scaffoldhub/template_file.rb

Instance Method Summary collapse

Methods inherited from RemoteFile

#exists?, #http_request, #remote_file_contents!

Constructor Details

#initialize(src, dest, rename, local, base_url, status_proc) ⇒ TemplateFile

Returns a new instance of TemplateFile.



4
5
6
7
8
9
10
11
# File 'lib/scaffoldhub/template_file.rb', line 4

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

Instance Method Details

#closeObject



21
22
23
# File 'lib/scaffoldhub/template_file.rb', line 21

def close
  @temp_file.close if @temp_file
end

#destObject



25
26
27
28
29
30
31
# File 'lib/scaffoldhub/template_file.rb', line 25

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

#download!Object



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/scaffoldhub/template_file.rb', line 33

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

#srcObject



13
14
15
16
17
18
19
# File 'lib/scaffoldhub/template_file.rb', line 13

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

#urlObject



45
46
47
# File 'lib/scaffoldhub/template_file.rb', line 45

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