hot_or_not 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
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