class BranchIOCLI::Helper::BranchHelper
Attributes
changes[RW]
errors[RW]
Public Class Methods
add_change(change)
click to toggle source
# File lib/branch_io_cli/helper/branch_helper.rb, line 20 def add_change(change) @changes ||= Set.new @changes << change.to_s end
domains(apps)
click to toggle source
# File lib/branch_io_cli/helper/branch_helper.rb, line 83 def domains(apps) apps.inject Set.new do |result, k, v| next result unless v result + v.domains end end
download(url, dest, size: nil)
click to toggle source
# File lib/branch_io_cli/helper/branch_helper.rb, line 47 def download(url, dest, size: nil) uri = URI(url) Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http| request = Net::HTTP::Get.new uri http.request request do |response| case response when Net::HTTPSuccess bytes_downloaded = 0 if size pastel = Pastel.new green = pastel.on_green " " yellow = pastel.on_yellow " " progress = TTY::ProgressBar.new "[:bar] :percent (:eta)", total: 50, complete: green, incomplete: yellow end File.open dest, 'w' do |io| response.read_body do |chunk| io.write chunk # print progress bytes_downloaded += chunk.length progress.ratio = bytes_downloaded.to_f / size.to_f if size end end progress.finish if size when Net::HTTPRedirection download response['location'], dest, size: size else raise "Error downloading #{url}: #{response.code} #{response.message}" end end end end
fetch(url, spin: true)
click to toggle source
# File lib/branch_io_cli/helper/branch_helper.rb, line 25 def fetch(url, spin: true) if spin @spinner = TTY::Spinner.new "[:spinner] GET #{url}.", format: :flip @spinner.auto_spin end response = Net::HTTP.get_response URI(url) case response when Net::HTTPSuccess @spinner.success "#{response.code} #{response.message}" if @spinner @spinner = nil response.body when Net::HTTPRedirection fetch response['location'], spin: false else @spinner.error "#{response.code} #{response.message}" if @spinner @spinner = nil raise "Error fetching #{url}: #{response.code} #{response.message}" end end