Module: SecureURI
- Defined in:
- lib/secure_uri/hasher.rb,
lib/secure_uri/secure_uri.rb,
lib/secure_uri/sha256_hasher.rb
Defined Under Namespace
Classes: Hasher, SHA256Hasher
Constant Summary
collapse
- HASH_REGEX =
/(?:&hash=([^&]+)$|hash=([^&]+)&?)/
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.hasher ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/secure_uri/secure_uri.rb', line 6
def hasher
if @hasher[/::/]
arr = @hasher.split("::")
klass = Kernel
arr.each do |c|
klass = klass.const_get(c)
end
klass
else
Kernel.const_get(@hasher)
end
end
|
.hasher=(class_name) ⇒ Object
19
20
21
|
# File 'lib/secure_uri/secure_uri.rb', line 19
def hasher= class_name
@hasher = class_name.to_s
end
|
Instance Method Details
#secure! ⇒ Object
36
37
38
39
40
|
# File 'lib/secure_uri/secure_uri.rb', line 36
def secure!
hash = URI.escape(url_hash, Regexp.new("([^#{URI::PATTERN::UNRESERVED}]|\\.)"))
self.query = (self.query_minus_hash + "&hash=#{hash}")
to_s
end
|
#secure? ⇒ Boolean
27
28
29
|
# File 'lib/secure_uri/secure_uri.rb', line 27
def secure?
!hash_string.empty?
end
|
#valid? ⇒ Boolean
31
32
33
34
|
# File 'lib/secure_uri/secure_uri.rb', line 31
def valid?
return false unless secure?
SecureURI.hasher.compare hash_string, url_minus_hash
end
|