andy 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.9.3"
4
+
5
+ script: bundle exec rake spec cucumber_api
data/Gemfile CHANGED
@@ -3,7 +3,15 @@ source 'https://rubygems.org'
3
3
  gem 'thor'
4
4
  gem 'jeweler'
5
5
 
6
+
6
7
  group :test do
7
- gem 'aruba'
8
- gem 'rspec'
9
- end
8
+ gem 'aruba'
9
+ gem 'rspec'
10
+ gem 'vcr'
11
+ gem 'fakeweb'
12
+ gem 'webmock'
13
+ end
14
+
15
+ group :development do
16
+ gem 'andy', :path => '.'
17
+ end
@@ -1,6 +1,14 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ andy (0.1.0)
5
+ jeweler
6
+ thor
7
+
1
8
  GEM
2
9
  remote: https://rubygems.org/
3
10
  specs:
11
+ addressable (2.3.4)
4
12
  aruba (0.5.3)
5
13
  childprocess (>= 0.3.6)
6
14
  cucumber (>= 1.1.1)
@@ -8,12 +16,14 @@ GEM
8
16
  builder (3.2.2)
9
17
  childprocess (0.3.9)
10
18
  ffi (~> 1.0, >= 1.0.11)
19
+ crack (0.3.2)
11
20
  cucumber (1.3.2)
12
21
  builder (>= 2.1.2)
13
22
  diff-lcs (>= 1.1.3)
14
23
  gherkin (~> 2.12.0)
15
24
  multi_json (~> 1.3)
16
25
  diff-lcs (1.2.4)
26
+ fakeweb (1.3.0)
17
27
  ffi (1.9.0)
18
28
  gherkin (2.12.0)
19
29
  multi_json (~> 1.3)
@@ -37,12 +47,20 @@ GEM
37
47
  diff-lcs (>= 1.1.3, < 2.0)
38
48
  rspec-mocks (2.13.1)
39
49
  thor (0.15.4)
50
+ vcr (2.5.0)
51
+ webmock (1.12.3)
52
+ addressable (>= 2.2.7)
53
+ crack (>= 0.3.2)
40
54
 
41
55
  PLATFORMS
42
56
  ruby
43
57
 
44
58
  DEPENDENCIES
59
+ andy!
45
60
  aruba
61
+ fakeweb
46
62
  jeweler
47
63
  rspec
48
64
  thor
65
+ vcr
66
+ webmock
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "andy"
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["George McIntosh"]
12
- s.date = "2013-06-16"
12
+ s.date = "2013-07-04"
13
13
  s.description = "Generate a skeleton project to get you started"
14
14
  s.email = "george@georgemcintosh.com"
15
15
  s.executables = ["andy"]
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
17
17
  "README.md"
18
18
  ]
19
19
  s.files = [
20
+ ".travis.yml",
20
21
  "Gemfile",
21
22
  "Gemfile.lock",
22
23
  "README.md",
@@ -33,9 +34,15 @@ Gem::Specification.new do |s|
33
34
  "features/gem/info.feature",
34
35
  "features/gem/support/env.rb",
35
36
  "features/gem/support/gem.rb",
37
+ "features_new/cassettes/The_list_CLI/List_all_pints.yml",
38
+ "features_new/cassettes/The_list_CLI/List_remote_pints.yml",
39
+ "features_new/list.feature",
40
+ "features_new/step_definitions/aruba_ext.rb",
41
+ "features_new/support/env.rb",
36
42
  "install",
37
43
  "lib/andy.rb",
38
44
  "lib/andy.yaml",
45
+ "lib/andy/api/fetch_api.rb",
39
46
  "lib/andy/api/install_api.rb",
40
47
  "lib/andy/api/list.rb",
41
48
  "lib/andy/cli/install_cli.rb",
@@ -46,9 +53,11 @@ Gem::Specification.new do |s|
46
53
  "lib/andy/pint.rb",
47
54
  "lib/andy/pint_mug.rb",
48
55
  "lib/andy_thor.rb",
56
+ "spec/api/fetch_api_spec.rb",
49
57
  "spec/api/install_spec.rb",
50
58
  "spec/api/list_api_spec.rb",
51
59
  "spec/config_spec.rb",
60
+ "spec/fixtures/cassettes/official_remote_catalog.yml",
52
61
  "spec/pint_spec.rb",
53
62
  "spec/spec_helper.rb",
54
63
  "spec/support/user_home/andy_home/pints/basic_web/css/core.css.erb",
@@ -78,13 +87,16 @@ Gem::Specification.new do |s|
78
87
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
79
88
  s.add_runtime_dependency(%q<thor>, [">= 0"])
80
89
  s.add_runtime_dependency(%q<jeweler>, [">= 0"])
90
+ s.add_development_dependency(%q<andy>, [">= 0"])
81
91
  else
82
92
  s.add_dependency(%q<thor>, [">= 0"])
83
93
  s.add_dependency(%q<jeweler>, [">= 0"])
94
+ s.add_dependency(%q<andy>, [">= 0"])
84
95
  end
85
96
  else
86
97
  s.add_dependency(%q<thor>, [">= 0"])
87
98
  s.add_dependency(%q<jeweler>, [">= 0"])
99
+ s.add_dependency(%q<andy>, [">= 0"])
88
100
  end
89
101
  end
90
102
 
data/bin/andy CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'andy_thor'
3
3
 
4
- ENV['ANDY_HOME'] = "#{ENV['HOME']}/.andy"
4
+ ENV['ANDY_HOME'] = ENV['ANDY_HOME'] || "#{ENV['HOME']}/.andy"
5
5
  Andy::CLI.start(ARGV)
@@ -3,7 +3,7 @@ Feature: Generate
3
3
  As a user
4
4
  I want to run Andy
5
5
 
6
- @gem
6
+
7
7
  Scenario: Layout
8
8
  When I run `andy new test-app`
9
9
  Then the following directories should exist:
@@ -3,7 +3,7 @@ Feature: Get info
3
3
  As a user
4
4
  I want to run 'andy list'
5
5
 
6
- @gem
6
+
7
7
  Scenario: List all pints
8
8
  When I run `andy list`
9
9
  Then the output should contain:
@@ -0,0 +1,63 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.github.com/orgs/andy-pint-repository/repos
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - GitHub.com
21
+ Date:
22
+ - Sat, 29 Jun 2013 14:47:48 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Connection:
26
+ - keep-alive
27
+ Status:
28
+ - 200 OK
29
+ X-Ratelimit-Limit:
30
+ - '60'
31
+ X-Ratelimit-Remaining:
32
+ - '37'
33
+ X-Ratelimit-Reset:
34
+ - '1372518289'
35
+ Vary:
36
+ - Accept
37
+ - Accept-Encoding
38
+ Cache-Control:
39
+ - public, max-age=60, s-maxage=60
40
+ Last-Modified:
41
+ - Tue, 25 Jun 2013 10:53:51 GMT
42
+ Etag:
43
+ - ! '"54892ecb367d2a52e52f4351d7ae0de7"'
44
+ X-Github-Media-Type:
45
+ - github.beta
46
+ X-Content-Type-Options:
47
+ - nosniff
48
+ Content-Length:
49
+ - '16041'
50
+ Access-Control-Allow-Credentials:
51
+ - 'true'
52
+ Access-Control-Expose-Headers:
53
+ - ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes
54
+ Access-Control-Allow-Origin:
55
+ - ! '*'
56
+ body:
57
+ encoding: US-ASCII
58
+ string: ! '[{"id":10726217,"name":"basic-web","full_name":"andy-pint-repository/basic-web","owner":{"login":"andy-pint-repository","id":4713170,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/andy-pint-repository","html_url":"https://github.com/andy-pint-repository","followers_url":"https://api.github.com/users/andy-pint-repository/followers","following_url":"https://api.github.com/users/andy-pint-repository/following{/other_user}","gists_url":"https://api.github.com/users/andy-pint-repository/gists{/gist_id}","starred_url":"https://api.github.com/users/andy-pint-repository/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andy-pint-repository/subscriptions","organizations_url":"https://api.github.com/users/andy-pint-repository/orgs","repos_url":"https://api.github.com/users/andy-pint-repository/repos","events_url":"https://api.github.com/users/andy-pint-repository/events{/privacy}","received_events_url":"https://api.github.com/users/andy-pint-repository/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/andy-pint-repository/basic-web","description":"A
59
+ very basic static web pint for Andy","fork":false,"url":"https://api.github.com/repos/andy-pint-repository/basic-web","forks_url":"https://api.github.com/repos/andy-pint-repository/basic-web/forks","keys_url":"https://api.github.com/repos/andy-pint-repository/basic-web/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andy-pint-repository/basic-web/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andy-pint-repository/basic-web/teams","hooks_url":"https://api.github.com/repos/andy-pint-repository/basic-web/hooks","issue_events_url":"https://api.github.com/repos/andy-pint-repository/basic-web/issues/events{/number}","events_url":"https://api.github.com/repos/andy-pint-repository/basic-web/events","assignees_url":"https://api.github.com/repos/andy-pint-repository/basic-web/assignees{/user}","branches_url":"https://api.github.com/repos/andy-pint-repository/basic-web/branches{/branch}","tags_url":"https://api.github.com/repos/andy-pint-repository/basic-web/tags","blobs_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/refs{/sha}","trees_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andy-pint-repository/basic-web/statuses/{sha}","languages_url":"https://api.github.com/repos/andy-pint-repository/basic-web/languages","stargazers_url":"https://api.github.com/repos/andy-pint-repository/basic-web/stargazers","contributors_url":"https://api.github.com/repos/andy-pint-repository/basic-web/contributors","subscribers_url":"https://api.github.com/repos/andy-pint-repository/basic-web/subscribers","subscription_url":"https://api.github.com/repos/andy-pint-repository/basic-web/subscription","commits_url":"https://api.github.com/repos/andy-pint-repository/basic-web/commits{/sha}","git_commits_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/commits{/sha}","comments_url":"https://api.github.com/repos/andy-pint-repository/basic-web/comments{/number}","issue_comment_url":"https://api.github.com/repos/andy-pint-repository/basic-web/issues/comments/{number}","contents_url":"https://api.github.com/repos/andy-pint-repository/basic-web/contents/{+path}","compare_url":"https://api.github.com/repos/andy-pint-repository/basic-web/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andy-pint-repository/basic-web/merges","archive_url":"https://api.github.com/repos/andy-pint-repository/basic-web/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andy-pint-repository/basic-web/downloads","issues_url":"https://api.github.com/repos/andy-pint-repository/basic-web/issues{/number}","pulls_url":"https://api.github.com/repos/andy-pint-repository/basic-web/pulls{/number}","milestones_url":"https://api.github.com/repos/andy-pint-repository/basic-web/milestones{/number}","notifications_url":"https://api.github.com/repos/andy-pint-repository/basic-web/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andy-pint-repository/basic-web/labels{/name}","created_at":"2013-06-16T21:52:14Z","updated_at":"2013-06-16T21:52:59Z","pushed_at":"2013-06-16T21:52:59Z","git_url":"git://github.com/andy-pint-repository/basic-web.git","ssh_url":"git@github.com:andy-pint-repository/basic-web.git","clone_url":"https://github.com/andy-pint-repository/basic-web.git","svn_url":"https://github.com/andy-pint-repository/basic-web","homepage":null,"size":116,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":10726233,"name":"jquery-basic","full_name":"andy-pint-repository/jquery-basic","owner":{"login":"andy-pint-repository","id":4713170,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/andy-pint-repository","html_url":"https://github.com/andy-pint-repository","followers_url":"https://api.github.com/users/andy-pint-repository/followers","following_url":"https://api.github.com/users/andy-pint-repository/following{/other_user}","gists_url":"https://api.github.com/users/andy-pint-repository/gists{/gist_id}","starred_url":"https://api.github.com/users/andy-pint-repository/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andy-pint-repository/subscriptions","organizations_url":"https://api.github.com/users/andy-pint-repository/orgs","repos_url":"https://api.github.com/users/andy-pint-repository/repos","events_url":"https://api.github.com/users/andy-pint-repository/events{/privacy}","received_events_url":"https://api.github.com/users/andy-pint-repository/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/andy-pint-repository/jquery-basic","description":"A
60
+ static web site pint with CDN-hosted JQuery","fork":false,"url":"https://api.github.com/repos/andy-pint-repository/jquery-basic","forks_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/forks","keys_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/teams","hooks_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/hooks","issue_events_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/issues/events{/number}","events_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/events","assignees_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/assignees{/user}","branches_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/branches{/branch}","tags_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/tags","blobs_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/refs{/sha}","trees_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/statuses/{sha}","languages_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/languages","stargazers_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/stargazers","contributors_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/contributors","subscribers_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/subscribers","subscription_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/subscription","commits_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/commits{/sha}","git_commits_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/commits{/sha}","comments_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/comments{/number}","issue_comment_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/issues/comments/{number}","contents_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/contents/{+path}","compare_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/merges","archive_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/downloads","issues_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/issues{/number}","pulls_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/pulls{/number}","milestones_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/milestones{/number}","notifications_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/labels{/name}","created_at":"2013-06-16T21:53:44Z","updated_at":"2013-06-16T21:54:47Z","pushed_at":"2013-06-16T21:54:47Z","git_url":"git://github.com/andy-pint-repository/jquery-basic.git","ssh_url":"git@github.com:andy-pint-repository/jquery-basic.git","clone_url":"https://github.com/andy-pint-repository/jquery-basic.git","svn_url":"https://github.com/andy-pint-repository/jquery-basic","homepage":null,"size":112,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":10935898,"name":"sinatra-basic","full_name":"andy-pint-repository/sinatra-basic","owner":{"login":"andy-pint-repository","id":4713170,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/andy-pint-repository","html_url":"https://github.com/andy-pint-repository","followers_url":"https://api.github.com/users/andy-pint-repository/followers","following_url":"https://api.github.com/users/andy-pint-repository/following{/other_user}","gists_url":"https://api.github.com/users/andy-pint-repository/gists{/gist_id}","starred_url":"https://api.github.com/users/andy-pint-repository/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andy-pint-repository/subscriptions","organizations_url":"https://api.github.com/users/andy-pint-repository/orgs","repos_url":"https://api.github.com/users/andy-pint-repository/repos","events_url":"https://api.github.com/users/andy-pint-repository/events{/privacy}","received_events_url":"https://api.github.com/users/andy-pint-repository/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/andy-pint-repository/sinatra-basic","description":"","fork":false,"url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic","forks_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/forks","keys_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/teams","hooks_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/hooks","issue_events_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/issues/events{/number}","events_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/events","assignees_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/assignees{/user}","branches_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/branches{/branch}","tags_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/tags","blobs_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/git/refs{/sha}","trees_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/statuses/{sha}","languages_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/languages","stargazers_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/stargazers","contributors_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/contributors","subscribers_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/subscribers","subscription_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/subscription","commits_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/commits{/sha}","git_commits_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/git/commits{/sha}","comments_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/comments{/number}","issue_comment_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/issues/comments/{number}","contents_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/contents/{+path}","compare_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/merges","archive_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/downloads","issues_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/issues{/number}","pulls_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/pulls{/number}","milestones_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/milestones{/number}","notifications_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/labels{/name}","created_at":"2013-06-25T10:53:51Z","updated_at":"2013-06-25T10:53:51Z","pushed_at":"2013-06-25T10:53:51Z","git_url":"git://github.com/andy-pint-repository/sinatra-basic.git","ssh_url":"git@github.com:andy-pint-repository/sinatra-basic.git","clone_url":"https://github.com/andy-pint-repository/sinatra-basic.git","svn_url":"https://github.com/andy-pint-repository/sinatra-basic","homepage":null,"size":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"permissions":{"admin":false,"push":false,"pull":true}}]'
61
+ http_version:
62
+ recorded_at: Sat, 29 Jun 2013 14:47:49 GMT
63
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,63 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.github.com/orgs/andy-pint-repository/repos
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - GitHub.com
21
+ Date:
22
+ - Sat, 29 Jun 2013 14:47:48 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Connection:
26
+ - keep-alive
27
+ Status:
28
+ - 200 OK
29
+ X-Ratelimit-Limit:
30
+ - '60'
31
+ X-Ratelimit-Remaining:
32
+ - '38'
33
+ X-Ratelimit-Reset:
34
+ - '1372518289'
35
+ Vary:
36
+ - Accept
37
+ - Accept-Encoding
38
+ Cache-Control:
39
+ - public, max-age=60, s-maxage=60
40
+ Last-Modified:
41
+ - Tue, 25 Jun 2013 10:53:51 GMT
42
+ Etag:
43
+ - ! '"54892ecb367d2a52e52f4351d7ae0de7"'
44
+ X-Github-Media-Type:
45
+ - github.beta
46
+ X-Content-Type-Options:
47
+ - nosniff
48
+ Content-Length:
49
+ - '16041'
50
+ Access-Control-Allow-Credentials:
51
+ - 'true'
52
+ Access-Control-Expose-Headers:
53
+ - ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes
54
+ Access-Control-Allow-Origin:
55
+ - ! '*'
56
+ body:
57
+ encoding: US-ASCII
58
+ string: ! '[{"id":10726217,"name":"basic-web","full_name":"andy-pint-repository/basic-web","owner":{"login":"andy-pint-repository","id":4713170,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/andy-pint-repository","html_url":"https://github.com/andy-pint-repository","followers_url":"https://api.github.com/users/andy-pint-repository/followers","following_url":"https://api.github.com/users/andy-pint-repository/following{/other_user}","gists_url":"https://api.github.com/users/andy-pint-repository/gists{/gist_id}","starred_url":"https://api.github.com/users/andy-pint-repository/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andy-pint-repository/subscriptions","organizations_url":"https://api.github.com/users/andy-pint-repository/orgs","repos_url":"https://api.github.com/users/andy-pint-repository/repos","events_url":"https://api.github.com/users/andy-pint-repository/events{/privacy}","received_events_url":"https://api.github.com/users/andy-pint-repository/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/andy-pint-repository/basic-web","description":"A
59
+ very basic static web pint for Andy","fork":false,"url":"https://api.github.com/repos/andy-pint-repository/basic-web","forks_url":"https://api.github.com/repos/andy-pint-repository/basic-web/forks","keys_url":"https://api.github.com/repos/andy-pint-repository/basic-web/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andy-pint-repository/basic-web/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andy-pint-repository/basic-web/teams","hooks_url":"https://api.github.com/repos/andy-pint-repository/basic-web/hooks","issue_events_url":"https://api.github.com/repos/andy-pint-repository/basic-web/issues/events{/number}","events_url":"https://api.github.com/repos/andy-pint-repository/basic-web/events","assignees_url":"https://api.github.com/repos/andy-pint-repository/basic-web/assignees{/user}","branches_url":"https://api.github.com/repos/andy-pint-repository/basic-web/branches{/branch}","tags_url":"https://api.github.com/repos/andy-pint-repository/basic-web/tags","blobs_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/refs{/sha}","trees_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andy-pint-repository/basic-web/statuses/{sha}","languages_url":"https://api.github.com/repos/andy-pint-repository/basic-web/languages","stargazers_url":"https://api.github.com/repos/andy-pint-repository/basic-web/stargazers","contributors_url":"https://api.github.com/repos/andy-pint-repository/basic-web/contributors","subscribers_url":"https://api.github.com/repos/andy-pint-repository/basic-web/subscribers","subscription_url":"https://api.github.com/repos/andy-pint-repository/basic-web/subscription","commits_url":"https://api.github.com/repos/andy-pint-repository/basic-web/commits{/sha}","git_commits_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/commits{/sha}","comments_url":"https://api.github.com/repos/andy-pint-repository/basic-web/comments{/number}","issue_comment_url":"https://api.github.com/repos/andy-pint-repository/basic-web/issues/comments/{number}","contents_url":"https://api.github.com/repos/andy-pint-repository/basic-web/contents/{+path}","compare_url":"https://api.github.com/repos/andy-pint-repository/basic-web/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andy-pint-repository/basic-web/merges","archive_url":"https://api.github.com/repos/andy-pint-repository/basic-web/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andy-pint-repository/basic-web/downloads","issues_url":"https://api.github.com/repos/andy-pint-repository/basic-web/issues{/number}","pulls_url":"https://api.github.com/repos/andy-pint-repository/basic-web/pulls{/number}","milestones_url":"https://api.github.com/repos/andy-pint-repository/basic-web/milestones{/number}","notifications_url":"https://api.github.com/repos/andy-pint-repository/basic-web/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andy-pint-repository/basic-web/labels{/name}","created_at":"2013-06-16T21:52:14Z","updated_at":"2013-06-16T21:52:59Z","pushed_at":"2013-06-16T21:52:59Z","git_url":"git://github.com/andy-pint-repository/basic-web.git","ssh_url":"git@github.com:andy-pint-repository/basic-web.git","clone_url":"https://github.com/andy-pint-repository/basic-web.git","svn_url":"https://github.com/andy-pint-repository/basic-web","homepage":null,"size":116,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":10726233,"name":"jquery-basic","full_name":"andy-pint-repository/jquery-basic","owner":{"login":"andy-pint-repository","id":4713170,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/andy-pint-repository","html_url":"https://github.com/andy-pint-repository","followers_url":"https://api.github.com/users/andy-pint-repository/followers","following_url":"https://api.github.com/users/andy-pint-repository/following{/other_user}","gists_url":"https://api.github.com/users/andy-pint-repository/gists{/gist_id}","starred_url":"https://api.github.com/users/andy-pint-repository/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andy-pint-repository/subscriptions","organizations_url":"https://api.github.com/users/andy-pint-repository/orgs","repos_url":"https://api.github.com/users/andy-pint-repository/repos","events_url":"https://api.github.com/users/andy-pint-repository/events{/privacy}","received_events_url":"https://api.github.com/users/andy-pint-repository/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/andy-pint-repository/jquery-basic","description":"A
60
+ static web site pint with CDN-hosted JQuery","fork":false,"url":"https://api.github.com/repos/andy-pint-repository/jquery-basic","forks_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/forks","keys_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/teams","hooks_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/hooks","issue_events_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/issues/events{/number}","events_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/events","assignees_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/assignees{/user}","branches_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/branches{/branch}","tags_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/tags","blobs_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/refs{/sha}","trees_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/statuses/{sha}","languages_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/languages","stargazers_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/stargazers","contributors_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/contributors","subscribers_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/subscribers","subscription_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/subscription","commits_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/commits{/sha}","git_commits_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/commits{/sha}","comments_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/comments{/number}","issue_comment_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/issues/comments/{number}","contents_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/contents/{+path}","compare_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/merges","archive_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/downloads","issues_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/issues{/number}","pulls_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/pulls{/number}","milestones_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/milestones{/number}","notifications_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/labels{/name}","created_at":"2013-06-16T21:53:44Z","updated_at":"2013-06-16T21:54:47Z","pushed_at":"2013-06-16T21:54:47Z","git_url":"git://github.com/andy-pint-repository/jquery-basic.git","ssh_url":"git@github.com:andy-pint-repository/jquery-basic.git","clone_url":"https://github.com/andy-pint-repository/jquery-basic.git","svn_url":"https://github.com/andy-pint-repository/jquery-basic","homepage":null,"size":112,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":10935898,"name":"sinatra-basic","full_name":"andy-pint-repository/sinatra-basic","owner":{"login":"andy-pint-repository","id":4713170,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/andy-pint-repository","html_url":"https://github.com/andy-pint-repository","followers_url":"https://api.github.com/users/andy-pint-repository/followers","following_url":"https://api.github.com/users/andy-pint-repository/following{/other_user}","gists_url":"https://api.github.com/users/andy-pint-repository/gists{/gist_id}","starred_url":"https://api.github.com/users/andy-pint-repository/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andy-pint-repository/subscriptions","organizations_url":"https://api.github.com/users/andy-pint-repository/orgs","repos_url":"https://api.github.com/users/andy-pint-repository/repos","events_url":"https://api.github.com/users/andy-pint-repository/events{/privacy}","received_events_url":"https://api.github.com/users/andy-pint-repository/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/andy-pint-repository/sinatra-basic","description":"","fork":false,"url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic","forks_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/forks","keys_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/teams","hooks_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/hooks","issue_events_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/issues/events{/number}","events_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/events","assignees_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/assignees{/user}","branches_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/branches{/branch}","tags_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/tags","blobs_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/git/refs{/sha}","trees_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/statuses/{sha}","languages_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/languages","stargazers_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/stargazers","contributors_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/contributors","subscribers_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/subscribers","subscription_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/subscription","commits_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/commits{/sha}","git_commits_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/git/commits{/sha}","comments_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/comments{/number}","issue_comment_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/issues/comments/{number}","contents_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/contents/{+path}","compare_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/merges","archive_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/downloads","issues_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/issues{/number}","pulls_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/pulls{/number}","milestones_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/milestones{/number}","notifications_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andy-pint-repository/sinatra-basic/labels{/name}","created_at":"2013-06-25T10:53:51Z","updated_at":"2013-06-25T10:53:51Z","pushed_at":"2013-06-25T10:53:51Z","git_url":"git://github.com/andy-pint-repository/sinatra-basic.git","ssh_url":"git@github.com:andy-pint-repository/sinatra-basic.git","clone_url":"https://github.com/andy-pint-repository/sinatra-basic.git","svn_url":"https://github.com/andy-pint-repository/sinatra-basic","homepage":null,"size":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"permissions":{"admin":false,"push":false,"pull":true}}]'
61
+ http_version:
62
+ recorded_at: Sat, 29 Jun 2013 14:47:48 GMT
63
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,42 @@
1
+ Feature: The list CLI
2
+ In order to list info to the user
3
+ As the CLI
4
+ I want to use list installed pints
5
+
6
+ Scenario: List local pints
7
+ When I run `andy list -l`
8
+ Then the output should contain:
9
+ """
10
+ Installed pints:
11
+ basic
12
+ jquery-basic
13
+ """
14
+
15
+ @vcr
16
+ Scenario: List remote pints
17
+ When I run `andy list -r`
18
+ Then the output should contain:
19
+ """
20
+ Remote pints:
21
+ basic-web
22
+ jquery-basic
23
+ sinatra-basic
24
+ """
25
+
26
+ @vcr
27
+ Scenario: List all pints
28
+ When I run `andy list`
29
+ Then the output should contain:
30
+ """
31
+
32
+ Installed pints:
33
+ basic
34
+ jquery-basic
35
+
36
+
37
+ Remote pints:
38
+ basic-web
39
+ jquery-basic
40
+ sinatra-basic
41
+ """
42
+
@@ -0,0 +1,3 @@
1
+ Given(/^I am using the cassette "(.*?)"$/) do |cassette_name|
2
+ VCR.insert_cassette cassette_name
3
+ end
@@ -0,0 +1,48 @@
1
+ #$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../../lib/')
2
+ require 'aruba/cucumber'
3
+ require 'aruba/in_process'
4
+ require 'andy_thor'
5
+ require 'andy/api/list'
6
+ require 'andy/cli/list_cli'
7
+ require 'andy/config'
8
+ require 'pathname'
9
+ require 'vcr'
10
+ require 'webmock'
11
+
12
+ andy_home = Pathname.new(File.join(Dir.getwd, 'spec', 'support', 'user_home', 'andy_home')).cleanpath
13
+ #ENV['HOME'] = Pathname.new(File.join(Dir.getwd, 'spec', 'support', 'user_home')).cleanpath.to_s
14
+ ENV['ANDY_HOME'] = andy_home.to_s
15
+ puts "ANDY HOME #{ENV['ANDY_HOME']}"
16
+
17
+ VCR.configure do |c|
18
+ c.hook_into :webmock
19
+ c.cassette_library_dir = 'features_new/cassettes'
20
+ c.default_cassette_options = { :record => :new_episodes }
21
+ end
22
+
23
+ VCR.cucumber_tags do |t|
24
+ t.tag '@vcr', :use_scenario_name => true
25
+ end
26
+
27
+ class VcrFriendlyMain
28
+ def initialize(argv, stdin, stdout, stderr, kernel)
29
+ @argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel
30
+ end
31
+
32
+ def execute!
33
+ ENV['ANDY_HOME'] = ENV['ANDY_HOME'] || "#{ENV['HOME']}/.andy"
34
+ $stdin = @stdin
35
+ $stdout = @stdout
36
+ Andy::CLI.start(@argv)
37
+ end
38
+ end
39
+
40
+ Before('@vcr') do
41
+ Aruba::InProcess.main_class = VcrFriendlyMain
42
+ Aruba.process = Aruba::InProcess
43
+ end
44
+
45
+ After('@vcr') do
46
+ Aruba.process = Aruba::SpawnProcess
47
+ VCR.eject_cassette
48
+ end
@@ -0,0 +1,50 @@
1
+ require 'net/http'
2
+ require 'open-uri'
3
+ require 'json'
4
+
5
+ module Andy
6
+ module Api
7
+ class Fetch
8
+
9
+ def build_pint_catalog
10
+ response = open('https://api.github.com/orgs/andy-pint-repository/repos')
11
+ repo_list = JSON.parse(response.read)
12
+ actual_repos = {}
13
+ repo_list.each do |repo|
14
+ repo_name = repo['name']
15
+ pint_fetch_url = "https://github.com/andy-pint-repository/#{repo_name}/archive/master.zip"
16
+ actual_repos[repo_name] = { :name => repo_name, :url => pint_fetch_url }
17
+ end
18
+ actual_repos
19
+ end
20
+
21
+ def download_pint(pint_fetch_url, destination)
22
+ end
23
+
24
+ def fetch_list
25
+ uri = URI.parse('https://api.github.com/orgs/andy-pint-repository/repos')
26
+ http = Net::HTTP.new(uri.host, uri.port)
27
+ http.use_ssl = true
28
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
29
+
30
+ request = Net::HTTP::Get.new(uri.request_uri)
31
+
32
+ response = http.request(request)
33
+ repo_list = JSON.parse response.body
34
+ actual_repos = {}
35
+ repo_list.each do |repo|
36
+ puts "NAME #{repo['name']}"
37
+ repo_name = repo['name']
38
+ pint_fetch_url = "https://github.com/andy-pint-repository/#{repo_name}/archive/master.zip"
39
+ actual_repos[repo_name] = { :name => repo_name, :url => pint_fetch_url }
40
+ end
41
+
42
+ uri = actual_repos['basic-web'][:url]
43
+ resp = open(uri)
44
+ File.open("./data.zip", "wb") do |f|
45
+ f.write(resp.string)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,8 +1,10 @@
1
1
  require 'erb'
2
+ require 'fileutils'
2
3
 
3
4
  module Andy
4
5
  module Api
5
6
  class Install
7
+ include Thor::Actions
6
8
 
7
9
  def initialize(config)
8
10
  @config = config
@@ -10,7 +12,7 @@ module Andy
10
12
 
11
13
  def install(pint_name, project_name, dir_name, project_parent_location)
12
14
  project_path = File.join(project_parent_location, dir_name)
13
- Dir::mkdir(project_path)
15
+ FileUtils::mkdir_p(project_path)
14
16
  pint = @config.get_pint(pint_name)
15
17
  pint.source_files.each do |relative_source_file|
16
18
  source_file = File.join(pint.location, relative_source_file)
@@ -23,7 +25,7 @@ module Andy
23
25
  body = erb.result(binding)
24
26
  end
25
27
  destination_dir = Pathname.new(destination_file).dirname
26
- Dir::mkdir(destination_dir) unless File.directory?(destination_dir)
28
+ FileUtils::mkdir_p(destination_dir) unless File.directory?(destination_dir)
27
29
  output = File.open(destination_file, 'w')
28
30
  output.puts body
29
31
  output.close
@@ -2,6 +2,7 @@ require 'thor'
2
2
  require 'andy/config'
3
3
  require 'andy/api/list'
4
4
  require 'andy/api/install_api'
5
+ require 'andy/api/fetch_api'
5
6
 
6
7
  module Andy
7
8
  class CLI < Thor
@@ -11,6 +12,7 @@ module Andy
11
12
  @config = Andy::Config.new
12
13
  @list = Andy::Api::List.new @config
13
14
  @install = Andy::Api::Install.new @config
15
+ @fetch = Andy::Api::Fetch.new
14
16
  end
15
17
 
16
18
  desc "new", "Generates an app directory and copies the appropriate files"
@@ -26,13 +28,48 @@ module Andy
26
28
  end
27
29
 
28
30
  desc "list", "Lists known pints"
31
+ option :local, :type => :boolean, :aliases => ['-l']
32
+ option :remote, :type => :boolean, :aliases => ['-r']
29
33
  def list
30
- known_pints = @list.pint_names
31
- puts "Installed pints:"
32
- known_pints.each do |pint|
33
- puts " #{pint}"
34
+ if options[:local]
35
+ list_local
36
+ end
37
+ if options[:remote]
38
+ list_remote
39
+ end
40
+ if !options[:local] && !options[:remote]
41
+ list_local
42
+ list_remote
43
+ end
44
+ end
45
+
46
+ desc "update", "fetches latest official pints"
47
+ def update
48
+ catalog = @fetch.build_pint_catalog
49
+ end
50
+
51
+ no_tasks do
52
+ def list_local
53
+ puts "\n"
54
+ local_pints = @list.pint_names
55
+ puts "Installed pints:"
56
+ local_pints.each do |pint|
57
+ puts " #{pint}"
58
+ end
59
+ puts "\n"
60
+ end
61
+
62
+ def list_remote
63
+ catalog = @fetch.build_pint_catalog
64
+ puts "\nRemote pints:"
65
+ catalog.keys.each do |pint|
66
+ puts " #{pint}"
67
+ end
68
+ puts "\n"
34
69
  end
35
70
  end
36
71
 
72
+
73
+
37
74
  end
38
75
  end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe "The fetch API" do
4
+
5
+ before :each do
6
+ @fetch = Andy::Api::Fetch.new
7
+ end
8
+
9
+ describe "compiles a catalog of official remote pints" do
10
+
11
+ it "should know about the official pints" do
12
+ VCR.use_cassette 'official_remote_catalog' do
13
+ @catalog = @fetch.fetch_official
14
+ end
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.github.com/orgs/andy-pint-repository/repos
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - ! '*/*'
12
+ user-agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ server:
20
+ - GitHub.com
21
+ date:
22
+ - Mon, 17 Jun 2013 22:06:10 GMT
23
+ content-type:
24
+ - application/json; charset=utf-8
25
+ connection:
26
+ - keep-alive
27
+ status:
28
+ - 200 OK
29
+ x-ratelimit-limit:
30
+ - '60'
31
+ x-ratelimit-remaining:
32
+ - '47'
33
+ vary:
34
+ - Accept
35
+ - Accept-Encoding
36
+ cache-control:
37
+ - public, max-age=60, s-maxage=60
38
+ last-modified:
39
+ - Sun, 16 Jun 2013 21:54:47 GMT
40
+ etag:
41
+ - ! '"fad0ef25cef875ccc427600b324c3b73"'
42
+ x-github-media-type:
43
+ - github.beta
44
+ x-content-type-options:
45
+ - nosniff
46
+ content-length:
47
+ - '10687'
48
+ access-control-allow-credentials:
49
+ - 'true'
50
+ access-control-expose-headers:
51
+ - ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes
52
+ access-control-allow-origin:
53
+ - ! '*'
54
+ body:
55
+ encoding: US-ASCII
56
+ string: ! '[{"id":10726217,"name":"basic-web","full_name":"andy-pint-repository/basic-web","owner":{"login":"andy-pint-repository","id":4713170,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/andy-pint-repository","html_url":"https://github.com/andy-pint-repository","followers_url":"https://api.github.com/users/andy-pint-repository/followers","following_url":"https://api.github.com/users/andy-pint-repository/following{/other_user}","gists_url":"https://api.github.com/users/andy-pint-repository/gists{/gist_id}","starred_url":"https://api.github.com/users/andy-pint-repository/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andy-pint-repository/subscriptions","organizations_url":"https://api.github.com/users/andy-pint-repository/orgs","repos_url":"https://api.github.com/users/andy-pint-repository/repos","events_url":"https://api.github.com/users/andy-pint-repository/events{/privacy}","received_events_url":"https://api.github.com/users/andy-pint-repository/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/andy-pint-repository/basic-web","description":"A
57
+ very basic static web pint for Andy","fork":false,"url":"https://api.github.com/repos/andy-pint-repository/basic-web","forks_url":"https://api.github.com/repos/andy-pint-repository/basic-web/forks","keys_url":"https://api.github.com/repos/andy-pint-repository/basic-web/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andy-pint-repository/basic-web/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andy-pint-repository/basic-web/teams","hooks_url":"https://api.github.com/repos/andy-pint-repository/basic-web/hooks","issue_events_url":"https://api.github.com/repos/andy-pint-repository/basic-web/issues/events{/number}","events_url":"https://api.github.com/repos/andy-pint-repository/basic-web/events","assignees_url":"https://api.github.com/repos/andy-pint-repository/basic-web/assignees{/user}","branches_url":"https://api.github.com/repos/andy-pint-repository/basic-web/branches{/branch}","tags_url":"https://api.github.com/repos/andy-pint-repository/basic-web/tags","blobs_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/refs{/sha}","trees_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andy-pint-repository/basic-web/statuses/{sha}","languages_url":"https://api.github.com/repos/andy-pint-repository/basic-web/languages","stargazers_url":"https://api.github.com/repos/andy-pint-repository/basic-web/stargazers","contributors_url":"https://api.github.com/repos/andy-pint-repository/basic-web/contributors","subscribers_url":"https://api.github.com/repos/andy-pint-repository/basic-web/subscribers","subscription_url":"https://api.github.com/repos/andy-pint-repository/basic-web/subscription","commits_url":"https://api.github.com/repos/andy-pint-repository/basic-web/commits{/sha}","git_commits_url":"https://api.github.com/repos/andy-pint-repository/basic-web/git/commits{/sha}","comments_url":"https://api.github.com/repos/andy-pint-repository/basic-web/comments{/number}","issue_comment_url":"https://api.github.com/repos/andy-pint-repository/basic-web/issues/comments/{number}","contents_url":"https://api.github.com/repos/andy-pint-repository/basic-web/contents/{+path}","compare_url":"https://api.github.com/repos/andy-pint-repository/basic-web/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andy-pint-repository/basic-web/merges","archive_url":"https://api.github.com/repos/andy-pint-repository/basic-web/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andy-pint-repository/basic-web/downloads","issues_url":"https://api.github.com/repos/andy-pint-repository/basic-web/issues{/number}","pulls_url":"https://api.github.com/repos/andy-pint-repository/basic-web/pulls{/number}","milestones_url":"https://api.github.com/repos/andy-pint-repository/basic-web/milestones{/number}","notifications_url":"https://api.github.com/repos/andy-pint-repository/basic-web/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andy-pint-repository/basic-web/labels{/name}","created_at":"2013-06-16T21:52:14Z","updated_at":"2013-06-16T21:52:59Z","pushed_at":"2013-06-16T21:52:59Z","git_url":"git://github.com/andy-pint-repository/basic-web.git","ssh_url":"git@github.com:andy-pint-repository/basic-web.git","clone_url":"https://github.com/andy-pint-repository/basic-web.git","svn_url":"https://github.com/andy-pint-repository/basic-web","homepage":null,"size":116,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}},{"id":10726233,"name":"jquery-basic","full_name":"andy-pint-repository/jquery-basic","owner":{"login":"andy-pint-repository","id":4713170,"avatar_url":"https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png","gravatar_id":"d41d8cd98f00b204e9800998ecf8427e","url":"https://api.github.com/users/andy-pint-repository","html_url":"https://github.com/andy-pint-repository","followers_url":"https://api.github.com/users/andy-pint-repository/followers","following_url":"https://api.github.com/users/andy-pint-repository/following{/other_user}","gists_url":"https://api.github.com/users/andy-pint-repository/gists{/gist_id}","starred_url":"https://api.github.com/users/andy-pint-repository/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andy-pint-repository/subscriptions","organizations_url":"https://api.github.com/users/andy-pint-repository/orgs","repos_url":"https://api.github.com/users/andy-pint-repository/repos","events_url":"https://api.github.com/users/andy-pint-repository/events{/privacy}","received_events_url":"https://api.github.com/users/andy-pint-repository/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/andy-pint-repository/jquery-basic","description":"A
58
+ static web site pint with CDN-hosted JQuery","fork":false,"url":"https://api.github.com/repos/andy-pint-repository/jquery-basic","forks_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/forks","keys_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/teams","hooks_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/hooks","issue_events_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/issues/events{/number}","events_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/events","assignees_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/assignees{/user}","branches_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/branches{/branch}","tags_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/tags","blobs_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/refs{/sha}","trees_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/statuses/{sha}","languages_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/languages","stargazers_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/stargazers","contributors_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/contributors","subscribers_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/subscribers","subscription_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/subscription","commits_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/commits{/sha}","git_commits_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/git/commits{/sha}","comments_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/comments{/number}","issue_comment_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/issues/comments/{number}","contents_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/contents/{+path}","compare_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/merges","archive_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/downloads","issues_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/issues{/number}","pulls_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/pulls{/number}","milestones_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/milestones{/number}","notifications_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andy-pint-repository/jquery-basic/labels{/name}","created_at":"2013-06-16T21:53:44Z","updated_at":"2013-06-16T21:54:47Z","pushed_at":"2013-06-16T21:54:47Z","git_url":"git://github.com/andy-pint-repository/jquery-basic.git","ssh_url":"git@github.com:andy-pint-repository/jquery-basic.git","clone_url":"https://github.com/andy-pint-repository/jquery-basic.git","svn_url":"https://github.com/andy-pint-repository/jquery-basic","homepage":null,"size":112,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":false,"push":false,"pull":true}}]'
59
+ http_version: '1.1'
60
+ recorded_at: Mon, 17 Jun 2013 22:06:10 GMT
61
+ recorded_with: VCR 2.5.0
@@ -3,8 +3,20 @@ require 'andy/pint_mug'
3
3
  require 'andy/pint'
4
4
  require 'andy/api/list'
5
5
  require 'andy/api/install_api'
6
+ require 'andy/api/fetch_api'
6
7
  require 'andy/config'
7
8
  require 'fileutils'
9
+ require 'vcr'
8
10
 
9
11
  ENV['WORK_DIR'] = File.join(Dir.getwd, 'tmp', 'work')
10
- ENV['ANDY_HOME'] = File.join(File.dirname(__FILE__), 'support', 'user_home', 'andy_home')
12
+ ENV['ANDY_HOME'] = File.join(File.dirname(__FILE__), 'support', 'user_home', 'andy_home')
13
+
14
+ VCR.configure do |c|
15
+ c.default_cassette_options = { :record => :new_episodes }
16
+ c.stub_with :fakeweb
17
+ c.cassette_library_dir = 'spec/fixtures/cassettes'
18
+ end
19
+
20
+ RSpec.configure do |c|
21
+ c.extend VCR::RSpec::Macros
22
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: andy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
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-06-16 00:00:00.000000000 Z
12
+ date: 2013-07-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: andy
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'
46
62
  description: Generate a skeleton project to get you started
47
63
  email: george@georgemcintosh.com
48
64
  executables:
@@ -51,6 +67,7 @@ extensions: []
51
67
  extra_rdoc_files:
52
68
  - README.md
53
69
  files:
70
+ - .travis.yml
54
71
  - Gemfile
55
72
  - Gemfile.lock
56
73
  - README.md
@@ -67,9 +84,15 @@ files:
67
84
  - features/gem/info.feature
68
85
  - features/gem/support/env.rb
69
86
  - features/gem/support/gem.rb
87
+ - features_new/cassettes/The_list_CLI/List_all_pints.yml
88
+ - features_new/cassettes/The_list_CLI/List_remote_pints.yml
89
+ - features_new/list.feature
90
+ - features_new/step_definitions/aruba_ext.rb
91
+ - features_new/support/env.rb
70
92
  - install
71
93
  - lib/andy.rb
72
94
  - lib/andy.yaml
95
+ - lib/andy/api/fetch_api.rb
73
96
  - lib/andy/api/install_api.rb
74
97
  - lib/andy/api/list.rb
75
98
  - lib/andy/cli/install_cli.rb
@@ -80,9 +103,11 @@ files:
80
103
  - lib/andy/pint.rb
81
104
  - lib/andy/pint_mug.rb
82
105
  - lib/andy_thor.rb
106
+ - spec/api/fetch_api_spec.rb
83
107
  - spec/api/install_spec.rb
84
108
  - spec/api/list_api_spec.rb
85
109
  - spec/config_spec.rb
110
+ - spec/fixtures/cassettes/official_remote_catalog.yml
86
111
  - spec/pint_spec.rb
87
112
  - spec/spec_helper.rb
88
113
  - spec/support/user_home/andy_home/pints/basic_web/css/core.css.erb
@@ -114,7 +139,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
139
  version: '0'
115
140
  segments:
116
141
  - 0
117
- hash: -128580633999570231
142
+ hash: -3919000872125940774
118
143
  required_rubygems_version: !ruby/object:Gem::Requirement
119
144
  none: false
120
145
  requirements: