class PgBundle::PgxnSource
The GithubSource
class defines a Github Source
Public Class Methods
new(dist, version)
click to toggle source
Calls superclass method
PgBundle::BaseSource::new
# File lib/pgbundle/pgxn_source.rb, line 9 def initialize(dist, version) @dist, @version = dist, version path = "http://master.pgxn.org/dist/%{dist}/%{version}/%{dist}-%{version}.zip" % {dist: dist, version: version} super(path) end
Public Instance Methods
clean()
click to toggle source
# File lib/pgbundle/pgxn_source.rb, line 25 def clean FileUtils.remove_dir(download_dir, true) end
load(host, user, dest)
click to toggle source
# File lib/pgbundle/pgxn_source.rb, line 15 def load(host, user, dest) download unzip if host == 'localhost' copy_local("#{download_dir}/#{@dist}-#{@version}", dest) else copy_to_remote(host, user, "#{download_dir}/#{@dist}-#{@version}", dest) end end
Private Instance Methods
download()
click to toggle source
# File lib/pgbundle/pgxn_source.rb, line 31 def download begin File.open(zipfile, "wb") do |saved_file| open(@path, "rb") do |read_file| saved_file.write(read_file.read) end end rescue OpenURI::HTTPError => e raise PgxnError.new(path, e.message) end end
download_dir()
click to toggle source
# File lib/pgbundle/pgxn_source.rb, line 57 def download_dir @clone_dir ||= Dir.mktmpdir end
unzip()
click to toggle source
# File lib/pgbundle/pgxn_source.rb, line 47 def unzip Zip::ZipFile.open(zipfile) do |zip_file| zip_file.each do |f| f_path=File.join(download_dir, f.name) FileUtils.mkdir_p(File.dirname(f_path)) zip_file.extract(f, f_path) unless File.exist?(f_path) end end end
zipfile()
click to toggle source
# File lib/pgbundle/pgxn_source.rb, line 43 def zipfile "#{download_dir}/#{@dist}.zip" end