lib/mite-backup.rb in mite-backup-0.1.2 vs lib/mite-backup.rb in mite-backup-0.1.3

- old
+ new

@@ -45,17 +45,19 @@ end private def runnable? - failed "Please provide your account name with --account [ACCOUNT]." unless @account + failed "Please provide your account subdomain with --account [ACCOUNT-SUBDOMAIN]." unless @account failed "Please provide your mite.users email with --email [EMAIL]." unless @email failed "Please provide your mite.users password with --password [PASSWORD]." unless @password end def create - @id = parse_json(perform_request(Net::HTTP::Post.new("/account/backup.json")))["id"] + @id = parse_json(perform_request(Net::HTTP::Post.new("/account/backup.json")){ |code| + "Could not find any account located at #{domain}" if code == "404" + })["id"] end def check MAX_CHECKS.times do |i| sleep(SLEEP_BEFORE_EACH_CHECK) @@ -84,24 +86,29 @@ request['User-Agent'] = USER_AGENT response = mite.request(request) if response.code == "401" failed "Could not authenticate with email #{@email.inspect} and provided password. The user needs to be an admin or the owner of the mite.account!" elsif !["200", "201"].include?(response.code) - failed "mite responded with irregular code #{response.code}" + message = block_given? && yield(response.code) + failed(message || "mite responded with irregular code #{response.code}") end response.body end def parse_json(string) MultiJson.decode(string)["backup"] end def mite @mite ||= begin - mite = Net::HTTP.new(URI.parse("https://#{@account}.mite.yo.lk/").host, 443) + mite = Net::HTTP.new(URI.parse(domain).host, 443) mite.use_ssl = true mite end + end + + def domain + "https://#{@account}.mite.yo.lk/" end def failed(reason) $stderr.puts "Failed: #{reason}" exit(1)