class Pwned::Password
This class represents a password. It does all the work of talking to the Pwned
Passwords API to find out if the password has been pwned. @see haveibeenpwned.com/API/v2#PwnedPasswords
Attributes
@return [String] the password that is being checked. @since 1.0.0
Public Class Methods
Creates a new password object.
@example A simple password with the default request options
password = Pwned::Password.new("password")
@example Setting the user agent and the read timeout of the request
password = Pwned::Password.new("password", headers: { "User-Agent" => "My user agent" }, read_timout: 10)
@param password [String] The password you want to check against the API. @param [Hash] request_options Options that can be passed to Net::HTTP.start
when
calling the API
@option request_options [Symbol] :headers ({ “User-Agent” => “Ruby Pwned::Password
#{Pwned::VERSION}” })
HTTP headers to include in the request
@option request_options [Symbol] :ignore_env_proxy (false) The library
will try to infer an HTTP proxy from the `http_proxy` environment variable. If you do not want this behaviour, set this option to true.
@raise [TypeError] if the password is not a string. @since 1.1.0
# File lib/pwned/password.rb, line 35 def initialize(password, request_options={}) raise TypeError, "password must be of type String" unless password.is_a? String @password = password @hashed_password = Pwned.hash_password(password) @request_options = Hash(request_options).dup @request_headers = Hash(request_options.delete(:headers)) @request_headers = DEFAULT_REQUEST_HEADERS.merge(@request_headers) @request_proxy = URI(request_options.delete(:proxy)) if request_options.key?(:proxy) @ignore_env_proxy = request_options.delete(:ignore_env_proxy) || false end