glean 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
  gemspec
data/Gemfile.lock CHANGED
@@ -1,41 +1,72 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- glean (0.0.9)
4
+ glean (0.0.10)
5
5
  git (= 1.2.5)
6
6
  gli (= 2.5.4)
7
+ hashie (= 2.0.3)
8
+ octokit (= 1.24.0)
7
9
  toml (= 0.0.3)
8
10
 
9
11
  GEM
10
- remote: http://rubygems.org/
12
+ remote: https://rubygems.org/
11
13
  specs:
12
- aruba (0.5.1)
13
- childprocess (~> 0.3.6)
14
- cucumber (>= 1.1.1)
15
- rspec-expectations (>= 2.7.0)
14
+ addressable (2.3.3)
16
15
  blankslate (2.1.2.4)
17
- builder (3.1.4)
18
- childprocess (0.3.8)
19
- ffi (~> 1.0, >= 1.0.11)
20
- cucumber (1.2.1)
21
- builder (>= 2.1.2)
22
- diff-lcs (>= 1.1.3)
23
- gherkin (~> 2.11.0)
24
- json (>= 1.4.6)
25
- diff-lcs (1.1.3)
26
- ffi (1.3.1)
27
- gherkin (2.11.6)
28
- json (>= 1.7.6)
16
+ coderay (1.0.9)
17
+ diff-lcs (1.2.1)
18
+ faraday (0.8.7)
19
+ multipart-post (~> 1.1)
20
+ faraday_middleware (0.9.0)
21
+ faraday (>= 0.7.4, < 0.9)
29
22
  git (1.2.5)
30
23
  gli (2.5.4)
31
- json (1.7.7)
24
+ guard (1.6.2)
25
+ listen (>= 0.6.0)
26
+ lumberjack (>= 1.0.2)
27
+ pry (>= 0.9.10)
28
+ terminal-table (>= 1.4.3)
29
+ thor (>= 0.14.6)
30
+ guard-rspec (2.5.1)
31
+ guard (>= 1.1)
32
+ rspec (~> 2.11)
33
+ hashie (2.0.3)
34
+ listen (0.7.3)
35
+ lumberjack (1.0.3)
36
+ method_source (0.8.1)
37
+ multi_json (1.7.2)
38
+ multipart-post (1.2.0)
39
+ netrc (0.7.7)
40
+ octokit (1.24.0)
41
+ addressable (~> 2.2)
42
+ faraday (~> 0.8)
43
+ faraday_middleware (~> 0.9)
44
+ hashie (~> 2.0)
45
+ multi_json (~> 1.3)
46
+ netrc (~> 0.7.7)
32
47
  parslet (1.5.0)
33
48
  blankslate (~> 2.0)
49
+ pry (0.9.12)
50
+ coderay (~> 1.0.5)
51
+ method_source (~> 0.8)
52
+ slop (~> 3.4)
34
53
  rake (10.0.3)
35
- rdoc (3.12.1)
36
- json (~> 1.4)
37
- rspec-expectations (2.12.1)
38
- diff-lcs (~> 1.1.3)
54
+ rb-fsevent (0.9.3)
55
+ rspec (2.13.0)
56
+ rspec-core (~> 2.13.0)
57
+ rspec-expectations (~> 2.13.0)
58
+ rspec-mocks (~> 2.13.0)
59
+ rspec-core (2.13.1)
60
+ rspec-expectations (2.13.0)
61
+ diff-lcs (>= 1.1.3, < 2.0)
62
+ rspec-mocks (2.13.0)
63
+ rspec-nc (0.0.5)
64
+ rspec (~> 2.9)
65
+ terminal-notifier (~> 1.4.2)
66
+ slop (3.4.4)
67
+ terminal-notifier (1.4.2)
68
+ terminal-table (1.4.5)
69
+ thor (0.17.0)
39
70
  toml (0.0.3)
40
71
  parslet
41
72
 
@@ -43,7 +74,10 @@ PLATFORMS
43
74
  ruby
44
75
 
45
76
  DEPENDENCIES
46
- aruba
47
77
  glean!
78
+ guard-rspec
79
+ pry
48
80
  rake
49
- rdoc
81
+ rb-fsevent
82
+ rspec
83
+ rspec-nc
data/Guardfile ADDED
@@ -0,0 +1,22 @@
1
+ require 'nc'
2
+
3
+ guard 'rspec', :cli => "--color --format=doc --format=Nc" do
4
+ watch(%r{^spec/.+_spec\.rb$})
5
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
6
+ watch('spec/spec_helper.rb') { "spec" }
7
+
8
+ # Rails example
9
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
10
+ watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
11
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
12
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
13
+ watch('config/routes.rb') { "spec/routing" }
14
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
15
+
16
+ # Capybara features specs
17
+ watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
18
+
19
+ # Turnip features and steps
20
+ watch(%r{^spec/acceptance/(.+)\.feature$})
21
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
22
+ end
data/Rakefile CHANGED
@@ -3,45 +3,6 @@ require 'rake/clean'
3
3
  require 'rubygems'
4
4
  require 'rubygems/package_task'
5
5
  require 'rdoc/task'
6
- require 'cucumber'
7
- require 'cucumber/rake/task'
8
6
  Bundler::GemHelper.install_tasks
9
7
 
10
- Rake::RDocTask.new do |rd|
11
- rd.main = "README.rdoc"
12
- rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
13
- rd.title = 'Your application title'
14
- end
15
-
16
- spec = eval(File.read('glean.gemspec'))
17
-
18
- Gem::PackageTask.new(spec) do |pkg|
19
- end
20
- CUKE_RESULTS = 'tmp/results.html'
21
- CLEAN << CUKE_RESULTS
22
- desc 'Run features'
23
- Cucumber::Rake::Task.new(:features) do |t|
24
- opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
25
- opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
26
- t.cucumber_opts = opts
27
- t.fork = false
28
- end
29
-
30
- desc 'Run features tagged as work-in-progress (@wip)'
31
- Cucumber::Rake::Task.new('features:wip') do |t|
32
- tag_opts = ' --tags ~@pending'
33
- tag_opts = ' --tags @wip'
34
- t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
35
- t.fork = false
36
- end
37
-
38
- task :cucumber => :features
39
- task 'cucumber:wip' => 'features:wip'
40
- task :wip => 'features:wip'
41
- require 'rake/testtask'
42
- Rake::TestTask.new do |t|
43
- t.libs << "test"
44
- t.test_files = FileList['test/*_test.rb']
45
- end
46
-
47
- task :default => [:test,:features]
8
+ task :default => []
data/bin/glean CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'gli'
3
3
  require 'glean'
4
+ require 'base64'
4
5
 
5
6
  include GLI::App
6
7
 
@@ -8,53 +9,49 @@ program_desc 'A data management tool for humans'
8
9
 
9
10
  version Glean::VERSION
10
11
 
11
- desc 'Describe some switch here'
12
- switch [:s,:switch]
13
-
14
- desc 'Describe some flag here'
15
- default_value 'the default'
16
- arg_name 'The name of the argument'
17
- flag [:f,:flagname]
18
-
19
- desc 'Describe search here'
20
- arg_name 'Describe arguments to search here'
21
- command :search do |c|
22
- c.desc 'Describe a switch to search'
23
- c.switch :s
24
-
25
- c.desc 'Describe a flag to search'
26
- c.default_value 'default'
27
- c.flag :f
28
- c.action do |global_options,options,args|
29
-
30
- # Your command logic here
31
-
32
- # If you have any errors, just raise them
33
- # raise "that command made no sense"
34
-
35
- puts "search command ran"
36
- end
37
- end
38
-
39
12
  desc 'Download a dataset by name'
40
- arg_name 'dataset_identifier'
13
+ arg_name "<dataset> [<path>]"
41
14
  command :get do |c|
42
15
  c.action do |global_options,options,args|
43
16
  dataset = Glean::Dataset.new(args[0])
44
17
  end
45
18
  end
46
19
 
47
- desc 'Describe out here'
48
- arg_name 'Describe arguments to out here'
49
- command :out do |c|
20
+ desc 'Export a dataset'
21
+ arg_name '<dataset>'
22
+ command :export do |c|
50
23
  c.action do |global_options,options,args|
51
24
  dataset = Glean::Dataset.new(args[0])
52
- dataset.each_datum do |datum|
25
+ dataset.each do |datum|
53
26
  puts datum
54
27
  end
55
28
  end
56
29
  end
57
30
 
31
+ desc 'Show dataset information'
32
+ arg_name '<dataset>'
33
+ command :info do |c|
34
+ c.action do |global_options,options,args|
35
+ identifier = Glean::Dataset.resolve_identifier(args[0])
36
+ begin
37
+ readme = Octokit.readme(identifier)
38
+ puts Base64.decode64(readme.content)
39
+ rescue
40
+ puts "No extended information available"
41
+ end
42
+ end
43
+ end
44
+
45
+ desc 'Search for datasets'
46
+ arg_name '<query>'
47
+ command :search do |c|
48
+ c.action do |global_options,options,args|
49
+ Octokit.organization_repositories('glean').each do |repo|
50
+ puts "#{repo.name} -- #{repo.description}" unless repo.name =~ /^glean.*$/
51
+ end
52
+ end
53
+ end
54
+
58
55
  pre do |global,command,options,args|
59
56
  # Pre logic here
60
57
  # Return true to proceed; false to abort and not call the
data/glean.gemspec CHANGED
@@ -11,14 +11,18 @@ spec = Gem::Specification.new do |s|
11
11
  s.files = `git ls-files`.split($/)
12
12
  s.require_paths << 'lib'
13
13
  s.has_rdoc = true
14
- s.extra_rdoc_files = ['README.rdoc','glean.rdoc']
15
14
  s.rdoc_options << '--title' << 'glean' << '--main' << 'README.rdoc' << '-ri'
16
15
  s.bindir = 'bin'
17
16
  s.executables << 'glean'
18
17
  s.add_development_dependency('rake')
19
- s.add_development_dependency('rdoc')
20
- s.add_development_dependency('aruba')
18
+ s.add_development_dependency('rspec')
19
+ s.add_development_dependency('guard-rspec')
20
+ s.add_development_dependency('rb-fsevent')
21
+ s.add_development_dependency('rspec-nc')
22
+ s.add_development_dependency('pry')
21
23
  s.add_runtime_dependency('gli','2.5.4')
22
24
  s.add_runtime_dependency('git','1.2.5')
23
25
  s.add_runtime_dependency('toml', '0.0.3')
26
+ s.add_runtime_dependency('octokit', '1.24.0')
27
+ s.add_runtime_dependency('hashie', '2.0.3')
24
28
  end
data/lib/glean/dataset.rb CHANGED
@@ -2,8 +2,16 @@ module Glean
2
2
  class Dataset
3
3
  attr_reader :identifier
4
4
 
5
+ def self.resolve_identifier(identifier)
6
+ if identifier.include?("/")
7
+ identifier
8
+ else
9
+ "glean/#{identifier}"
10
+ end
11
+ end
12
+
5
13
  def initialize(identifier, dir="~")
6
- @identifier = identifier
14
+ @identifier = Dataset.resolve_identifier(identifier)
7
15
  @dir = dir
8
16
  sync
9
17
  end
@@ -16,19 +24,23 @@ module Glean
16
24
  File.join(storage_path, identifier)
17
25
  end
18
26
 
27
+ def repo_url
28
+ "http://github.com/#{identifier}"
29
+ end
30
+
19
31
  def sync
20
32
  Dir.mkdir(storage_path) unless File.exists?(storage_path)
21
33
  begin
22
34
  g = Git.open(path)
23
35
  g.pull
24
36
  rescue
25
- Git.clone("http://github.com/#{identifier}", identifier, :path => storage_path)
37
+ Git.clone(repo_url, identifier, :path => storage_path)
26
38
  end
27
39
  end
28
40
 
29
41
  def each
30
- Dir.glob(File.join(path, "**/*.toml")) do |f|
31
- yield TOML.load_file(f)
42
+ Dir.glob(File.join(path, "**", "*.toml")) do |f|
43
+ yield Hashie::Mash.new(TOML.load_file(f))
32
44
  end
33
45
  end
34
46
  end
data/lib/glean/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Glean
2
- VERSION = '0.0.9'
2
+ VERSION = '0.0.10'
3
3
  end
data/lib/glean.rb CHANGED
@@ -3,5 +3,7 @@ require 'glean/dataset'
3
3
 
4
4
  require 'git'
5
5
  require 'toml'
6
+ require 'octokit'
7
+ require 'hashie/mash'
6
8
  # Add requires for other files you add to your project here, so
7
9
  # you just need to require this one file in your bin file
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Glean::Dataset" do
4
+ subject(:dataset) { Glean::Dataset.new("glean/countries", "~") }
5
+
6
+ describe "#identifier" do
7
+
8
+ it "should return the identifier" do
9
+ expect(dataset.identifier).to eq("glean/countries")
10
+ end
11
+ end
12
+ end
@@ -0,0 +1 @@
1
+ require 'glean'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glean
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-25 00:00:00.000000000 Z
12
+ date: 2013-04-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -28,7 +28,7 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
- name: rdoc
31
+ name: rspec
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
@@ -44,7 +44,55 @@ dependencies:
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
46
  - !ruby/object:Gem::Dependency
47
- name: aruba
47
+ name: guard-rspec
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rb-fsevent
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec-nc
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: pry
48
96
  requirement: !ruby/object:Gem::Requirement
49
97
  none: false
50
98
  requirements:
@@ -107,32 +155,58 @@ dependencies:
107
155
  - - '='
108
156
  - !ruby/object:Gem::Version
109
157
  version: 0.0.3
158
+ - !ruby/object:Gem::Dependency
159
+ name: octokit
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - '='
164
+ - !ruby/object:Gem::Version
165
+ version: 1.24.0
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - '='
172
+ - !ruby/object:Gem::Version
173
+ version: 1.24.0
174
+ - !ruby/object:Gem::Dependency
175
+ name: hashie
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - '='
180
+ - !ruby/object:Gem::Version
181
+ version: 2.0.3
182
+ type: :runtime
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - '='
188
+ - !ruby/object:Gem::Version
189
+ version: 2.0.3
110
190
  description:
111
191
  email: public@johndbritton.com
112
192
  executables:
113
193
  - glean
114
194
  extensions: []
115
- extra_rdoc_files:
116
- - README.rdoc
117
- - glean.rdoc
195
+ extra_rdoc_files: []
118
196
  files:
119
197
  - .gitignore
120
198
  - Gemfile
121
199
  - Gemfile.lock
200
+ - Guardfile
122
201
  - README.md
123
- - README.rdoc
124
202
  - Rakefile
125
203
  - bin/glean
126
- - features/glean.feature
127
- - features/step_definitions/glean_steps.rb
128
- - features/support/env.rb
129
204
  - glean.gemspec
130
- - glean.rdoc
131
205
  - lib/glean.rb
132
206
  - lib/glean/dataset.rb
133
207
  - lib/glean/version.rb
134
- - test/default_test.rb
135
- - test/test_helper.rb
208
+ - spec/glean/models/dataset_spec.rb
209
+ - spec/spec_helper.rb
136
210
  homepage: http://github.com/johndbritton/glean
137
211
  licenses: []
138
212
  post_install_message:
data/README.rdoc DELETED
@@ -1,6 +0,0 @@
1
- = glean
2
-
3
- Describe your project here
4
-
5
- :include:glean.rdoc
6
-
@@ -1,8 +0,0 @@
1
- Feature: My bootstrapped app kinda works
2
- In order to get going on coding my awesome app
3
- I want to have aruba and cucumber setup
4
- So I don't have to do it myself
5
-
6
- Scenario: App just runs
7
- When I get help for "glean"
8
- Then the exit status should be 0
@@ -1,6 +0,0 @@
1
- When /^I get help for "([^"]*)"$/ do |app_name|
2
- @app_name = app_name
3
- step %(I run `#{app_name} help`)
4
- end
5
-
6
- # Add more step definitions here
@@ -1,15 +0,0 @@
1
- require 'aruba/cucumber'
2
-
3
- ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
4
- LIB_DIR = File.join(File.expand_path(File.dirname(__FILE__)),'..','..','lib')
5
-
6
- Before do
7
- # Using "announce" causes massive warnings on 1.9.2
8
- @puts = true
9
- @original_rubylib = ENV['RUBYLIB']
10
- ENV['RUBYLIB'] = LIB_DIR + File::PATH_SEPARATOR + ENV['RUBYLIB'].to_s
11
- end
12
-
13
- After do
14
- ENV['RUBYLIB'] = @original_rubylib
15
- end
data/glean.rdoc DELETED
@@ -1,5 +0,0 @@
1
- = glean
2
-
3
- Generate this with
4
- glean rdoc
5
- After you have described your command line interface
data/test/default_test.rb DELETED
@@ -1,14 +0,0 @@
1
- require 'test_helper'
2
-
3
- class DefaultTest < Test::Unit::TestCase
4
-
5
- def setup
6
- end
7
-
8
- def teardown
9
- end
10
-
11
- def test_the_truth
12
- assert true
13
- end
14
- end
data/test/test_helper.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'test/unit'
2
-
3
- # Add test libraries you want to use here, e.g. mocha
4
-
5
- class Test::Unit::TestCase
6
-
7
- # Add global extensions to the test case class here
8
-
9
- end