circler 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4a5dd67dd34e6e39fcb1874a7f4ae9ed08b379e9
4
- data.tar.gz: f4f9cbc531ae9a6b841fb881535850f33ace222d
3
+ metadata.gz: 5961bad07a4cc984a8a3e1ee1add550212da1f90
4
+ data.tar.gz: c09434edbac2080beb6dcde0392bc00c2047ee7e
5
5
  SHA512:
6
- metadata.gz: bd6a8a61803c7d20b87d9ab8440ea323bb884267c34299b9abf172f8ee65ce4ac29b47fd969b2f8ab5ff96494e6391b4d3a28e674af1effd228fffbf93adf18d
7
- data.tar.gz: eeb74441ac6e45652d2d46ede335e2d5208267b7cb31e8ff6e6194fb1b7dbf0a67a2a782ca5e1332af1c5022ec2f8794cc2c2e9241d909fa529f217a85670fb9
6
+ metadata.gz: 0d85d4550bbf333cb53889c3f8c9cfb58f4f0a4ef2bc3e7191be99ec708f83bbfca66050a082b671776bf92a6dc78f263c87bb42d729361c7cc181914ea1a885
7
+ data.tar.gz: 21ceea61473f81b51694d0ecea126ceb74e4ade95f333bde2bcb88b7fb9754fc973ca4386d0ce787579756c2b84b0b63cca241e927b8adbe61dcf87bbe1fca7e
@@ -1,76 +1,66 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- circler (0.4.0)
5
- circleci (~> 0.2.0)
6
- colorize (~> 0.7.7)
7
- faraday (~> 0.9.2)
4
+ circler (0.4.1)
5
+ circleci (~> 1.0.3)
6
+ colorize (~> 0.8.1)
7
+ faraday (~> 0.11.0)
8
8
  highline (~> 1.7.8)
9
9
  launchy (~> 2.4.3)
10
10
  pusher-client (~> 0.6.2)
11
- rugged (~> 0.24.0b11)
12
- terminal-notifier (~> 1.6.3)
13
- terminal-table (~> 1.5.2)
14
- thor (~> 0.19.1)
11
+ rugged (~> 0.25.1.1)
12
+ terminal-notifier (~> 1.7.1)
13
+ terminal-table (~> 1.7.3)
14
+ thor (~> 0.19.4)
15
15
 
16
16
  GEM
17
17
  remote: https://rubygems.org/
18
18
  specs:
19
- addressable (2.4.0)
20
- circleci (0.2.2)
21
- rest-client (~> 1.8)
22
- colorize (0.7.7)
23
- diff-lcs (1.2.5)
24
- domain_name (0.5.20160309)
25
- unf (>= 0.0.5, < 1.0.0)
26
- faraday (0.9.2)
19
+ addressable (2.5.0)
20
+ public_suffix (~> 2.0, >= 2.0.2)
21
+ circleci (1.0.3)
22
+ colorize (0.8.1)
23
+ diff-lcs (1.3)
24
+ faraday (0.11.0)
27
25
  multipart-post (>= 1.2, < 3)
28
26
  highline (1.7.8)
29
- http-cookie (1.0.2)
30
- domain_name (~> 0.5)
31
- json (1.8.3)
27
+ json (2.0.3)
32
28
  launchy (2.4.3)
33
29
  addressable (~> 2.3)
34
- mime-types (2.99.1)
35
30
  multipart-post (2.0.0)
36
- netrc (0.11.0)
31
+ public_suffix (2.0.5)
37
32
  pusher-client (0.6.2)
38
33
  json
39
34
  websocket (~> 1.0)
40
- rake (10.5.0)
41
- rest-client (1.8.0)
42
- http-cookie (>= 1.0.2, < 2.0)
43
- mime-types (>= 1.16, < 3.0)
44
- netrc (~> 0.7)
45
- rspec (3.4.0)
46
- rspec-core (~> 3.4.0)
47
- rspec-expectations (~> 3.4.0)
48
- rspec-mocks (~> 3.4.0)
49
- rspec-core (3.4.3)
50
- rspec-support (~> 3.4.0)
51
- rspec-expectations (3.4.0)
35
+ rake (12.0.0)
36
+ rspec (3.5.0)
37
+ rspec-core (~> 3.5.0)
38
+ rspec-expectations (~> 3.5.0)
39
+ rspec-mocks (~> 3.5.0)
40
+ rspec-core (3.5.4)
41
+ rspec-support (~> 3.5.0)
42
+ rspec-expectations (3.5.0)
52
43
  diff-lcs (>= 1.2.0, < 2.0)
53
- rspec-support (~> 3.4.0)
54
- rspec-mocks (3.4.1)
44
+ rspec-support (~> 3.5.0)
45
+ rspec-mocks (3.5.0)
55
46
  diff-lcs (>= 1.2.0, < 2.0)
56
- rspec-support (~> 3.4.0)
57
- rspec-support (3.4.1)
58
- rugged (0.24.0)
59
- terminal-notifier (1.6.3)
60
- terminal-table (1.5.2)
61
- thor (0.19.1)
62
- unf (0.1.4)
63
- unf_ext
64
- unf_ext (0.0.7.2)
65
- websocket (1.2.2)
47
+ rspec-support (~> 3.5.0)
48
+ rspec-support (3.5.0)
49
+ rugged (0.25.1.1)
50
+ terminal-notifier (1.7.1)
51
+ terminal-table (1.7.3)
52
+ unicode-display_width (~> 1.1.1)
53
+ thor (0.19.4)
54
+ unicode-display_width (1.1.3)
55
+ websocket (1.2.4)
66
56
 
67
57
  PLATFORMS
68
58
  ruby
69
59
 
70
60
  DEPENDENCIES
71
- bundler (~> 1.9)
61
+ bundler
72
62
  circler!
73
- rake (~> 10.0)
63
+ rake
74
64
  rspec
75
65
 
76
66
  BUNDLED WITH
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # Circler
2
2
 
3
- [![Circle CI](https://circleci.com/gh/unhappychoice/Circler.svg?style=svg)](https://circleci.com/gh/unhappychoice/Circler)
3
+ [![Gem Version](https://badge.fury.io/rb/circler.svg)](https://badge.fury.io/rb/circler)
4
+ [![Circle CI](https://circleci.com/gh/unhappychoice/Circler.svg?style=shield)](https://circleci.com/gh/unhappychoice/Circler)
5
+ [![Code Climate](https://codeclimate.com/github/unhappychoice/Circler/badges/gpa.svg)](https://codeclimate.com/github/unhappychoice/Circler)
6
+ [![Dependency Status](https://gemnasium.com/badges/github.com/unhappychoice/Circler.svg)](https://gemnasium.com/github.com/unhappychoice/Circler)
4
7
 
5
8
  Circler is a CLI tool for [Circle CI](https://circleci.com).
6
9
 
@@ -19,59 +22,21 @@ export CIRCLE_CI_TOKEN=your-circle-ci-token
19
22
  ```
20
23
 
21
24
  ## Usage
22
-
23
- #### watch
24
- watch build in real time
25
-
26
- ```sh
27
- $ circle watch
28
-
29
- # Options:
30
- # p, [--project=user/project]
31
- ```
32
-
33
- #### projects
34
-
35
- list all the projects you can see.
36
-
37
- ```sh
38
- $ circle projects
39
- ```
40
-
41
- #### builds
42
-
43
- list specific projects' builds.
44
-
45
- ```sh
46
- $ circle builds
47
-
48
- # Options:
49
- # p, [--project=user/project]
50
- # b, [--branch=some-branch]
51
25
  ```
52
-
53
- #### build
54
-
55
- show specific build description.
56
-
57
- ```sh
58
- $ circle build
59
-
60
- # Options:
61
- # p, [--project=user/project]
62
- # n, [--build=build-number]
63
- ```
64
-
65
- #### browse
66
-
67
- open Circle CI website
68
-
69
- ```sh
70
- $ circle browse
71
-
72
- # Options:
73
- # p, [--project=user/project]
74
- # n, [--build=build-number]
26
+ Commands:
27
+ circle browse # open circle ci website
28
+ circle build # show build description
29
+ circle builds # list builds
30
+ circle help [COMMAND] # Describe available commands or one specific command
31
+ circle projects # list projects
32
+ circle retry # show build description
33
+ circle version # show gem version
34
+ circle watch # watch a build in real time
35
+
36
+ Options:
37
+ -p user_name/project # specify repository
38
+ -b branch # specify branch name
39
+ -n build_number # specify build number
75
40
  ```
76
41
 
77
42
  ## Contributing
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["unhappychoice"]
10
10
  spec.email = ["unhappychoice@gmail.com"]
11
11
 
12
- spec.summary = %q{CLI tool for Circle CI}
13
- spec.description = %q{A command line tool for circle ci}
12
+ spec.summary = %q{CLI tool for CircleCI}
13
+ spec.description = %q{A command line tool for CircleCI}
14
14
  spec.homepage = "https://github.com/unhappychoice/circler"
15
15
  spec.license = "MIT"
16
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -20,18 +20,18 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  # Production
22
22
  spec.add_dependency 'pusher-client', '~> 0.6.2'
23
- spec.add_dependency 'thor', '~> 0.19.1'
24
- spec.add_dependency 'faraday', '~> 0.9.2'
23
+ spec.add_dependency 'thor', '~> 0.19.4'
24
+ spec.add_dependency 'faraday', '~> 0.11.0'
25
25
  spec.add_dependency 'launchy', '~> 2.4.3'
26
- spec.add_dependency 'circleci', '~> 0.2.0'
27
- spec.add_dependency 'rugged', '~> 0.24.0b11'
28
- spec.add_dependency 'terminal-table', '~> 1.5.2'
26
+ spec.add_dependency 'circleci', '~> 1.0.3'
27
+ spec.add_dependency 'rugged', '~> 0.25.1.1'
28
+ spec.add_dependency 'terminal-table', '~> 1.7.3'
29
29
  spec.add_dependency 'highline', '~> 1.7.8'
30
- spec.add_dependency 'colorize', '~> 0.7.7'
31
- spec.add_dependency 'terminal-notifier', '~> 1.6.3'
30
+ spec.add_dependency 'colorize', '~> 0.8.1'
31
+ spec.add_dependency 'terminal-notifier', '~> 1.7.1'
32
32
 
33
33
  # Development
34
- spec.add_development_dependency "bundler", "~> 1.9"
35
- spec.add_development_dependency "rake", "~> 10.0"
34
+ spec.add_development_dependency "bundler"
35
+ spec.add_development_dependency "rake"
36
36
  spec.add_development_dependency "rspec"
37
37
  end
@@ -24,6 +24,10 @@ module Circler
24
24
  return $1 if origin.url =~ %r{git@github.com:([\w_-]+/[\w_-]+)\.git}
25
25
  nil
26
26
  end
27
+
28
+ def build_number(options)
29
+ options.build || ask('Input build number')
30
+ end
27
31
  end
28
32
  end
29
33
  end
@@ -4,7 +4,7 @@ module Circler
4
4
  def run(options)
5
5
  setup_token
6
6
  username, reponame = project_name(options).split('/')
7
- number = options.build || ask('Input build number')
7
+ number = build_number(options)
8
8
  build = Build.get(username, reponame, number)
9
9
  say StepPrinter.new(build.steps)
10
10
  end
@@ -4,7 +4,7 @@ module Circler
4
4
  def run(options)
5
5
  setup_token
6
6
  username, reponame = project_name(options).split('/')
7
- number = options.build || ask('Input build number')
7
+ number = build_number(options)
8
8
  build = Build.retry(username, reponame, number)
9
9
  if build.username
10
10
  say "build #{build.username}/#{build.reponame} #{build.build_number} is triggered."
@@ -3,36 +3,33 @@ module Circler
3
3
  class << self
4
4
  def run(options)
5
5
  setup_token
6
- say 'Connecting to pusher'.blue
7
6
 
8
- update_builds(options)
9
- setup_client(options)
7
+ build = get_build(options)
10
8
 
11
- say 'Connected'.blue
9
+ if !build.nil? && build.running?
10
+ say 'Connecting to pusher'.blue
11
+ setup_client
12
+ say 'Connected'.blue
12
13
 
13
- loop do
14
- start_watch(@@builds.first) if !@@builds.empty? && !@@running
15
- sleep 1
14
+ start_watch(build)
15
+ wait_until_finish
16
+ finalize(build, build.channel_name)
17
+ else
18
+ say 'The build is not running'
16
19
  end
17
20
  end
18
21
 
19
22
  private
20
23
 
21
- def setup_client(options)
22
- @@running = false
24
+ def setup_client()
23
25
  @@client = CirclerPusherClient.new
24
26
  @@client.connect
25
- @@client.bind("private-#{Account.me.user_name}", 'call') do
26
- @@running = false
27
- update_builds(options)
28
- end
29
27
  end
30
28
 
31
- def update_builds(options)
29
+ def get_build(options)
32
30
  username, reponame = project_name(options).split('/')
33
- @@builds = Build
34
- .all(username, reponame)
35
- .select { |b| b.status == 'running' }
31
+ number = build_number(options)
32
+ Build.get(username, reponame, number)
36
33
  end
37
34
 
38
35
  def start_watch(build)
@@ -40,9 +37,7 @@ module Circler
40
37
  print_bordered "Start watching #{build.username}/#{build.reponame} build ##{build.build_number}".blue
41
38
  TerminalNotifier.notify("Start to build #{build.username}/#{build.reponame} build ##{build.build_number}")
42
39
 
43
- bind_event_handling(build.channel_name + '@0')
44
- wait_until_finish
45
- finalize(build, build.channel_name + '@0')
40
+ bind_event_handling(build.channel_name)
46
41
  end
47
42
 
48
43
  def bind_event_handling(channel)
@@ -70,7 +65,6 @@ module Circler
70
65
  end
71
66
 
72
67
  def finalize(build, channel)
73
- @@builds = @@builds.select { |b| b.build_number != build.build_number }
74
68
  @@client.unsubscribe(channel)
75
69
 
76
70
  print_bordered "Finish watching #{build.username}/#{build.reponame} build ##{build.build_number}".blue
@@ -1,4 +1,3 @@
1
- require 'pp'
2
1
  module Circler
3
2
  class Build
4
3
  class << self
@@ -43,8 +42,12 @@ module Circler
43
42
  @hash['build_num']
44
43
  end
45
44
 
45
+ def running?
46
+ status == 'running'
47
+ end
48
+
46
49
  def channel_name
47
- "private-#{username}@#{reponame}@#{build_number}@vcs-github"
50
+ "private-#{username}@#{reponame}@#{build_number}@vcs-github@0"
48
51
  end
49
52
 
50
53
  def information
@@ -1,3 +1,3 @@
1
1
  module Circler
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: circler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - unhappychoice
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.19.1
33
+ version: 0.19.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.19.1
40
+ version: 0.19.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: faraday
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.9.2
47
+ version: 0.11.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.9.2
54
+ version: 0.11.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: launchy
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,42 +72,42 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.2.0
75
+ version: 1.0.3
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.2.0
82
+ version: 1.0.3
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rugged
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.24.0b11
89
+ version: 0.25.1.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.24.0b11
96
+ version: 0.25.1.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: terminal-table
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.5.2
103
+ version: 1.7.3
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.5.2
110
+ version: 1.7.3
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: highline
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -128,56 +128,56 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.7.7
131
+ version: 0.8.1
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 0.7.7
138
+ version: 0.8.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: terminal-notifier
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 1.6.3
145
+ version: 1.7.1
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 1.6.3
152
+ version: 1.7.1
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: bundler
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: '1.9'
159
+ version: '0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "~>"
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: '1.9'
166
+ version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rake
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - "~>"
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: '10.0'
173
+ version: '0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - "~>"
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: '10.0'
180
+ version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: rspec
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -192,7 +192,7 @@ dependencies:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
- description: A command line tool for circle ci
195
+ description: A command line tool for CircleCI
196
196
  email:
197
197
  - unhappychoice@gmail.com
198
198
  executables:
@@ -254,5 +254,5 @@ rubyforge_project:
254
254
  rubygems_version: 2.4.5.1
255
255
  signing_key:
256
256
  specification_version: 4
257
- summary: CLI tool for Circle CI
257
+ summary: CLI tool for CircleCI
258
258
  test_files: []