glean 0.0.9 → 0.0.10

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.
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