watir-webdriver-performance 0.1.0 → 0.1.1

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -4,41 +4,17 @@ module Watir
4
4
  # Adds helper for window.performance to Watir::Browser.
5
5
  # @see http://dev.w3.org/2006/webapi/WebTiming/
6
6
 
7
- module PerformanceHelper
7
+ class PerformanceHelper
8
8
 
9
- def underscored(camel_cased_word)
10
- word = camel_cased_word.to_s.dup
11
- word.gsub!(/::/, '/')
12
- word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
13
- word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
14
- word.tr!("-", "_")
15
- word.downcase!
16
- word
17
- end
18
-
19
- def earliest_timestamp(hash)
20
- return hash[:timing][:navigation_start] if hash[:timing][:navigation_start] > 0
21
- return hash[:timing][:redirect_start] if hash[:timing][:redirect_start] > 0
22
- return hash[:timing][:redirect_end] if hash[:timing][:redirect_end] > 0
23
- return hash[:timing][:fetch_start] if hash[:timing][:fetch_start] > 0
9
+ def initialize(data)
10
+ @data = data
24
11
  end
25
12
 
26
- def latest_timestamp(hash)
27
- return hash[:timing][:load_event_end] if hash[:timing][:load_event_end] > 0
28
- return hash[:timing][:load_event_start] if hash[:timing][:load_event_start] > 0
29
- return hash[:timing][:dom_complete] if hash[:timing][:dom_complete] > 0
30
- return hash[:timing][:dom_content_loaded_event_end] if hash[:timing][:dom_content_loaded_event_end] > 0
31
- return hash[:timing][:dom_content_loaded_event_start] if hash[:timing][:dom_content_loaded_event_start] > 0
32
- return hash[:timing][:dom_interactive] if hash[:timing][:dom_interactive] > 0
33
- return hash[:timing][:response_end] if hash[:timing][:response_end] > 0
34
- end
35
-
36
-
37
- def munge(data)
13
+ def munge
38
14
  hash = {}
39
- data.each_key do |key|
15
+ @data.each_key do |key|
40
16
  hash[key.to_sym] = {}
41
- data[key].each do |k,v|
17
+ @data[key].each do |k,v|
42
18
  hash[key.to_sym][underscored(k).to_sym] = v
43
19
  end
44
20
  end
@@ -64,18 +40,45 @@ module Watir
64
40
  hash[:summary][:time_to_last_byte] = hash[:timing][:response_end] -
65
41
  hash[:timing][:domain_lookup_start] if hash[:timing][:domain_lookup_start] > 0
66
42
  hash[:summary][:response_time] = latest_timestamp(hash) - earliest_timestamp(hash)
67
- hash
43
+ OpenStruct.new(hash)
68
44
  end
69
45
 
70
- def performance
71
- data = driver.execute_script("return window.performance || window.webkitPerformance || window.mozPerformance || window.msPerformance;")
72
- OpenStruct.new(munge(data))
46
+ private
47
+
48
+ def underscored(camel_cased_word)
49
+ word = camel_cased_word.to_s.dup
50
+ word.gsub!(/::/, '/')
51
+ word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
52
+ word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
53
+ word.tr!("-", "_")
54
+ word.downcase!
55
+ word
56
+ end
57
+
58
+ def earliest_timestamp(hash)
59
+ return hash[:timing][:navigation_start] if hash[:timing][:navigation_start] > 0
60
+ return hash[:timing][:redirect_start] if hash[:timing][:redirect_start] > 0
61
+ return hash[:timing][:redirect_end] if hash[:timing][:redirect_end] > 0
62
+ return hash[:timing][:fetch_start] if hash[:timing][:fetch_start] > 0
63
+ end
64
+
65
+ def latest_timestamp(hash)
66
+ return hash[:timing][:load_event_end] if hash[:timing][:load_event_end] > 0
67
+ return hash[:timing][:load_event_start] if hash[:timing][:load_event_start] > 0
68
+ return hash[:timing][:dom_complete] if hash[:timing][:dom_complete] > 0
69
+ return hash[:timing][:dom_content_loaded_event_end] if hash[:timing][:dom_content_loaded_event_end] > 0
70
+ return hash[:timing][:dom_content_loaded_event_start] if hash[:timing][:dom_content_loaded_event_start] > 0
71
+ return hash[:timing][:dom_interactive] if hash[:timing][:dom_interactive] > 0
72
+ return hash[:timing][:response_end] if hash[:timing][:response_end] > 0
73
73
  end
74
74
 
75
75
  end
76
76
 
77
77
  class Browser
78
- include PerformanceHelper
78
+ def performance
79
+ data = driver.execute_script("return window.performance || window.webkitPerformance || window.mozPerformance || window.msPerformance;")
80
+ PerformanceHelper.new(data).munge
81
+ end
79
82
  end
80
83
  end
81
84
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{watir-webdriver-performance}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tim Koopmans"]
12
- s.date = %q{2011-04-19}
12
+ s.date = %q{2011-04-20}
13
13
  s.description = %q{This gem collects and summarises metrics speficied in the W3C Navigation web performance specifications at http://w3c-test.org/webperf/specs/NavigationTiming/ when using watir-webdriver and a compatible browser}
14
14
  s.email = %q{tim.koops@gmail.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watir-webdriver-performance
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tim Koopmans
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-19 00:00:00 +10:00
18
+ date: 2011-04-20 00:00:00 +10:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency