awesome_bot 1.8.1 → 1.8.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 60ade84e7c925224c447476c2dff8ca5a1c9a70b
4
- data.tar.gz: 3bfaeb0385871cc68c077bdda4b400bd9cabc368
3
+ metadata.gz: 726c07e82daf1459a589dba86f8bf8bd90d79adc
4
+ data.tar.gz: f4ce4fe61e18889120e8bca78dea385d7881c0d7
5
5
  SHA512:
6
- metadata.gz: 221cfd97f2fb670eee8ff712a129192a020a094bf2d67f9bb15c217de50b7f0aec8e1f5b1097bdca480f9315b49229f2eef1a1707abd149f803177a3034772a7
7
- data.tar.gz: 9d1d26c95e0aeaa8f4f4c8b8ffc1c15b9678372c605dc4429a13b46c80ed70404b7ceafe19e54d31057d2222d9f1316a753383d21595d09a0e0f2414e727bafd
6
+ metadata.gz: 54ac1ad22e1fad497656b06f3e475d609b445dd3e6a8618c922d6b754b166ba8b5f8dec5e499ae6c911b2c087fa038ca7f2ed3e282e0504533cd09fd17d1a2d6
7
+ data.tar.gz: 93aad832332a41e5c6f2e44c9b700d92a663bcce477d3134edb0d9dc7f1b0efc180f5fd60c45accbf8bf1ebdf9e686a4d77210a7b27a16267447ff7be0aa5d37
data/.gitignore CHANGED
@@ -33,3 +33,5 @@ Gemfile.lock
33
33
 
34
34
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
35
35
  .rvmrc
36
+
37
+ results.json
@@ -2,11 +2,18 @@
2
2
 
3
3
  Changes by [Daniel Khamsing][] unless otherwise noted.
4
4
 
5
+ # 1.8.2
6
+
7
+ - [output] add link line number for dupes
8
+ - [fix] output line of link default value, reported by [Julien Bisconti][]
9
+ - write `json` results file
10
+ - isolate and cleanup
11
+
5
12
  # 1.8.1
6
13
 
7
14
  - [output] show link line number, suggested by [Daniel Gomez Rico](https://github.com/danielgomezrico)
8
15
  - [output] improve enumeration with padding
9
- - set default open link timeout to 30 seconds
16
+ - set default open link timeout to 30 seconds
10
17
 
11
18
  # 1.8.0
12
19
 
@@ -50,7 +57,7 @@ Changes by [Daniel Khamsing][] unless otherwise noted.
50
57
 
51
58
  # 1.3.2
52
59
 
53
- - [fix] another error with `)` in link parsing, reported by [Julien Bisconti](https://github.com/veggiemonk)
60
+ - [fix] another error with `)` in link parsing, reported by [Julien Bisconti][]
54
61
 
55
62
  # 1.3.1
56
63
 
@@ -100,4 +107,5 @@ Changes by [Daniel Khamsing][] unless otherwise noted.
100
107
 
101
108
  [Daniel Khamsing]:https://github.com/dkhamsing
102
109
  [Colby M. White]:https://github.com/colbywhite
110
+ [Julien Bisconti]:https://github.com/veggiemonk
103
111
  [R.I. Pienaar]:https://github.com/ripienaar
data/Gemfile CHANGED
@@ -2,3 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
  gem 'rspec_junit_formatter', '0.2.2' # test meta data / ci
5
+ gem 'rspec', '~> 3.4.0' # tests'
data/README.md CHANGED
@@ -45,34 +45,33 @@ Links found: 56, 37 unique
45
45
  37. https://github.com/dkhamsing
46
46
  Checking URLs: ✓✓✓→?✓→✓→→✓✓→✓✓✓→✓✓✓✓✓✓✓✓✓✓✓→✓✓✓✓✓→✓✓
47
47
 
48
- Issues :-(
49
- > Links
50
- 1. [L007] 301 https://travis-ci.org/dkhamsing/awesome_bot.svg → https://api.travis-ci.org/dkhamsing/awesome_bot.svg
51
- 2. [L008] 302 https://badge.fury.io/rb/awesome_bot → http://rubygems.org/gems/awesome_bot
48
+ Issues :-(
49
+ > Links
50
+ 1. [L007] 301 https://travis-ci.org/dkhamsing/awesome_bot.svg → https://api.travis-ci.org/dkhamsing/awesome_bot.svg
51
+ 2. [L008] 302 https://badge.fury.io/rb/awesome_bot → http://rubygems.org/gems/awesome_bot
52
52
  # ...
53
- > Dupes
54
- 1. https://github.com/sindresorhus/awesome
55
- 2. http://i.giphy.com/urvsFBDfR6N32.gif
53
+ > Dupes
54
+ 1. [L03] https://github.com/sindresorhus/awesome
55
+ 2. [L05] http://i.giphy.com/urvsFBDfR6N32.gif
56
56
  # ...
57
57
  ```
58
58
 
59
59
  ```shell
60
- $ awesome_bot README.md --allow-dupe --white-list travis,badge,rubydoc,rubygems,giphy,gph
60
+ $ awesome_bot README.md --allow-dupe --allow-redirect --white-list rubydoc,giphy
61
61
  > Checking links in README.md
62
+ > Will allow redirects
62
63
  > Will allow duplicate links
63
- > White list links matching: travis, badge, rubydoc, rubygems, giphy, gph
64
- Links to check: 21, 27 white listed, 16 unique
64
+ > White list links matching: rubydoc, giphy
65
+ Links to check: 41, 5 white listed, 29 unique
65
66
  01. https://github.com/sindresorhus/awesome
66
- 02. https://circleci.com/gh/dkhamsing/awesome_bot
67
- 03. https://github.com/dkhamsing
67
+ 02. https://travis-ci.org/dkhamsing/awesome_bot.svg
68
68
  # ...
69
- Checking URLs: ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓
70
- Checking white listed URLs: ✓✓✓→→?✓→→✓→✓→✓→✓→✓
69
+ Checking URLs: ✓✓→✓✓→→→✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓→✓✓✓→✓
70
+ Checking white listed URLs: ?✓
71
71
 
72
72
  > White listed:
73
- 01. [L005] 200 http://i.giphy.com/urvsFBDfR6N32.gif
74
- 02. [L007] 200 https://img.shields.io/badge/tests-circle%20ci-brightgreen.svg
75
- # ...
73
+ 1. [L005] 200 http://i.giphy.com/urvsFBDfR6N32.gif
74
+ 2. [L093] 202 http://www.rubydoc.info/gems/awesome_bot
76
75
  No issues :-)
77
76
  ```
78
77
 
@@ -20,8 +20,6 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ['lib']
21
21
 
22
22
  spec.required_ruby_version = '>= 2.0.0'
23
-
24
- spec.add_runtime_dependency 'parallel', '~> 1.6.1' # threading
25
23
 
26
- spec.add_development_dependency 'rspec', '~> 3.4.0' # tests'
24
+ spec.add_runtime_dependency 'parallel', '~> 1.6.1' # threading
27
25
  end
data/circle.yml CHANGED
@@ -1,3 +1,6 @@
1
1
  machine:
2
2
  ruby:
3
3
  version: 2.2.0
4
+ test:
5
+ override:
6
+ - bundle exec rspec -fd -r rspec_junit_formatter --format RspecJunitFormatter -o $CIRCLE_TEST_REPORTS/rspec/junit.xml
@@ -1,5 +1,5 @@
1
1
  require 'awesome_bot/links'
2
- require 'awesome_bot/log'
2
+ require 'awesome_bot/output'
3
3
  require 'awesome_bot/result'
4
4
  require 'awesome_bot/statuses'
5
5
 
@@ -7,25 +7,8 @@ require 'awesome_bot/statuses'
7
7
  module AwesomeBot
8
8
  NUMBER_OF_THREADS = 10
9
9
 
10
- STATUS_OK = '✓'
11
- STATUS_OTHER = '?'
12
- STATUS_400s = 'x'
13
- STATUS_REDIRECT = '→'
14
-
15
10
  class << self
16
- def log_status(s, log)
17
- if status_is_redirected? s
18
- log.addp STATUS_REDIRECT
19
- elsif s == 200
20
- log.addp STATUS_OK
21
- elsif (s > 399 && s < 500)
22
- log.addp STATUS_400s
23
- else
24
- log.addp STATUS_OTHER
25
- end
26
- end
27
-
28
- def check(content, options=nil, log = Log.new)
11
+ def check(content, options=nil)
29
12
  if options.nil?
30
13
  white_listed = nil
31
14
  skip_dupe = false
@@ -36,42 +19,43 @@ module AwesomeBot
36
19
  timeout = options['timeout']
37
20
  end
38
21
 
39
- log.add '> Will allow duplicate links' if skip_dupe
22
+ yield "> Will allow duplicate links \n" if skip_dupe && block_given?
40
23
 
41
24
  temp = links_filter(links_find(content))
42
25
 
43
26
  r = Result.new(temp, white_listed)
44
27
  r.skip_dupe = skip_dupe
45
28
 
46
- log.add "> White list links matching: #{white_listed.join ', '}" if r.white_listing
29
+ yield "> White list links matching: #{white_listed.join ', '} \n" if r.white_listing && block_given?
47
30
 
48
31
  r.dupes = r.links.select { |e| r.links.count(e) > 1 }
49
32
 
50
- log.addp "Links to check: #{r.links.count}"
51
- log.addp ", #{r.links_white_listed.count} white listed" if r.white_listing
33
+ yield "Links to check: #{r.links.count}" if block_given?
34
+ yield ", #{r.links_white_listed.count} white listed" if r.white_listing && block_given?
52
35
  uniq = r.links.uniq.count
53
- log.addp ", #{uniq} unique" if uniq != r.links.count
54
- log.add ''
36
+
37
+ yield ", #{uniq} unique" if uniq != r.links.count && block_given?
38
+ yield "\n" if block_given?
39
+ total = pad_list r.links.uniq
55
40
  r.links.uniq.each_with_index do |u, j|
56
- format = "%0#{r.links.uniq.count.to_s.size}d"
57
- log.add " #{sprintf format, j + 1}. #{u}"
41
+ yield " #{pad_text j + 1, total}. #{u} \n" if block_given?
58
42
  end
59
43
 
60
- log.addp 'Checking URLs: ' if r.links.count > 0
44
+ yield 'Checking URLs: ' if block_given? && r.links.count > 0
61
45
  r.status =
62
46
  statuses(r.links.uniq, NUMBER_OF_THREADS, timeout) do |s|
63
- log_status s, log
47
+ yield log_status s if block_given?
64
48
  end
65
- log.add ''
49
+ yield "\n" if block_given?
66
50
 
67
51
  return r if !r.white_listing || (r.links_white_listed.count == 0)
68
52
 
69
- log.addp 'Checking white listed URLs: '
53
+ yield 'Checking white listed URLs: ' if block_given?
70
54
  r.white_listed =
71
55
  statuses(r.links_white_listed.uniq, NUMBER_OF_THREADS, nil) do |s|
72
- log_status s, log
56
+ yield log_status s if block_given?
73
57
  end
74
- log.add ''
58
+ yield "\n" if block_given?
75
59
 
76
60
  r
77
61
  end # check
@@ -1,5 +1,5 @@
1
1
  require 'awesome_bot/check'
2
- require 'awesome_bot/log'
2
+ require 'awesome_bot/output'
3
3
  require 'awesome_bot/result'
4
4
  require 'awesome_bot/statuses'
5
5
  require 'awesome_bot/version'
@@ -12,6 +12,8 @@ module AwesomeBot
12
12
  OPTION_TIMEOUT_SET = 'set-timeout'
13
13
  OPTION_WHITE_LIST = 'white-list'
14
14
 
15
+ RESULTS_FILE = 'results.json'
16
+
15
17
  USAGE = "\t"
16
18
 
17
19
  class << self
@@ -19,53 +21,12 @@ module AwesomeBot
19
21
  "--#{o}"
20
22
  end
21
23
 
22
- def loc_formatted(loc, largest=3)
23
- format = "%0#{largest}d"
24
- line = "#{sprintf format, loc}"
25
- "[L#{line}] "
26
- end
27
-
28
- def loc(x, content)
29
- count = 0
30
- lines = content.split "\n"
31
- lines.each do |l|
32
- count += 1
33
- return count if l.include? x
34
- end
35
- end
36
-
37
- def number_of_digits(content)
38
- lines = content.split "\n"
39
- return lines.count.to_s.size
40
- end
41
-
42
- def order_by_loc(list, content)
43
- list.each do |x|
44
- x['loc'] = loc x['url'], content
45
- end
46
-
47
- s = list.sort_by { |h| h['loc'] }
48
- return s
49
- end
50
-
51
- def output(x, k, total, largest)
52
- format = "%0#{total}d"
53
- print " #{sprintf format, k + 1}. "
54
- s = x['status']
55
- print loc_formatted x['loc'], largest
56
- print "#{s} " unless s== STATUS_ERROR
57
- print "#{x['url']}"
58
- print " #{x['error']}" if s == STATUS_ERROR
59
- print " #{STATUS_REDIRECT} #{x['headers']['location']}" if status_is_redirected? s
60
- puts ''
61
- end
62
-
63
24
  def cli
64
- option_d = make_option OPTION_DUPE
65
- option_r = make_option OPTION_REDIRECT
66
- option_t = make_option OPTION_TIMEOUT_SET
25
+ option_d = make_option OPTION_DUPE
26
+ option_r = make_option OPTION_REDIRECT
27
+ option_t = make_option OPTION_TIMEOUT_SET
67
28
  option_t_a = make_option OPTION_TIMEOUT_ALLOW
68
- option_w = make_option OPTION_WHITE_LIST
29
+ option_w = make_option OPTION_WHITE_LIST
69
30
 
70
31
  options = [
71
32
  option_d,
@@ -141,27 +102,27 @@ module AwesomeBot
141
102
  allow_timeouts = false
142
103
  end
143
104
 
144
- log = Log.new(true)
145
-
146
105
  options = {
147
106
  'whitelist' => white_listed,
148
107
  'allowdupe' => skip_dupe,
149
108
  'timeout' => timeout
150
109
  }
151
- r = check(content, options, log)
110
+ r = check content, options do |o|
111
+ print o
112
+ end
152
113
 
153
114
  digits = number_of_digits content
154
115
  unless r.white_listed.nil?
155
116
  puts "\n> White listed:"
156
117
  o = order_by_loc r.white_listed, content
157
118
  o.each_with_index do |x, k|
158
- output x, k, o.count.to_s.size, digits
119
+ puts output x, k, pad_list(o), digits
159
120
  end
160
121
  end
161
122
 
162
123
  if r.success(allow_redirects, allow_timeouts) == true
163
124
  puts 'No issues :-)'
164
- # exit ?
125
+ r.write RESULTS_FILE
165
126
  else
166
127
  puts "\nIssues :-("
167
128
 
@@ -171,7 +132,7 @@ module AwesomeBot
171
132
  else
172
133
  o = order_by_loc r.statuses_issues(allow_redirects, allow_timeouts), content
173
134
  o.each_with_index do |x, k|
174
- output x, k, o.count.to_s.size, digits
135
+ puts output x, k, pad_list(o), digits
175
136
  end
176
137
  end
177
138
 
@@ -180,10 +141,26 @@ module AwesomeBot
180
141
  if r.success_dupe
181
142
  puts " None #{STATUS_OK}"
182
143
  else
183
- r.dupes.uniq.each_with_index { |d, m| puts " #{m + 1}. #{d}" }
144
+ dupe_hash = r.dupes.uniq.map do |x|
145
+ temp = {}
146
+ temp['url'] = x
147
+ temp
148
+ end
149
+ o = order_by_loc dupe_hash, content
150
+ largest = o.last['loc'].to_s.size
151
+ o.each_with_index do |d, index|
152
+ print " #{pad_text index + 1, pad_list(r.dupes.uniq)}. "
153
+ url = d['url']
154
+ print loc_formatted d['loc'], largest
155
+ puts " #{url}"
156
+ end
184
157
  end
185
158
  end
186
159
 
160
+ # write results json
161
+ r.write RESULTS_FILE
162
+ puts "\nWrote results to #{RESULTS_FILE}"
163
+
187
164
  exit 1
188
165
  end
189
166
  end
@@ -1,7 +1,5 @@
1
1
  # Get and filter links
2
2
  module AwesomeBot
3
- require 'uri'
4
-
5
3
  class << self
6
4
  def links_filter(list)
7
5
  list.reject { |x| x.length < 9 }
@@ -17,6 +15,8 @@ module AwesomeBot
17
15
  x.gsub(/\).*/, '')
18
16
  elsif x.include? '[' # adoc
19
17
  x.gsub(/\[.*/, '')
18
+ elsif x[-1]=='.'
19
+ x[0..-2]
20
20
  else
21
21
  x
22
22
  end
@@ -24,6 +24,7 @@ module AwesomeBot
24
24
  end
25
25
 
26
26
  def links_find(content)
27
+ require 'uri'
27
28
  URI.extract(content, /http()s?/)
28
29
  end
29
30
  end # class
@@ -0,0 +1,78 @@
1
+ # Output helpers
2
+ module AwesomeBot
3
+ STATUS_OK = '✓'
4
+ STATUS_OTHER = '?'
5
+ STATUS_400s = 'x'
6
+ STATUS_REDIRECT = '→'
7
+
8
+ class << self
9
+ def loc(x, content)
10
+ count = 0
11
+ lines = content.split "\n"
12
+ lines.each do |l|
13
+ count += 1
14
+ return count if l.include? x
15
+ end
16
+ return count
17
+ end
18
+
19
+ def loc_formatted(loc, largest=3)
20
+ line = pad_text loc, largest
21
+ "[L#{line}]"
22
+ end
23
+
24
+ def log_status(s)
25
+ if status_is_redirected? s
26
+ return STATUS_REDIRECT
27
+ elsif s == 200
28
+ return STATUS_OK
29
+ elsif (s > 399 && s < 500)
30
+ return STATUS_400s
31
+ else
32
+ return STATUS_OTHER
33
+ end
34
+ end
35
+
36
+ def number_of_digits(content)
37
+ lines = content.split "\n"
38
+ return pad_list lines
39
+ end
40
+
41
+ def order_by_loc(list, content)
42
+ list.each do |x|
43
+ x['loc'] = loc x['url'], content
44
+ end
45
+
46
+ s = list.sort_by { |h| h['loc'] }
47
+ return s
48
+ end
49
+
50
+ def output(x, index, total, largest)
51
+ s = x['status']
52
+
53
+ " #{pad_text index + 1, total}. " \
54
+ "#{loc_formatted x['loc'], largest} " \
55
+ "#{s == STATUS_ERROR ? '' : s} " \
56
+ "#{x['url']} " \
57
+ "#{s == STATUS_ERROR ? x['error'] : ''}" \
58
+ "#{output_redirect x} \n"
59
+ end
60
+
61
+ def output_redirect(x)
62
+ if status_is_redirected? x['status']
63
+ " #{STATUS_REDIRECT} #{x['headers']['location']}"
64
+ else
65
+ ''
66
+ end
67
+ end
68
+
69
+ def pad_list(list)
70
+ list.count.to_s.size
71
+ end
72
+
73
+ def pad_text(number, digits)
74
+ format = "%0#{digits}d"
75
+ "#{sprintf format, number}"
76
+ end
77
+ end # class
78
+ end
@@ -58,5 +58,21 @@ module AwesomeBot
58
58
  def white_listing
59
59
  !@w.nil?
60
60
  end
61
+
62
+ def write(filename)
63
+ require 'json'
64
+
65
+ r = write_artifacts
66
+ File.open(filename, 'w') { |f| f.write r.to_json }
67
+ end
68
+
69
+ def write_artifacts
70
+ require 'date'
71
+ {
72
+ 'date'=>Time.now,
73
+ 'links'=>@links,
74
+ 'results'=>statuses_issues
75
+ }
76
+ end
61
77
  end # class
62
78
  end
@@ -1,20 +1,24 @@
1
1
  # Get link status
2
2
  module AwesomeBot
3
- require 'net/http'
4
- require 'openssl'
5
- require 'uri'
6
-
7
- require 'parallel'
8
-
9
3
  STATUS_ERROR = -1
10
4
 
11
5
  class << self
12
- def net_status(url, head, timeout=30)
6
+ def net_status(url, timeout=30)
7
+ require 'net/http'
8
+ require 'openssl'
9
+ require 'uri'
10
+
13
11
  uri = URI.parse url
14
12
  Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https', :open_timeout => timeout) do |http|
15
13
  request = Net::HTTP::Get.new uri
16
14
  response = http.request request
17
- return response
15
+
16
+ code = response.code==nil ? 200 : response.code.to_i
17
+
18
+ headers = {}
19
+ response.each { |k, v| headers[k] = v }
20
+
21
+ return [code, headers]
18
22
  end
19
23
  end
20
24
 
@@ -22,14 +26,13 @@ module AwesomeBot
22
26
  (status > 299) && (status < 400)
23
27
  end
24
28
 
25
- def statuses(links, threads, timeout, head=false)
29
+ def statuses(links, threads, timeout)
30
+ require 'parallel'
31
+
26
32
  statuses = []
27
33
  Parallel.each(links, in_threads: threads) do |u|
28
34
  begin
29
- response = net_status u, head, timeout
30
- status = response.code==nil ? 200 : response.code.to_i
31
- headers = {}
32
- response.each { |k, v| headers[k] = v }
35
+ status, headers = net_status u, timeout
33
36
  error = nil # nil (success)
34
37
  rescue => e
35
38
  status = STATUS_ERROR
@@ -37,7 +40,7 @@ module AwesomeBot
37
40
  error = e
38
41
  end
39
42
 
40
- yield status, u
43
+ yield status, u if block_given?
41
44
  statuses.push('url' => u, 'status' => status, 'error' => error, 'headers' => headers)
42
45
  end # Parallel
43
46
 
@@ -5,5 +5,5 @@ module AwesomeBot
5
5
  'Great for "awesome" projects.'
6
6
  PROJECT_URL = 'https://github.com/dkhamsing/awesome_bot'
7
7
 
8
- VERSION = '1.8.1'
8
+ VERSION = '1.8.2'
9
9
  end
@@ -3,8 +3,8 @@ tiimgreen/github-cheat-sheet
3
3
  enaqx/awesome-react
4
4
  ziadoz/awesome-php
5
5
  vsouza/awesome-ios
6
- cjwirth/awesome-ios-ui
7
6
  matteocrippa/awesome-swift
7
+ cjwirth/awesome-ios-ui
8
8
  herrbischoff/awesome-osx-command-line
9
9
  alebcay/awesome-shell
10
10
  wsargent/docker-cheat-sheet
@@ -16,72 +16,75 @@ rosarior/awesome-django
16
16
  n1trux/awesome-sysadmin
17
17
  pcqpcq/open-source-android-apps
18
18
  veggiemonk/awesome-docker
19
- willianjusten/awesome-svg
20
19
  ellisonleao/magictools
20
+ willianjusten/awesome-svg
21
21
  dhamaniasad/awesome-postgres
22
- JStumpp/awesome-android
23
22
  humiaozuzu/awesome-flask
23
+ JStumpp/awesome-android
24
24
  dariubs/GoBooks
25
25
  unixorn/awesome-zsh-plugins
26
+ chentsulin/awesome-graphql
26
27
  arslanbilal/git-cheat-sheet
27
28
  dahlia/awesome-sqlalchemy
28
- chentsulin/awesome-graphql
29
29
  webpro/awesome-dotfiles
30
30
  ashishb/android-security-awesome
31
31
  rshipp/awesome-malware-analysis
32
32
  mfornos/awesome-microservices
33
33
  lerrua/remote-jobs-brazil
34
34
  sitepoint/awesome-symfony
35
+ isRuslan/awesome-elm
35
36
  watson/awesome-computer-history
36
37
  wbinnssmith/awesome-promises
37
- isRuslan/awesome-elm
38
38
  dotfiles/dotfiles.github.com
39
39
  diegocard/awesome-html5
40
40
  stefanbuck/awesome-browser-extensions-for-github
41
41
  fasouto/awesome-dataviz
42
- RichardLitt/awesome-conferences
43
42
  sotayamashita/awesome-css
44
- FriendsOfCake/awesome-cakephp
43
+ RichardLitt/awesome-conferences
45
44
  uraimo/Awesome-Swift-Playgrounds
45
+ FriendsOfCake/awesome-cakephp
46
46
  caesar0301/awesome-pcaptools
47
47
  matteofigus/awesome-speaking
48
48
  matiassingers/awesome-readme
49
49
  najela/discount-for-student-dev
50
50
  afonsopacifer/awesome-flexbox
51
- burningtree/awesome-json
52
51
  JavaBy/awesome-kotlin
52
+ burningtree/awesome-json
53
53
  vredniy/awesome-newsletters
54
54
  vredniy/awesome-newsletters
55
55
  uralbash/awesome-pyramid
56
56
  ahkscript/awesome-AutoHotkey
57
- HQarroum/awesome-iot
58
57
  aleksandar-todorovic/awesome-c
58
+ HQarroum/awesome-iot
59
59
  phillipadsmith/awesome-github
60
- iJackUA/awesome-vagrant
61
60
  sergeyklay/awesome-phalcon
62
- yenchenlin1994/awesome-watchos
61
+ iJackUA/awesome-vagrant
63
62
  ipfs/awesome-ipfs
63
+ yenchenlin1994/awesome-watchos
64
+ MakinGiants/awesome-mobile-dev
65
+ MakinGiants/awesome-mobile-dev
64
66
  notthetup/awesome-webaudio
67
+ ramitsurana/awesome-kubernetes
68
+ fisherman/awesome-fish
65
69
  deanhume/typography
66
- MakinGiants/awesome-mobile-dev
67
- filipelinhares/awesome-slack
68
70
  lnishan/awesome-competitive-programming
69
- ramitsurana/awesome-kubernetes
71
+ filipelinhares/awesome-slack
70
72
  brunopulis/awesome-a11y
71
73
  brabadu/awesome-fonts
72
74
  vinkla/awesome-fuse
75
+ benoitjadinon/awesome-xamarin
73
76
  christian-bromann/awesome-selenium
74
- unixorn/git-extra-commands
75
77
  mark-rushakoff/awesome-influxdb
76
- benoitjadinon/awesome-xamarin
78
+ unixorn/git-extra-commands
77
79
  RichardLitt/endangered-languages
78
- vkarampinis/awesome-icons
79
80
  Neueda4j/awesome-neo4j
81
+ vkarampinis/awesome-icons
80
82
  rabbiabram/awesome-fortran
81
83
  tedyoung/awesome-java8
82
84
  yangshun/awesome-spinners
83
- wfhio/awesome-job-boards
84
85
  joubertredrat/awesome-devops
86
+ wfhio/awesome-job-boards
85
87
  ipfs/weekly
88
+ jjaderg/awesome-postcss
86
89
  stve/awesome-dropwizard
87
90
  ramitsurana/awesome-openstack
@@ -1,6 +1,6 @@
1
1
  # Awesome Status
2
2
 
3
- Build status for **89** projects using https://github.com/dkhamsing/awesome_bot
3
+ Build status for **91** projects using https://github.com/dkhamsing/awesome_bot
4
4
 
5
5
  Status | Config | Repo
6
6
  --- | --- | ---
@@ -9,8 +9,8 @@ Status | Config | Repo
9
9
  [![Build Status](https://travis-ci.org/enaqx/awesome-react.svg)](https://travis-ci.org/enaqx/awesome-react) | [`config`](https://github.com/enaqx/awesome-react/blob/master/.travis.yml) | [enaqx/awesome-react](https://github.com/enaqx/awesome-react)
10
10
  [![Build Status](https://travis-ci.org/ziadoz/awesome-php.svg)](https://travis-ci.org/ziadoz/awesome-php) | [`config`](https://github.com/ziadoz/awesome-php/blob/master/.travis.yml) | [ziadoz/awesome-php](https://github.com/ziadoz/awesome-php)
11
11
  [![Build Status](https://travis-ci.org/vsouza/awesome-ios.svg)](https://travis-ci.org/vsouza/awesome-ios) | [`config`](https://github.com/vsouza/awesome-ios/blob/master/.travis.yml) | [vsouza/awesome-ios](https://github.com/vsouza/awesome-ios)
12
- [![Build Status](https://travis-ci.org/cjwirth/awesome-ios-ui.svg)](https://travis-ci.org/cjwirth/awesome-ios-ui) | [`config`](https://github.com/cjwirth/awesome-ios-ui/blob/master/.travis.yml) | [cjwirth/awesome-ios-ui](https://github.com/cjwirth/awesome-ios-ui)
13
12
  [![Build Status](https://travis-ci.org/matteocrippa/awesome-swift.svg)](https://travis-ci.org/matteocrippa/awesome-swift) | [`config`](https://github.com/matteocrippa/awesome-swift/blob/master/.travis.yml) | [matteocrippa/awesome-swift](https://github.com/matteocrippa/awesome-swift)
13
+ [![Build Status](https://travis-ci.org/cjwirth/awesome-ios-ui.svg)](https://travis-ci.org/cjwirth/awesome-ios-ui) | [`config`](https://github.com/cjwirth/awesome-ios-ui/blob/master/.travis.yml) | [cjwirth/awesome-ios-ui](https://github.com/cjwirth/awesome-ios-ui)
14
14
  [![Build Status](https://travis-ci.org/herrbischoff/awesome-osx-command-line.svg)](https://travis-ci.org/herrbischoff/awesome-osx-command-line) | [`config`](https://github.com/herrbischoff/awesome-osx-command-line/blob/master/.travis.yml) | [herrbischoff/awesome-osx-command-line](https://github.com/herrbischoff/awesome-osx-command-line)
15
15
  [![Build Status](https://travis-ci.org/alebcay/awesome-shell.svg)](https://travis-ci.org/alebcay/awesome-shell) | [`config`](https://github.com/alebcay/awesome-shell/blob/master/.travis.yml) | [alebcay/awesome-shell](https://github.com/alebcay/awesome-shell)
16
16
  [![Build Status](https://travis-ci.org/wsargent/docker-cheat-sheet.svg)](https://travis-ci.org/wsargent/docker-cheat-sheet) | [`config`](https://github.com/wsargent/docker-cheat-sheet/blob/master/.travis.yml) | [wsargent/docker-cheat-sheet](https://github.com/wsargent/docker-cheat-sheet)
@@ -22,74 +22,76 @@ Status | Config | Repo
22
22
  [![Build Status](https://travis-ci.org/n1trux/awesome-sysadmin.svg)](https://travis-ci.org/n1trux/awesome-sysadmin) | [`config`](https://github.com/n1trux/awesome-sysadmin/blob/master/.travis.yml) | [n1trux/awesome-sysadmin](https://github.com/n1trux/awesome-sysadmin)
23
23
  [![Build Status](https://travis-ci.org/pcqpcq/open-source-android-apps.svg)](https://travis-ci.org/pcqpcq/open-source-android-apps) | [`config`](https://github.com/pcqpcq/open-source-android-apps/blob/master/.travis.yml) | [pcqpcq/open-source-android-apps](https://github.com/pcqpcq/open-source-android-apps)
24
24
  [![Build Status](https://travis-ci.org/veggiemonk/awesome-docker.svg)](https://travis-ci.org/veggiemonk/awesome-docker) | [`config`](https://github.com/veggiemonk/awesome-docker/blob/master/.travis.yml) | [veggiemonk/awesome-docker](https://github.com/veggiemonk/awesome-docker)
25
- [![Build Status](https://travis-ci.org/willianjusten/awesome-svg.svg)](https://travis-ci.org/willianjusten/awesome-svg) | [`config`](https://github.com/willianjusten/awesome-svg/blob/master/.travis.yml) | [willianjusten/awesome-svg](https://github.com/willianjusten/awesome-svg)
26
25
  [![Build Status](https://travis-ci.org/ellisonleao/magictools.svg)](https://travis-ci.org/ellisonleao/magictools) | [`config`](https://github.com/ellisonleao/magictools/blob/master/.travis.yml) | [ellisonleao/magictools](https://github.com/ellisonleao/magictools)
26
+ [![Build Status](https://travis-ci.org/willianjusten/awesome-svg.svg)](https://travis-ci.org/willianjusten/awesome-svg) | [`config`](https://github.com/willianjusten/awesome-svg/blob/master/.travis.yml) | [willianjusten/awesome-svg](https://github.com/willianjusten/awesome-svg)
27
27
  [![Build Status](https://travis-ci.org/dhamaniasad/awesome-postgres.svg)](https://travis-ci.org/dhamaniasad/awesome-postgres) | [`config`](https://github.com/dhamaniasad/awesome-postgres/blob/master/.travis.yml) | [dhamaniasad/awesome-postgres](https://github.com/dhamaniasad/awesome-postgres)
28
- [![Build Status](https://travis-ci.org/JStumpp/awesome-android.svg)](https://travis-ci.org/JStumpp/awesome-android) | [`config`](https://github.com/JStumpp/awesome-android/blob/master/.travis.yml) | [JStumpp/awesome-android](https://github.com/JStumpp/awesome-android)
29
28
  [![Build Status](https://travis-ci.org/humiaozuzu/awesome-flask.svg)](https://travis-ci.org/humiaozuzu/awesome-flask) | [`config`](https://github.com/humiaozuzu/awesome-flask/blob/master/.travis.yml) | [humiaozuzu/awesome-flask](https://github.com/humiaozuzu/awesome-flask)
29
+ [![Build Status](https://travis-ci.org/JStumpp/awesome-android.svg)](https://travis-ci.org/JStumpp/awesome-android) | [`config`](https://github.com/JStumpp/awesome-android/blob/master/.travis.yml) | [JStumpp/awesome-android](https://github.com/JStumpp/awesome-android)
30
30
  [![Build Status](https://travis-ci.org/dariubs/GoBooks.svg)](https://travis-ci.org/dariubs/GoBooks) | [`config`](https://github.com/dariubs/GoBooks/blob/master/.travis.yml) | [dariubs/GoBooks](https://github.com/dariubs/GoBooks)
31
31
  [![Build Status](https://travis-ci.org/unixorn/awesome-zsh-plugins.svg)](https://travis-ci.org/unixorn/awesome-zsh-plugins) | [`config`](https://github.com/unixorn/awesome-zsh-plugins/blob/master/.travis.yml) | [unixorn/awesome-zsh-plugins](https://github.com/unixorn/awesome-zsh-plugins)
32
+ [![Build Status](https://travis-ci.org/chentsulin/awesome-graphql.svg)](https://travis-ci.org/chentsulin/awesome-graphql) | [`config`](https://github.com/chentsulin/awesome-graphql/blob/master/.travis.yml) | [chentsulin/awesome-graphql](https://github.com/chentsulin/awesome-graphql)
32
33
  [![Build Status](https://travis-ci.org/arslanbilal/git-cheat-sheet.svg)](https://travis-ci.org/arslanbilal/git-cheat-sheet) | [`config`](https://github.com/arslanbilal/git-cheat-sheet/blob/master/.travis.yml) | [arslanbilal/git-cheat-sheet](https://github.com/arslanbilal/git-cheat-sheet)
33
34
  [![Build Status](https://travis-ci.org/dahlia/awesome-sqlalchemy.svg)](https://travis-ci.org/dahlia/awesome-sqlalchemy) | [`config`](https://github.com/dahlia/awesome-sqlalchemy/blob/master/.travis.yml) | [dahlia/awesome-sqlalchemy](https://github.com/dahlia/awesome-sqlalchemy)
34
- [![Build Status](https://travis-ci.org/chentsulin/awesome-graphql.svg)](https://travis-ci.org/chentsulin/awesome-graphql) | [`config`](https://github.com/chentsulin/awesome-graphql/blob/master/.travis.yml) | [chentsulin/awesome-graphql](https://github.com/chentsulin/awesome-graphql)
35
35
  [![Build Status](https://travis-ci.org/webpro/awesome-dotfiles.svg)](https://travis-ci.org/webpro/awesome-dotfiles) | [`config`](https://github.com/webpro/awesome-dotfiles/blob/master/.travis.yml) | [webpro/awesome-dotfiles](https://github.com/webpro/awesome-dotfiles)
36
36
  [![Build Status](https://travis-ci.org/ashishb/android-security-awesome.svg)](https://travis-ci.org/ashishb/android-security-awesome) | [`config`](https://github.com/ashishb/android-security-awesome/blob/master/.travis.yml) | [ashishb/android-security-awesome](https://github.com/ashishb/android-security-awesome)
37
37
  [![Build Status](https://travis-ci.org/rshipp/awesome-malware-analysis.svg)](https://travis-ci.org/rshipp/awesome-malware-analysis) | [`config`](https://github.com/rshipp/awesome-malware-analysis/blob/master/.travis.yml) | [rshipp/awesome-malware-analysis](https://github.com/rshipp/awesome-malware-analysis)
38
38
  [![Build Status](https://travis-ci.org/mfornos/awesome-microservices.svg)](https://travis-ci.org/mfornos/awesome-microservices) | [`config`](https://github.com/mfornos/awesome-microservices/blob/master/.travis.yml) | [mfornos/awesome-microservices](https://github.com/mfornos/awesome-microservices)
39
39
  [![Build Status](https://travis-ci.org/lerrua/remote-jobs-brazil.svg)](https://travis-ci.org/lerrua/remote-jobs-brazil) | [`config`](https://github.com/lerrua/remote-jobs-brazil/blob/master/.travis.yml) | [lerrua/remote-jobs-brazil](https://github.com/lerrua/remote-jobs-brazil)
40
40
  [![Build Status](https://travis-ci.org/sitepoint/awesome-symfony.svg)](https://travis-ci.org/sitepoint/awesome-symfony) | [`config`](https://github.com/sitepoint/awesome-symfony/blob/master/.travis.yml) | [sitepoint/awesome-symfony](https://github.com/sitepoint/awesome-symfony)
41
+ [![Build Status](https://travis-ci.org/isRuslan/awesome-elm.svg)](https://travis-ci.org/isRuslan/awesome-elm) | [`config`](https://github.com/isRuslan/awesome-elm/blob/master/.travis.yml) | [isRuslan/awesome-elm](https://github.com/isRuslan/awesome-elm)
41
42
  [![Build Status](https://travis-ci.org/watson/awesome-computer-history.svg)](https://travis-ci.org/watson/awesome-computer-history) | [`config`](https://github.com/watson/awesome-computer-history/blob/master/.travis.yml) | [watson/awesome-computer-history](https://github.com/watson/awesome-computer-history)
42
43
  [![Build Status](https://travis-ci.org/wbinnssmith/awesome-promises.svg)](https://travis-ci.org/wbinnssmith/awesome-promises) | [`config`](https://github.com/wbinnssmith/awesome-promises/blob/master/.travis.yml) | [wbinnssmith/awesome-promises](https://github.com/wbinnssmith/awesome-promises)
43
- [![Build Status](https://travis-ci.org/isRuslan/awesome-elm.svg)](https://travis-ci.org/isRuslan/awesome-elm) | [`config`](https://github.com/isRuslan/awesome-elm/blob/master/.travis.yml) | [isRuslan/awesome-elm](https://github.com/isRuslan/awesome-elm)
44
44
  [![Build Status](https://travis-ci.org/dotfiles/dotfiles.github.com.svg)](https://travis-ci.org/dotfiles/dotfiles.github.com) | [`config`](https://github.com/dotfiles/dotfiles.github.com/blob/master/.travis.yml) | [dotfiles/dotfiles.github.com](https://github.com/dotfiles/dotfiles.github.com)
45
45
  [![Build Status](https://travis-ci.org/diegocard/awesome-html5.svg)](https://travis-ci.org/diegocard/awesome-html5) | [`config`](https://github.com/diegocard/awesome-html5/blob/master/.travis.yml) | [diegocard/awesome-html5](https://github.com/diegocard/awesome-html5)
46
46
  [![Build Status](https://travis-ci.org/stefanbuck/awesome-browser-extensions-for-github.svg)](https://travis-ci.org/stefanbuck/awesome-browser-extensions-for-github) | [`config`](https://github.com/stefanbuck/awesome-browser-extensions-for-github/blob/master/.travis.yml) | [stefanbuck/awesome-browser-extensions-for-github](https://github.com/stefanbuck/awesome-browser-extensions-for-github)
47
47
  [![Build Status](https://travis-ci.org/fasouto/awesome-dataviz.svg)](https://travis-ci.org/fasouto/awesome-dataviz) | [`config`](https://github.com/fasouto/awesome-dataviz/blob/master/.travis.yml) | [fasouto/awesome-dataviz](https://github.com/fasouto/awesome-dataviz)
48
- [![Build Status](https://travis-ci.org/RichardLitt/awesome-conferences.svg)](https://travis-ci.org/RichardLitt/awesome-conferences) | [`config`](https://github.com/RichardLitt/awesome-conferences/blob/master/.travis.yml) | [RichardLitt/awesome-conferences](https://github.com/RichardLitt/awesome-conferences)
49
48
  [![Build Status](https://travis-ci.org/sotayamashita/awesome-css.svg)](https://travis-ci.org/sotayamashita/awesome-css) | [`config`](https://github.com/sotayamashita/awesome-css/blob/master/.travis.yml) | [sotayamashita/awesome-css](https://github.com/sotayamashita/awesome-css)
50
- [![Build Status](https://travis-ci.org/FriendsOfCake/awesome-cakephp.svg)](https://travis-ci.org/FriendsOfCake/awesome-cakephp) | [`config`](https://github.com/FriendsOfCake/awesome-cakephp/blob/master/.travis.yml) | [FriendsOfCake/awesome-cakephp](https://github.com/FriendsOfCake/awesome-cakephp)
49
+ [![Build Status](https://travis-ci.org/RichardLitt/awesome-conferences.svg)](https://travis-ci.org/RichardLitt/awesome-conferences) | [`config`](https://github.com/RichardLitt/awesome-conferences/blob/master/.travis.yml) | [RichardLitt/awesome-conferences](https://github.com/RichardLitt/awesome-conferences)
51
50
  [![Build Status](https://travis-ci.org/uraimo/Awesome-Swift-Playgrounds.svg)](https://travis-ci.org/uraimo/Awesome-Swift-Playgrounds) | [`config`](https://github.com/uraimo/Awesome-Swift-Playgrounds/blob/master/.travis.yml) | [uraimo/Awesome-Swift-Playgrounds](https://github.com/uraimo/Awesome-Swift-Playgrounds)
51
+ [![Build Status](https://travis-ci.org/FriendsOfCake/awesome-cakephp.svg)](https://travis-ci.org/FriendsOfCake/awesome-cakephp) | [`config`](https://github.com/FriendsOfCake/awesome-cakephp/blob/master/.travis.yml) | [FriendsOfCake/awesome-cakephp](https://github.com/FriendsOfCake/awesome-cakephp)
52
52
  [![Build Status](https://travis-ci.org/caesar0301/awesome-pcaptools.svg)](https://travis-ci.org/caesar0301/awesome-pcaptools) | [`config`](https://github.com/caesar0301/awesome-pcaptools/blob/master/.travis.yml) | [caesar0301/awesome-pcaptools](https://github.com/caesar0301/awesome-pcaptools)
53
53
  [![Build Status](https://travis-ci.org/matteofigus/awesome-speaking.svg)](https://travis-ci.org/matteofigus/awesome-speaking) | [`config`](https://github.com/matteofigus/awesome-speaking/blob/master/.travis.yml) | [matteofigus/awesome-speaking](https://github.com/matteofigus/awesome-speaking)
54
54
  [![Build Status](https://travis-ci.org/matiassingers/awesome-readme.svg)](https://travis-ci.org/matiassingers/awesome-readme) | [`config`](https://github.com/matiassingers/awesome-readme/blob/master/.travis.yml) | [matiassingers/awesome-readme](https://github.com/matiassingers/awesome-readme)
55
55
  [![Build Status](https://travis-ci.org/najela/discount-for-student-dev.svg)](https://travis-ci.org/najela/discount-for-student-dev) | [`config`](https://github.com/najela/discount-for-student-dev/blob/master/.travis.yml) | [najela/discount-for-student-dev](https://github.com/najela/discount-for-student-dev)
56
56
  [![Build Status](https://travis-ci.org/afonsopacifer/awesome-flexbox.svg)](https://travis-ci.org/afonsopacifer/awesome-flexbox) | [`config`](https://github.com/afonsopacifer/awesome-flexbox/blob/master/.travis.yml) | [afonsopacifer/awesome-flexbox](https://github.com/afonsopacifer/awesome-flexbox)
57
- [![Build Status](https://travis-ci.org/burningtree/awesome-json.svg)](https://travis-ci.org/burningtree/awesome-json) | [`config`](https://github.com/burningtree/awesome-json/blob/master/.travis.yml) | [burningtree/awesome-json](https://github.com/burningtree/awesome-json)
58
57
  [![Build Status](https://travis-ci.org/JavaBy/awesome-kotlin.svg)](https://travis-ci.org/JavaBy/awesome-kotlin) | [`config`](https://github.com/JavaBy/awesome-kotlin/blob/master/.travis.yml) | [JavaBy/awesome-kotlin](https://github.com/JavaBy/awesome-kotlin)
58
+ [![Build Status](https://travis-ci.org/burningtree/awesome-json.svg)](https://travis-ci.org/burningtree/awesome-json) | [`config`](https://github.com/burningtree/awesome-json/blob/master/.travis.yml) | [burningtree/awesome-json](https://github.com/burningtree/awesome-json)
59
59
  [![Build Status](https://travis-ci.org/vredniy/awesome-newsletters.svg)](https://travis-ci.org/vredniy/awesome-newsletters) | [`config`](https://github.com/vredniy/awesome-newsletters/blob/master/.travis.yml) | [vredniy/awesome-newsletters](https://github.com/vredniy/awesome-newsletters)
60
60
  [![Build Status](https://travis-ci.org/vredniy/awesome-newsletters.svg)](https://travis-ci.org/vredniy/awesome-newsletters) | [`config`](https://github.com/vredniy/awesome-newsletters/blob/master/.travis.yml) | [vredniy/awesome-newsletters](https://github.com/vredniy/awesome-newsletters)
61
61
  [![Build Status](https://travis-ci.org/uralbash/awesome-pyramid.svg)](https://travis-ci.org/uralbash/awesome-pyramid) | [`config`](https://github.com/uralbash/awesome-pyramid/blob/master/.travis.yml) | [uralbash/awesome-pyramid](https://github.com/uralbash/awesome-pyramid)
62
62
  [![Build Status](https://travis-ci.org/ahkscript/awesome-AutoHotkey.svg)](https://travis-ci.org/ahkscript/awesome-AutoHotkey) | [`config`](https://github.com/ahkscript/awesome-AutoHotkey/blob/master/.travis.yml) | [ahkscript/awesome-AutoHotkey](https://github.com/ahkscript/awesome-AutoHotkey)
63
- [![Build Status](https://travis-ci.org/HQarroum/awesome-iot.svg)](https://travis-ci.org/HQarroum/awesome-iot) | [`config`](https://github.com/HQarroum/awesome-iot/blob/master/.travis.yml) | [HQarroum/awesome-iot](https://github.com/HQarroum/awesome-iot)
64
63
  [![Build Status](https://travis-ci.org/aleksandar-todorovic/awesome-c.svg)](https://travis-ci.org/aleksandar-todorovic/awesome-c) | [`config`](https://github.com/aleksandar-todorovic/awesome-c/blob/master/.travis.yml) | [aleksandar-todorovic/awesome-c](https://github.com/aleksandar-todorovic/awesome-c)
64
+ [![Build Status](https://travis-ci.org/HQarroum/awesome-iot.svg)](https://travis-ci.org/HQarroum/awesome-iot) | [`config`](https://github.com/HQarroum/awesome-iot/blob/master/.travis.yml) | [HQarroum/awesome-iot](https://github.com/HQarroum/awesome-iot)
65
65
  [![Build Status](https://travis-ci.org/phillipadsmith/awesome-github.svg)](https://travis-ci.org/phillipadsmith/awesome-github) | [`config`](https://github.com/phillipadsmith/awesome-github/blob/master/.travis.yml) | [phillipadsmith/awesome-github](https://github.com/phillipadsmith/awesome-github)
66
- [![Build Status](https://travis-ci.org/iJackUA/awesome-vagrant.svg)](https://travis-ci.org/iJackUA/awesome-vagrant) | [`config`](https://github.com/iJackUA/awesome-vagrant/blob/master/.travis.yml) | [iJackUA/awesome-vagrant](https://github.com/iJackUA/awesome-vagrant)
67
66
  [![Build Status](https://travis-ci.org/sergeyklay/awesome-phalcon.svg)](https://travis-ci.org/sergeyklay/awesome-phalcon) | [`config`](https://github.com/sergeyklay/awesome-phalcon/blob/master/.travis.yml) | [sergeyklay/awesome-phalcon](https://github.com/sergeyklay/awesome-phalcon)
68
- [![Build Status](https://travis-ci.org/yenchenlin1994/awesome-watchos.svg)](https://travis-ci.org/yenchenlin1994/awesome-watchos) | [`config`](https://github.com/yenchenlin1994/awesome-watchos/blob/master/.travis.yml) | [yenchenlin1994/awesome-watchos](https://github.com/yenchenlin1994/awesome-watchos)
67
+ [![Build Status](https://travis-ci.org/iJackUA/awesome-vagrant.svg)](https://travis-ci.org/iJackUA/awesome-vagrant) | [`config`](https://github.com/iJackUA/awesome-vagrant/blob/master/.travis.yml) | [iJackUA/awesome-vagrant](https://github.com/iJackUA/awesome-vagrant)
69
68
  [![Build Status](https://travis-ci.org/ipfs/awesome-ipfs.svg)](https://travis-ci.org/ipfs/awesome-ipfs) | [`config`](https://github.com/ipfs/awesome-ipfs/blob/master/.travis.yml) | [ipfs/awesome-ipfs](https://github.com/ipfs/awesome-ipfs)
69
+ [![Build Status](https://travis-ci.org/yenchenlin1994/awesome-watchos.svg)](https://travis-ci.org/yenchenlin1994/awesome-watchos) | [`config`](https://github.com/yenchenlin1994/awesome-watchos/blob/master/.travis.yml) | [yenchenlin1994/awesome-watchos](https://github.com/yenchenlin1994/awesome-watchos)
70
+ [![Build Status](https://travis-ci.org/MakinGiants/awesome-mobile-dev.svg)](https://travis-ci.org/MakinGiants/awesome-mobile-dev) | [`config`](https://github.com/MakinGiants/awesome-mobile-dev/blob/master/.travis.yml) | [MakinGiants/awesome-mobile-dev](https://github.com/MakinGiants/awesome-mobile-dev)
71
+ [![Build Status](https://travis-ci.org/MakinGiants/awesome-mobile-dev.svg)](https://travis-ci.org/MakinGiants/awesome-mobile-dev) | [`config`](https://github.com/MakinGiants/awesome-mobile-dev/blob/master/.travis.yml) | [MakinGiants/awesome-mobile-dev](https://github.com/MakinGiants/awesome-mobile-dev)
70
72
  [![Build Status](https://travis-ci.org/notthetup/awesome-webaudio.svg)](https://travis-ci.org/notthetup/awesome-webaudio) | [`config`](https://github.com/notthetup/awesome-webaudio/blob/master/.travis.yml) | [notthetup/awesome-webaudio](https://github.com/notthetup/awesome-webaudio)
73
+ [![Build Status](https://travis-ci.org/ramitsurana/awesome-kubernetes.svg)](https://travis-ci.org/ramitsurana/awesome-kubernetes) | [`config`](https://github.com/ramitsurana/awesome-kubernetes/blob/master/.travis.yml) | [ramitsurana/awesome-kubernetes](https://github.com/ramitsurana/awesome-kubernetes)
74
+ [![Build Status](https://travis-ci.org/fisherman/awesome-fish.svg)](https://travis-ci.org/fisherman/awesome-fish) | [`config`](https://github.com/fisherman/awesome-fish/blob/master/.travis.yml) | [fisherman/awesome-fish](https://github.com/fisherman/awesome-fish)
71
75
  [![Build Status](https://travis-ci.org/deanhume/typography.svg)](https://travis-ci.org/deanhume/typography) | [`config`](https://github.com/deanhume/typography/blob/master/.travis.yml) | [deanhume/typography](https://github.com/deanhume/typography)
72
- [![Build Status](https://travis-ci.org/MakinGiants/awesome-mobile-dev.svg)](https://travis-ci.org/MakinGiants/awesome-mobile-dev) | [`config`](https://github.com/MakinGiants/awesome-mobile-dev/blob/master/.travis.yml) | [MakinGiants/awesome-mobile-dev](https://github.com/MakinGiants/awesome-mobile-dev)
73
- [![Build Status](https://travis-ci.org/filipelinhares/awesome-slack.svg)](https://travis-ci.org/filipelinhares/awesome-slack) | [`config`](https://github.com/filipelinhares/awesome-slack/blob/master/.travis.yml) | [filipelinhares/awesome-slack](https://github.com/filipelinhares/awesome-slack)
74
76
  [![Build Status](https://travis-ci.org/lnishan/awesome-competitive-programming.svg)](https://travis-ci.org/lnishan/awesome-competitive-programming) | [`config`](https://github.com/lnishan/awesome-competitive-programming/blob/master/.travis.yml) | [lnishan/awesome-competitive-programming](https://github.com/lnishan/awesome-competitive-programming)
75
- [![Build Status](https://travis-ci.org/ramitsurana/awesome-kubernetes.svg)](https://travis-ci.org/ramitsurana/awesome-kubernetes) | [`config`](https://github.com/ramitsurana/awesome-kubernetes/blob/master/.travis.yml) | [ramitsurana/awesome-kubernetes](https://github.com/ramitsurana/awesome-kubernetes)
77
+ [![Build Status](https://travis-ci.org/filipelinhares/awesome-slack.svg)](https://travis-ci.org/filipelinhares/awesome-slack) | [`config`](https://github.com/filipelinhares/awesome-slack/blob/master/.travis.yml) | [filipelinhares/awesome-slack](https://github.com/filipelinhares/awesome-slack)
76
78
  [![Build Status](https://travis-ci.org/brunopulis/awesome-a11y.svg)](https://travis-ci.org/brunopulis/awesome-a11y) | [`config`](https://github.com/brunopulis/awesome-a11y/blob/master/.travis.yml) | [brunopulis/awesome-a11y](https://github.com/brunopulis/awesome-a11y)
77
79
  [![Build Status](https://travis-ci.org/brabadu/awesome-fonts.svg)](https://travis-ci.org/brabadu/awesome-fonts) | [`config`](https://github.com/brabadu/awesome-fonts/blob/master/.travis.yml) | [brabadu/awesome-fonts](https://github.com/brabadu/awesome-fonts)
78
80
  [![Build Status](https://travis-ci.org/vinkla/awesome-fuse.svg)](https://travis-ci.org/vinkla/awesome-fuse) | [`config`](https://github.com/vinkla/awesome-fuse/blob/master/.travis.yml) | [vinkla/awesome-fuse](https://github.com/vinkla/awesome-fuse)
81
+ [![Build Status](https://travis-ci.org/benoitjadinon/awesome-xamarin.svg)](https://travis-ci.org/benoitjadinon/awesome-xamarin) | [`config`](https://github.com/benoitjadinon/awesome-xamarin/blob/master/.travis.yml) | [benoitjadinon/awesome-xamarin](https://github.com/benoitjadinon/awesome-xamarin)
79
82
  [![Build Status](https://travis-ci.org/christian-bromann/awesome-selenium.svg)](https://travis-ci.org/christian-bromann/awesome-selenium) | [`config`](https://github.com/christian-bromann/awesome-selenium/blob/master/.travis.yml) | [christian-bromann/awesome-selenium](https://github.com/christian-bromann/awesome-selenium)
80
- [![Build Status](https://travis-ci.org/unixorn/git-extra-commands.svg)](https://travis-ci.org/unixorn/git-extra-commands) | [`config`](https://github.com/unixorn/git-extra-commands/blob/master/.travis.yml) | [unixorn/git-extra-commands](https://github.com/unixorn/git-extra-commands)
81
83
  [![Build Status](https://travis-ci.org/mark-rushakoff/awesome-influxdb.svg)](https://travis-ci.org/mark-rushakoff/awesome-influxdb) | [`config`](https://github.com/mark-rushakoff/awesome-influxdb/blob/master/.travis.yml) | [mark-rushakoff/awesome-influxdb](https://github.com/mark-rushakoff/awesome-influxdb)
82
- [![Build Status](https://travis-ci.org/benoitjadinon/awesome-xamarin.svg)](https://travis-ci.org/benoitjadinon/awesome-xamarin) | [`config`](https://github.com/benoitjadinon/awesome-xamarin/blob/master/.travis.yml) | [benoitjadinon/awesome-xamarin](https://github.com/benoitjadinon/awesome-xamarin)
84
+ [![Build Status](https://travis-ci.org/unixorn/git-extra-commands.svg)](https://travis-ci.org/unixorn/git-extra-commands) | [`config`](https://github.com/unixorn/git-extra-commands/blob/master/.travis.yml) | [unixorn/git-extra-commands](https://github.com/unixorn/git-extra-commands)
83
85
  [![Build Status](https://travis-ci.org/RichardLitt/endangered-languages.svg)](https://travis-ci.org/RichardLitt/endangered-languages) | [`config`](https://github.com/RichardLitt/endangered-languages/blob/master/.travis.yml) | [RichardLitt/endangered-languages](https://github.com/RichardLitt/endangered-languages)
84
- [![Build Status](https://travis-ci.org/vkarampinis/awesome-icons.svg)](https://travis-ci.org/vkarampinis/awesome-icons) | [`config`](https://github.com/vkarampinis/awesome-icons/blob/master/.travis.yml) | [vkarampinis/awesome-icons](https://github.com/vkarampinis/awesome-icons)
85
86
  [![Build Status](https://travis-ci.org/Neueda4j/awesome-neo4j.svg)](https://travis-ci.org/Neueda4j/awesome-neo4j) | [`config`](https://github.com/Neueda4j/awesome-neo4j/blob/master/.travis.yml) | [Neueda4j/awesome-neo4j](https://github.com/Neueda4j/awesome-neo4j)
87
+ [![Build Status](https://travis-ci.org/vkarampinis/awesome-icons.svg)](https://travis-ci.org/vkarampinis/awesome-icons) | [`config`](https://github.com/vkarampinis/awesome-icons/blob/master/.travis.yml) | [vkarampinis/awesome-icons](https://github.com/vkarampinis/awesome-icons)
86
88
  [![Build Status](https://travis-ci.org/rabbiabram/awesome-fortran.svg)](https://travis-ci.org/rabbiabram/awesome-fortran) | [`config`](https://github.com/rabbiabram/awesome-fortran/blob/master/.travis.yml) | [rabbiabram/awesome-fortran](https://github.com/rabbiabram/awesome-fortran)
87
89
  [![Build Status](https://travis-ci.org/tedyoung/awesome-java8.svg)](https://travis-ci.org/tedyoung/awesome-java8) | [`config`](https://github.com/tedyoung/awesome-java8/blob/master/.travis.yml) | [tedyoung/awesome-java8](https://github.com/tedyoung/awesome-java8)
88
90
  [![Build Status](https://travis-ci.org/yangshun/awesome-spinners.svg)](https://travis-ci.org/yangshun/awesome-spinners) | [`config`](https://github.com/yangshun/awesome-spinners/blob/master/.travis.yml) | [yangshun/awesome-spinners](https://github.com/yangshun/awesome-spinners)
89
- [![Build Status](https://travis-ci.org/wfhio/awesome-job-boards.svg)](https://travis-ci.org/wfhio/awesome-job-boards) | [`config`](https://github.com/wfhio/awesome-job-boards/blob/master/.travis.yml) | [wfhio/awesome-job-boards](https://github.com/wfhio/awesome-job-boards)
90
91
  [![Build Status](https://travis-ci.org/joubertredrat/awesome-devops.svg)](https://travis-ci.org/joubertredrat/awesome-devops) | [`config`](https://github.com/joubertredrat/awesome-devops/blob/master/.travis.yml) | [joubertredrat/awesome-devops](https://github.com/joubertredrat/awesome-devops)
92
+ [![Build Status](https://travis-ci.org/wfhio/awesome-job-boards.svg)](https://travis-ci.org/wfhio/awesome-job-boards) | [`config`](https://github.com/wfhio/awesome-job-boards/blob/master/.travis.yml) | [wfhio/awesome-job-boards](https://github.com/wfhio/awesome-job-boards)
91
93
  [![Build Status](https://travis-ci.org/ipfs/weekly.svg)](https://travis-ci.org/ipfs/weekly) | [`config`](https://github.com/ipfs/weekly/blob/master/.travis.yml) | [ipfs/weekly](https://github.com/ipfs/weekly)
94
+ [![Build Status](https://travis-ci.org/jjaderg/awesome-postcss.svg)](https://travis-ci.org/jjaderg/awesome-postcss) | [`config`](https://github.com/jjaderg/awesome-postcss/blob/master/.travis.yml) | [jjaderg/awesome-postcss](https://github.com/jjaderg/awesome-postcss)
92
95
  [![Build Status](https://travis-ci.org/stve/awesome-dropwizard.svg)](https://travis-ci.org/stve/awesome-dropwizard) | [`config`](https://github.com/stve/awesome-dropwizard/blob/master/.travis.yml) | [stve/awesome-dropwizard](https://github.com/stve/awesome-dropwizard)
93
96
  [![Build Status](https://travis-ci.org/ramitsurana/awesome-openstack.svg)](https://travis-ci.org/ramitsurana/awesome-openstack) | [`config`](https://github.com/ramitsurana/awesome-openstack/blob/master/.travis.yml) | [ramitsurana/awesome-openstack](https://github.com/ramitsurana/awesome-openstack)
94
97
  [![Circle CI](https://img.shields.io/circleci/project/tmcw/awesome-geojson.svg)](https://circleci.com/gh/tmcw/awesome-geojson) | [`config`](https://github.com/tmcw/awesome-geojson/blob/master/circle.yml) | [tmcw/awesome-geojson](https://github.com/tmcw/awesome-geojson)
95
- [![Build Status](https://travis-ci.org/fisherman/awesome-fish.svg?branch=master)](https://travis-ci.org/fisherman/awesome-fish) | [`config`](https://github.com/fisherman/awesome-fish/blob/master/.travis.yml) | [fisherman/awesome-fish](https://github.com/fisherman/awesome-fish)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awesome_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.1
4
+ version: 1.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Khamsing
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-29 00:00:00.000000000 Z
11
+ date: 2016-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parallel
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.6.1
27
- - !ruby/object:Gem::Dependency
28
- name: rspec
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: 3.4.0
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
40
- version: 3.4.0
41
27
  description: Check for valid and duplicate URLs in a file. Great for "awesome" projects.
42
28
  email:
43
29
  - dkhamsing8@gmail.com
@@ -73,7 +59,7 @@ files:
73
59
  - lib/awesome_bot/check.rb
74
60
  - lib/awesome_bot/cli.rb
75
61
  - lib/awesome_bot/links.rb
76
- - lib/awesome_bot/log.rb
62
+ - lib/awesome_bot/output.rb
77
63
  - lib/awesome_bot/result.rb
78
64
  - lib/awesome_bot/statuses.rb
79
65
  - lib/awesome_bot/version.rb
@@ -1,17 +0,0 @@
1
- # Log
2
- module AwesomeBot
3
- # Log
4
- class Log
5
- def initialize(verbose = false)
6
- @v = verbose
7
- end
8
-
9
- def add(message)
10
- puts message if @v
11
- end
12
-
13
- def addp(message)
14
- print message if @v
15
- end
16
- end # class
17
- end