module Datahunter

Constants

DATASETS_URL

DATASETS_URL = “localhost:3000/api/datasets/”

FEEDBACK_URL
REQUEST_URL
VERSION

Public Class Methods

clean_string(string) click to toggle source
# File lib/datahunter/base.rb, line 25
def self.clean_string string
  string
    .gsub(/\n/, "")
    .gsub(/\r/, "")
    .gsub(/--/, "")
    .gsub(/  /, " ")
end
datasets_url(query) click to toggle source
# File lib/datahunter/base.rb, line 33
def self.datasets_url query
  "#{DATASETS_URL}#{Datahunter.query_string_builder query}"
end
download_file(url, format="", alt_url="") click to toggle source
# File lib/datahunter/base.rb, line 78
def self.download_file url, format="", alt_url=""
  uri = Addressable::URI.parse(url)
  extension = Datahunter.parse_extension_from_uri uri

  if !@extensions.include? extension
    Launchy.open(url, options = {})
  else
    location = Dir.pwd
    uri = Addressable::URI.parse(url)
    file_name = uri.basename
    loc = location + "/" + file_name

    puts ("### Create/overwrite #{loc}? (RET) ".colorize(:yellow) +
          "Rename? (r) ".colorize(:cyan) +
          "abort? (q)")
    
    case ask "> "
    when 'rename'
      puts "Path/to/filename: ".colorize(:yellow)
      loc = ask "> "
    when 'n'
      abort("Ok then")
    end
    puts "### Start downloading..."
    Downloadr::HTTP.download(url, loc)
    puts "### Your file has been downloaded ;)".colorize(:green)
    Datahunter.print_excuse_and_alternative_url_message alt_url
  end
end
download_the_data(dataset) click to toggle source
# File lib/datahunter/base.rb, line 108
def self.download_the_data dataset
  resources = dataset["resources"]
  number_of_downloadable_links = resources.size

  if number_of_downloadable_links == 1
    dl = 0
  else
    Datahunter.print_downloadable_links resources
    puts "### which one? (0/1/...)".colorize(:yellow)
    dl = ask("> ", Integer) {|i| i.in = 0..(number_of_downloadable_links - 1)}
  end
  
  dl = dl.to_i
  Datahunter.download_file(resources[dl]["url"], resources[dl]["format"], dataset["uri"])
end
ds_url(id) click to toggle source
# File lib/datahunter/base.rb, line 37
def self.ds_url id
  "#{DATASETS_URL}#{id}"    
end
get_dataset(dataset) click to toggle source
# File lib/datahunter/base.rb, line 133
def self.get_dataset dataset
  if dataset.has_key?("resources") and dataset["resources"].any?
    Datahunter.download_the_data dataset
  else
    Datahunter.open_in_browser dataset["uri"]
  end
end
open_in_browser(url) click to toggle source
# File lib/datahunter/base.rb, line 124
def self.open_in_browser url
  if url =~ /\A#{URI::regexp}\z/
    puts "You can't download this dataset directly, but you should from there"
    Launchy.open(url, options = {})
  else
    Datahunter.print_bad_uri_message
  end
end
parse_extension_from_uri(uri) click to toggle source
# File lib/datahunter/base.rb, line 74
def self.parse_extension_from_uri uri
  uri.basename.split(".").last
end
print_bad_uri_message() click to toggle source
print_coll_of_datasets_info_light(coll_of_datasets) click to toggle source
print_dataset_info(dataset) click to toggle source
print_excuse_and_alternative_url_message(alt_url="") click to toggle source
print_feedback_request() click to toggle source

Feedback requests

print_no_dataset_message() click to toggle source

Messages

print_request_dataset_message() click to toggle source
query_string_builder(string) click to toggle source
# File lib/datahunter/base.rb, line 16
def self.query_string_builder string
  s = string
      .strip
      .gsub(/ {3,}/, ' ')
      .gsub(/ {2,}/, ' ')
      .gsub(/ /, '+')
  "?q=#{s}"
end