datahunter 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a521244790f9423ae6bbf23a9ed06ba5f8040541
4
- data.tar.gz: a01ec6c806b025654d8b31ce95755ce590bd65bc
3
+ metadata.gz: f72e1cf6090108c35f52ab1fea70c16ba583824a
4
+ data.tar.gz: e102154ee89785deb91b5cd9416c36d51a1d59fc
5
5
  SHA512:
6
- metadata.gz: ebf3128d53823481c779a0f262fd3d0d8d3cfcf08aba7ceab99cb0d09289b36090ab70b0cfeab5f21bae01bd9e1a04086cdb2d1537104a065958ba4a9f8f8678
7
- data.tar.gz: 6490476020d3b0c4c186c3e1f0ea29c82bdc42ae5f16134a2bec65386ea08eedc8047043a207d377fa7da91ef04c187e62eb87de3025a7ad059f777d720310dc
6
+ metadata.gz: 491133c7dcb9baa827491874484f7754f2c497a9d3c51a23175141cc9eac80de756d11f3254db33442ac25c81630754c51b32a8d360150e400552b71b830777b
7
+ data.tar.gz: c9bf04c8859e107656f2b3071961f527b27ee99e7eccbb9977209a2e36b1537e44f955f77cb44f461c8f35117adecf7cb15e20fa371534f36e401fe9ab404f76
data/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  ## Hunter
6
6
 
7
+ [![Gem Version](https://badge.fury.io/rb/datahunter.svg)](http://badge.fury.io/rb/datahunter) [![Build Status](https://travis-ci.org/NTerpo/datahunter.svg?branch=master)](https://travis-ci.org/NTerpo/datahunter)
8
+
7
9
  We believe there will be more and more data available on the web and the main issue will be to find them and to manage each sources. So we try to do it for you: not by pre-processing them but by orienting you.
8
10
 
9
11
 
@@ -62,7 +64,7 @@ Don't hesitate to [give us any feedback about you experience with Hunter!](https
62
64
  ## Roadmap
63
65
 
64
66
  * more datasets
65
- * download datasets from the terminal
67
+ * download datasets from the terminal (very soon :) )
66
68
  * more generic lib to make the API more easy to reuse
67
69
 
68
70
  ## Contributing
data/Rakefile CHANGED
@@ -1,2 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
2
3
 
4
+ # Default directory to look in is `/specs`
5
+ # Run with `rake spec`
6
+ RSpec::Core::RakeTask.new(:spec) do |task|
7
+ task.rspec_opts = ['--color', '--format documentation']
8
+ end
9
+
10
+ task :default => :spec
data/bin/hunter CHANGED
@@ -7,6 +7,7 @@ require 'commander/import'
7
7
  require 'rest_client'
8
8
  require 'launchy'
9
9
  require 'colorize'
10
+ require 'downloadr'
10
11
 
11
12
  program :version, Datahunter::VERSION
12
13
  program :description, 'Find Open Data directly from your terminal'
@@ -47,8 +48,14 @@ command :find do |c|
47
48
 
48
49
  case ask "### get the data? (y/n)".colorize(:yellow)
49
50
  when 'y'
50
- Launchy.open(datasets[index]["uri"], options = {})
51
+ if datasets[index]["resources"].any?
52
+ Datahunter.download_the_data datasets[index]
53
+ else
54
+ puts "You can't download this dataset directly, but you should from there"
55
+ Launchy.open(datasets[index]["uri"], options = {})
56
+ end
51
57
  break
58
+
52
59
  else # When no
53
60
  if index == 2
54
61
  puts ("You may want to try: ".colorize(:red) + "'$ hunter search #{args[0].downcase}'".colorize(:blue))
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'datahunter/version'
@@ -16,16 +15,19 @@ Gem::Specification.new do |spec|
16
15
  spec.files = `git ls-files -z`.split("\x0")
17
16
  spec.files.reject! { |fn| fn.include? "gif" }
18
17
  spec.files.reject! { |fn| fn.include? "logo" }
18
+ spec.files.reject! { |fn| fn.include? "travis" }
19
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
21
  spec.require_paths = ["lib"]
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.7"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rspec"
25
26
 
26
27
  spec.add_runtime_dependency "json", "~> 1.8.1"
27
28
  spec.add_runtime_dependency "commander", "~> 4.2.1"
28
29
  spec.add_runtime_dependency "rest_client", "~> 1.8.2"
29
30
  spec.add_runtime_dependency "launchy", "~> 2.4.3"
30
31
  spec.add_runtime_dependency "colorize", "~> 0.7.3"
32
+ spec.add_runtime_dependency "downloadr", "0.0.41"
31
33
  end
@@ -1,7 +1,11 @@
1
1
  require 'colorize'
2
2
  require 'launchy'
3
+ require 'downloadr'
4
+ require 'addressable/uri'
3
5
 
4
6
  module Datahunter
7
+
8
+ # DATASETS_URL = "http://localhost:3000/api/datasets/"
5
9
  DATASETS_URL = "http://shrouded-harbor-5877.herokuapp.com/api/datasets/"
6
10
  FEEDBACK_URL = "https://docs.google.com/forms/d/1yNzZjCCXvWHQCbWz4sx-nui3LafeeLcT7FF9T-vbKvw/viewform"
7
11
 
@@ -31,6 +35,31 @@ module Datahunter
31
35
  puts ("score: ".colorize(:green) + "#{dataset["huntscore"]}")
32
36
  puts
33
37
  end
38
+
39
+ def self.print_downloadable_links dataset
40
+ dataset["resources"].each_with_index do |dl, i|
41
+ puts ("#{i}. ".colorize(:yellow) +
42
+ "#{dl["title"]} - ".colorize(:blue) +
43
+ "#{dl["format"]}".colorize(:green))
44
+ end
45
+ end
46
+
47
+ def self.download_file url
48
+ puts "Start downloading..."
49
+ Downloadr::HTTP.download(url)
50
+ puts "Your file has been downloaded, try to $ ls ;D".colorize(:green)
51
+ end
52
+
53
+ def self.download_the_data dataset
54
+ print_downloadable_links dataset
55
+ dl = ask "### which one? (0/1/...)".colorize(:yellow)
56
+ dl = dl.to_i
57
+ if dataset["resources"][dl]["format"] == "HTML"
58
+ Launchy.open(dataset["resources"][dl]["url"], options = {})
59
+ else
60
+ download_file dataset["resources"][dl]["url"]
61
+ end
62
+ end
34
63
 
35
64
  def self.print_feedback_request
36
65
  case ask "### give feedback? (y/n)".colorize(:yellow)
@@ -1,3 +1,3 @@
1
1
  module Datahunter
2
- VERSION = "0.0.5"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Datahunter Base" do
4
+
5
+ before(:each) do
6
+ DATASETS_URL = "http://shrouded-harbor-5877.herokuapp.com/api/datasets/"
7
+ end
8
+
9
+ describe 'create correct datasets_url' do
10
+ it 'should return a correct url' do
11
+ url = Datahunter.datasets_url("population", "france", "2010")
12
+ expect(url).to eq("#{DATASETS_URL}?tags=population&spatial=france&temporal=2010")
13
+ end
14
+ end
15
+ end
@@ -0,0 +1 @@
1
+ require 'datahunter'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datahunter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Terpo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-07 00:00:00.000000000 Z
11
+ date: 2014-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: json
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +122,20 @@ dependencies:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
124
  version: 0.7.3
125
+ - !ruby/object:Gem::Dependency
126
+ name: downloadr
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '='
130
+ - !ruby/object:Gem::Version
131
+ version: 0.0.41
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '='
137
+ - !ruby/object:Gem::Version
138
+ version: 0.0.41
111
139
  description: Command line interface to find open datasets via the Hunter API
112
140
  email:
113
141
  - nicolas.terpolilli@gmail.com
@@ -128,6 +156,8 @@ files:
128
156
  - lib/datahunter.rb
129
157
  - lib/datahunter/base.rb
130
158
  - lib/datahunter/version.rb
159
+ - spec/datahunter_spec.rb
160
+ - spec/spec_helper.rb
131
161
  homepage: https://github.com/NTerpo/datahunter
132
162
  licenses:
133
163
  - MIT
@@ -152,4 +182,6 @@ rubygems_version: 2.4.5
152
182
  signing_key:
153
183
  specification_version: 4
154
184
  summary: A Command Line Interface to find Open Datasets
155
- test_files: []
185
+ test_files:
186
+ - spec/datahunter_spec.rb
187
+ - spec/spec_helper.rb