check_http 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -33,6 +33,13 @@ You can also stream urls into it:
33
33
  $ cat list_of_urls.txt | check_http
34
34
  ```
35
35
 
36
+ There is also support for an __advanced input mode__:
37
+
38
+ ```bash
39
+ $ echo url=http://google.com location=my_house | check_http
40
+ # results will include the location key and any other keys you place in the input stream
41
+ ```
42
+
36
43
  ### Via the lib:
37
44
 
38
45
  ```ruby
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
- gem.add_dependency('ethon')
19
+ gem.add_dependency('ethon', '0.5.0')
20
20
  gem.add_dependency('kv', '0.0.4')
21
21
  gem.add_development_dependency('rake')
22
22
  gem.add_development_dependency('rspec')
@@ -13,7 +13,7 @@ module CheckHTTP
13
13
  @checker ||= Checker.new
14
14
  end
15
15
 
16
- def check(url)
17
- checker.check(url)
16
+ def check(url,opts={})
17
+ checker.check(url,opts)
18
18
  end
19
19
  end
@@ -7,11 +7,11 @@ module CheckHTTP
7
7
  end
8
8
 
9
9
  def default_blacklist
10
- [:response_header, :response_body, :httpauth_avail, :starttransfer_time, :appconnect_time, :pretransfer_time]
10
+ [:response_headers, :response_body, :httpauth_avail, :starttransfer_time, :appconnect_time, :pretransfer_time]
11
11
  end
12
12
 
13
- def check(url)
14
- clean(sample(url)).merge(:url => url)
13
+ def check(url, opts={})
14
+ clean(sample(url)).merge(opts)
15
15
  end
16
16
 
17
17
  def clean(result)
@@ -2,22 +2,30 @@ $stdout.sync = true
2
2
 
3
3
  module CheckHTTP
4
4
  class CLI
5
- def perform(url)
6
- result = CheckHTTP.check(url.strip)
7
- puts KV.unparse(result)
5
+ def perform(url, opts={})
6
+ if opts[:advanced]
7
+ data = KV.parse(url)
8
+ result = CheckHTTP.check(data['url'], data)
9
+ puts KV.unparse(result)
10
+ else
11
+ result = CheckHTTP.check(url.strip)
12
+ puts KV.unparse(result)
13
+ end
8
14
  end
9
15
 
10
16
  def run
11
17
  opts = {}
12
18
  ARGV.options do |o|
13
19
  o.banner = 'Usage: check_http [url]'
20
+ o.set_summary_indent(' ')
21
+ o.on('-a', '--advanced', 'enable advanced input mode') { opts[:advanced] = true }
14
22
  o.parse!
15
23
 
16
24
  if url = ARGV.shift
17
- perform(url)
25
+ perform(url, opts)
18
26
  else
19
27
  ARGF.each_line do |url|
20
- perform(url)
28
+ perform(url, opts)
21
29
  end
22
30
  end
23
31
  end
@@ -1,3 +1,3 @@
1
1
  module CheckHTTP
2
- VERSION = "0.0.9"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -17,11 +17,6 @@ describe CheckHTTP::Checker do
17
17
  checker.sample(url)
18
18
  end
19
19
 
20
- it 'should return sampled results with url merged in' do
21
- checker.stub(:sample).with(url) { mock_result }
22
- checker.check(url).should eq(mock_result.merge(:url => url))
23
- end
24
-
25
20
  it 'should clean sampled results before returning' do
26
21
  checker.stub(:sample).with(url) { mock_result }
27
22
  checker.should_receive(:clean).with(mock_result) { mock_result }
@@ -36,4 +31,9 @@ describe CheckHTTP::Checker do
36
31
  it 'should set the default blacklist upon initialization' do
37
32
  checker.blacklist.should eq(checker.default_blacklist)
38
33
  end
34
+
35
+ it 'should merge in additional values provided on input' do
36
+ checker.stub(:sample).with(url) { mock_result }
37
+ checker.check(url, {'check_id' => 1}).should eq(mock_result.merge({'check_id' => 1}))
38
+ end
39
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: check_http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,43 +9,33 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-14 00:00:00.000000000 Z
12
+ date: 2012-09-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ethon
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &70312254024540 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - =
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: 0.5.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
24
+ version_requirements: *70312254024540
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: kv
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &70312254023140 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
- - - '='
30
+ - - =
36
31
  - !ruby/object:Gem::Version
37
32
  version: 0.0.4
38
33
  type: :runtime
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - '='
44
- - !ruby/object:Gem::Version
45
- version: 0.0.4
35
+ version_requirements: *70312254023140
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: rake
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &70312254022320 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ! '>='
@@ -53,15 +43,10 @@ dependencies:
53
43
  version: '0'
54
44
  type: :development
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
46
+ version_requirements: *70312254022320
62
47
  - !ruby/object:Gem::Dependency
63
48
  name: rspec
64
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &70312254021520 !ruby/object:Gem::Requirement
65
50
  none: false
66
51
  requirements:
67
52
  - - ! '>='
@@ -69,12 +54,7 @@ dependencies:
69
54
  version: '0'
70
55
  type: :development
71
56
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
57
+ version_requirements: *70312254021520
78
58
  description: a simple interface to gather curl stats against an HTTP resource
79
59
  email:
80
60
  - michael.gorsuch@gmail.com
@@ -109,15 +89,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
89
  - - ! '>='
110
90
  - !ruby/object:Gem::Version
111
91
  version: '0'
92
+ segments:
93
+ - 0
94
+ hash: -1563738831700431400
112
95
  required_rubygems_version: !ruby/object:Gem::Requirement
113
96
  none: false
114
97
  requirements:
115
98
  - - ! '>='
116
99
  - !ruby/object:Gem::Version
117
100
  version: '0'
101
+ segments:
102
+ - 0
103
+ hash: -1563738831700431400
118
104
  requirements: []
119
105
  rubyforge_project:
120
- rubygems_version: 1.8.23
106
+ rubygems_version: 1.8.10
121
107
  signing_key:
122
108
  specification_version: 3
123
109
  summary: a simple interface to gather curl stats against an HTTP resource