hot_or_not 0.2.2 → 0.2.3

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/Gemfile CHANGED
@@ -16,6 +16,6 @@ end
16
16
  gem 'rake', '~> 0.9.2'
17
17
  gem 'rest-client', '~> 1.6.1'
18
18
  gem 'diffy', '~> 2.0.3'
19
- gem 'facets', '~> 2.9.1'
19
+ gem 'facets', '= 2.9.1'
20
20
  gem 'json', '~> 1.5.2'
21
21
  gem 'hpricot', '~> 0.8.4'
@@ -2,7 +2,7 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  diffy (2.0.4)
5
- facets (2.9.2)
5
+ facets (2.9.1)
6
6
  git (1.2.5)
7
7
  hpricot (0.8.4)
8
8
  jeweler (1.6.4)
@@ -26,7 +26,7 @@ PLATFORMS
26
26
  DEPENDENCIES
27
27
  bundler (~> 1.0.0)
28
28
  diffy (~> 2.0.3)
29
- facets (~> 2.9.1)
29
+ facets (= 2.9.1)
30
30
  hpricot (~> 0.8.4)
31
31
  jeweler (~> 1.6.0)
32
32
  json (~> 1.5.2)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
@@ -42,7 +42,7 @@ module HotOrNot
42
42
  private
43
43
  def say(what, result)
44
44
  what += ':'
45
- puts "%-10s #{result.full_name}" % [what]
45
+ puts "%-10s %-50s %.4fs, %.4fs" % [what, result.full_name, result.side_a_latency, result.side_b_latency]
46
46
  end
47
47
 
48
48
  def results_dir
@@ -19,6 +19,14 @@ module HotOrNot
19
19
  init_message unless success?
20
20
  end
21
21
 
22
+ def side_a_latency
23
+ @side_a_results.latency
24
+ end
25
+
26
+ def side_b_latency
27
+ @side_b_results.latency
28
+ end
29
+
22
30
  def success?
23
31
  !error? &&
24
32
  @side_a_results.code == @side_b_results.code &&
@@ -9,21 +9,22 @@ module HotOrNot
9
9
  options = DEFAULT_OPTIONS.merge options
10
10
  options[:url] = url
11
11
  response, error = nil, nil
12
+ start = Time.now
12
13
  begin
13
14
  response = RestClient::Request.execute(options)
14
15
  rescue RestClient::Exception => e
15
16
  error = e
16
17
  end
17
18
 
18
- new url, response, error
19
+ new url, response, error, Time.now - start
19
20
  end
20
21
  end
21
22
 
22
- attr_reader :url
23
+ attr_reader :url, :latency
23
24
  def_delegators :@response, :code, :body, :headers
24
25
 
25
- def initialize(url, response, error)
26
- @url, @error = url, error
26
+ def initialize(url, response, error, latency)
27
+ @url, @error, @latency = url, error, latency
27
28
  @response = response || error.response
28
29
  end
29
30
 
@@ -18,7 +18,7 @@ module HotOrNot
18
18
  urls = [mock_compare_url('Passing Test', '/api/foo', 'foo', 'foo')]
19
19
  Runner.new(urls, @announcer).run!
20
20
 
21
- expected_output = /^Hot:\s+Passing Test$/
21
+ expected_output = /^Hot:\s+Passing Test\s+1.0000s, 1.0000s$/
22
22
  assert_match expected_output, test_output[1].chomp
23
23
  end
24
24
 
@@ -26,7 +26,7 @@ module HotOrNot
26
26
  urls = [mock_compare_url('Failing Test', '/api/foo', 'foo', 'bar')]
27
27
  Runner.new(urls, @announcer).run!
28
28
 
29
- expected_output = /^Not Hot:\s+Failing Test$/
29
+ expected_output = /^Not Hot:\s+Failing Test\s+1.0000s, 1.0000s$/
30
30
  assert_match expected_output, test_output[1].chomp
31
31
  end
32
32
 
@@ -34,7 +34,7 @@ module HotOrNot
34
34
  urls = [mock_compare_url('Error test', '/api/foo', 'foo', 'bar', 404)]
35
35
  Runner.new(urls, @announcer).run!
36
36
 
37
- assert_match /^Error:\s+Error test$/, test_output[1].chomp
37
+ assert_match /^Error:\s+Error test\s+1.0000s, 1.0000s$/, test_output[1].chomp
38
38
  end
39
39
  end
40
40
  end
@@ -25,8 +25,8 @@ module HotOrNot
25
25
  context "and are strings" do
26
26
  setup do
27
27
  response = FakeResponse.new 'foo'
28
- side_a_results = UrlResult.new @compare_url.side_a, response, nil
29
- side_b_results = UrlResult.new @compare_url.side_b, response, nil
28
+ side_a_results = UrlResult.new @compare_url.side_a, response, nil, 1
29
+ side_b_results = UrlResult.new @compare_url.side_b, response, nil, 1
30
30
  @result = ComparisonResult.new @compare_url, side_a_results, side_b_results
31
31
  end
32
32
 
@@ -41,8 +41,8 @@ module HotOrNot
41
41
  hash2 = {'a'=>3,'b'=>4}
42
42
  response_a = FakeResponse.new [hash1, hash2].to_json, 200, :content_type => 'application/json'
43
43
  response_b = FakeResponse.new [hash2, hash1].to_json, 200, :content_type => 'application/json'
44
- side_a_results = UrlResult.new @compare_url.side_a, response_a, nil
45
- side_b_results = UrlResult.new @compare_url.side_b, response_b, nil
44
+ side_a_results = UrlResult.new @compare_url.side_a, response_a, nil, 1
45
+ side_b_results = UrlResult.new @compare_url.side_b, response_b, nil, 1
46
46
  @result = ComparisonResult.new @compare_url, side_a_results, side_b_results
47
47
  end
48
48
 
@@ -58,8 +58,8 @@ module HotOrNot
58
58
  body_b = "<div>bar</div><div id='content'>foo</div>"
59
59
  response_a = FakeResponse.new body_a, 200
60
60
  response_b = FakeResponse.new body_b, 200
61
- side_a_results = UrlResult.new compare_url.side_a, response_a, nil
62
- side_b_results = UrlResult.new compare_url.side_b, response_b, nil
61
+ side_a_results = UrlResult.new compare_url.side_a, response_a, nil, 1
62
+ side_b_results = UrlResult.new compare_url.side_b, response_b, nil, 1
63
63
  @result = ComparisonResult.new compare_url, side_a_results, side_b_results
64
64
  end
65
65
 
@@ -75,8 +75,8 @@ module HotOrNot
75
75
  body_b = " foo\nbar"
76
76
  response_a = FakeResponse.new body_a, 200
77
77
  response_b = FakeResponse.new body_b, 200
78
- side_a_results = UrlResult.new compare_url.side_a, response_a, nil
79
- side_b_results = UrlResult.new compare_url.side_b, response_b, nil
78
+ side_a_results = UrlResult.new compare_url.side_a, response_a, nil, 1
79
+ side_b_results = UrlResult.new compare_url.side_b, response_b, nil, 1
80
80
  @result = ComparisonResult.new compare_url, side_a_results, side_b_results
81
81
  end
82
82
 
@@ -90,8 +90,8 @@ module HotOrNot
90
90
  setup do
91
91
  response_a = FakeResponse.new 'side_a'
92
92
  response_b = FakeResponse.new 'side_b'
93
- side_a_results = UrlResult.new @compare_url.side_a, response_a, nil
94
- side_b_results = UrlResult.new @compare_url.side_b, response_b, nil
93
+ side_a_results = UrlResult.new @compare_url.side_a, response_a, nil, 1
94
+ side_b_results = UrlResult.new @compare_url.side_b, response_b, nil, 1
95
95
  @result = ComparisonResult.new @compare_url, side_a_results, side_b_results
96
96
  end
97
97
 
@@ -114,8 +114,8 @@ module HotOrNot
114
114
  body_b = " foo\nbaz"
115
115
  response_a = FakeResponse.new body_a, 200
116
116
  response_b = FakeResponse.new body_b, 200
117
- side_a_results = UrlResult.new compare_url.side_a, response_a, nil
118
- side_b_results = UrlResult.new compare_url.side_b, response_b, nil
117
+ side_a_results = UrlResult.new compare_url.side_a, response_a, nil, 1
118
+ side_b_results = UrlResult.new compare_url.side_b, response_b, nil, 1
119
119
  @result = ComparisonResult.new compare_url, side_a_results, side_b_results
120
120
  end
121
121
 
@@ -129,8 +129,8 @@ module HotOrNot
129
129
  setup do
130
130
  response_a = FakeResponse.new 'side_a'
131
131
  error_b = RestClient::InternalServerError.new
132
- side_a_results = UrlResult.new @compare_url.side_a, response_a, nil
133
- side_b_results = UrlResult.new @compare_url.side_b, nil, error_b
132
+ side_a_results = UrlResult.new @compare_url.side_a, response_a, nil, 1
133
+ side_b_results = UrlResult.new @compare_url.side_b, nil, error_b, 1
134
134
  @result = ComparisonResult.new @compare_url, side_a_results, side_b_results
135
135
  end
136
136
 
@@ -41,8 +41,8 @@ class Test::Unit::TestCase
41
41
  HotOrNot::CompareUrl.new(name, url, 'http://side_a', 'http://side_b').tap do |compare_url|
42
42
  response_a, error_a = response_and_error_for body_a, code_a
43
43
  response_b, error_b = response_and_error_for body_b, code_b
44
- side_a_result = HotOrNot::UrlResult.new compare_url.side_a, response_a, error_a
45
- side_b_result = HotOrNot::UrlResult.new compare_url.side_b, response_b, error_b
44
+ side_a_result = HotOrNot::UrlResult.new compare_url.side_a, response_a, error_a, 1
45
+ side_b_result = HotOrNot::UrlResult.new compare_url.side_b, response_b, error_b, 1
46
46
  HotOrNot::ComparisonResult.expects(:for).with(compare_url).returns HotOrNot::ComparisonResult.new(compare_url, side_a_result, side_b_result)
47
47
  end
48
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hot_or_not
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-19 00:00:00.000000000Z
12
+ date: 2012-03-14 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70361786977860 !ruby/object:Gem::Requirement
16
+ requirement: &70139178274740 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.9.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70361786977860
24
+ version_requirements: *70139178274740
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rest-client
27
- requirement: &70361786975660 !ruby/object:Gem::Requirement
27
+ requirement: &70139178273980 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.6.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70361786975660
35
+ version_requirements: *70139178273980
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: diffy
38
- requirement: &70361786974860 !ruby/object:Gem::Requirement
38
+ requirement: &70139178273120 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,21 +43,21 @@ dependencies:
43
43
  version: 2.0.3
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70361786974860
46
+ version_requirements: *70139178273120
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: facets
49
- requirement: &70361786973720 !ruby/object:Gem::Requirement
49
+ requirement: &70139178271960 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
- - - ~>
52
+ - - =
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.9.1
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70361786973720
57
+ version_requirements: *70139178271960
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: json
60
- requirement: &70361786972580 !ruby/object:Gem::Requirement
60
+ requirement: &70139178271100 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.5.2
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70361786972580
68
+ version_requirements: *70139178271100
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: hpricot
71
- requirement: &70361786948600 !ruby/object:Gem::Requirement
71
+ requirement: &70139178269700 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.8.4
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70361786948600
79
+ version_requirements: *70139178269700
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: shoulda
82
- requirement: &70361786946180 !ruby/object:Gem::Requirement
82
+ requirement: &70139178268220 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70361786946180
90
+ version_requirements: *70139178268220
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: bundler
93
- requirement: &70361786945240 !ruby/object:Gem::Requirement
93
+ requirement: &70139178267260 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 1.0.0
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70361786945240
101
+ version_requirements: *70139178267260
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: jeweler
104
- requirement: &70361786943660 !ruby/object:Gem::Requirement
104
+ requirement: &70139178266380 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 1.6.0
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70361786943660
112
+ version_requirements: *70139178266380
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rcov
115
- requirement: &70361786894020 !ruby/object:Gem::Requirement
115
+ requirement: &70139178265280 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70361786894020
123
+ version_requirements: *70139178265280
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: mocha
126
- requirement: &70361786892180 !ruby/object:Gem::Requirement
126
+ requirement: &70139178264260 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,7 +131,7 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70361786892180
134
+ version_requirements: *70139178264260
135
135
  description: Run this with a new version of your site comparing to current version
136
136
  to verify no break changes are made to your api's
137
137
  email: asher.friedman@gmail.com
@@ -183,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
183
  version: '0'
184
184
  segments:
185
185
  - 0
186
- hash: 2576571352742383337
186
+ hash: -2710309296133271667
187
187
  required_rubygems_version: !ruby/object:Gem::Requirement
188
188
  none: false
189
189
  requirements:
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  version: '0'
193
193
  requirements: []
194
194
  rubyforge_project:
195
- rubygems_version: 1.8.6
195
+ rubygems_version: 1.8.10
196
196
  signing_key:
197
197
  specification_version: 3
198
198
  summary: A tool for side-by-side comparsion of web apis