Class: CacheWarp
- Inherits:
-
WebService
- Object
- WebService
- CacheWarp
- Defined in:
- lib/cachewarp.rb
Instance Attribute Summary collapse
-
#failures ⇒ Object
readonly
Returns the value of attribute failures.
-
#headers ⇒ Object
readonly
Returns the value of attribute headers.
-
#response_headers ⇒ Object
readonly
Returns the value of attribute response_headers.
-
#uri ⇒ Object
readonly
Returns the value of attribute uri.
Instance Method Summary collapse
- #fetch(uri = @uri, headers = @headers) ⇒ Object
-
#initialize(uri = nil) ⇒ CacheWarp
constructor
A new instance of CacheWarp.
- #is_cached? ⇒ Boolean
- #set_response_headers(headers) ⇒ Object
Methods inherited from WebService
#get, #get_uri, #service_request
Constructor Details
#initialize(uri = nil) ⇒ CacheWarp
Returns a new instance of CacheWarp.
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cachewarp.rb', line 7 def initialize uri=nil @uri = uri @headers = { 'Pragma' => 'akamai-x-cache-on, akamai-x-cache-remote-on, akamai-x-check-cacheable, akamai-x-get-cache-key, akamai-x-get-extracted-values, akamai-x-get-nonces, akamai-x-get-ssl-client-session-id, akamai-x-get-true-cache-key, akamai-x-serial-no' } @expected_response_headers = { 'x-cache' => /TCP(.*)HIT(.*)from(.*)AkamaiGHost(.*)/ } @failures = {} @response_headers = {} end |
Instance Attribute Details
#failures ⇒ Object (readonly)
Returns the value of attribute failures.
5 6 7 |
# File 'lib/cachewarp.rb', line 5 def failures @failures end |
#headers ⇒ Object (readonly)
Returns the value of attribute headers.
5 6 7 |
# File 'lib/cachewarp.rb', line 5 def headers @headers end |
#response_headers ⇒ Object (readonly)
Returns the value of attribute response_headers.
5 6 7 |
# File 'lib/cachewarp.rb', line 5 def response_headers @response_headers end |
#uri ⇒ Object (readonly)
Returns the value of attribute uri.
5 6 7 |
# File 'lib/cachewarp.rb', line 5 def uri @uri end |
Instance Method Details
#fetch(uri = @uri, headers = @headers) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/cachewarp.rb', line 27 def fetch uri=@uri, headers=@headers @url = uri @headers= headers set_response_headers(get_uri(uri, headers).header) self end |
#is_cached? ⇒ Boolean
34 35 36 37 38 39 40 |
# File 'lib/cachewarp.rb', line 34 def is_cached? fetch if response_headers.empty? @expected_response_headers.each do |attr, value| @failures[attr] = {expected: value, actual: @response_headers[attr]} unless @response_headers[attr] && @response_headers[attr].match(value.to_s) end return ((@failures.empty?) ? true : false) end |
#set_response_headers(headers) ⇒ Object
21 22 23 24 25 |
# File 'lib/cachewarp.rb', line 21 def set_response_headers headers headers.each_header do |attr, value| @response_headers[attr] = value end end |