check_http 0.0.9 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/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