Module: HTTPClient::Util
- Included in:
- HTTPClient, BasicAuth, OAuth, OAuth::Config, Session
- Defined in:
- lib/httpclient/util.rb
Overview
A module for common function.
Class Method Summary collapse
-
.hash_find_value(hash, &block) ⇒ Object
Finds a value of a Hash.
-
.uri_dirname(uri) ⇒ Object
Returns parent directory URI of the given URI.
-
.uri_part_of(uri, part) ⇒ Object
Returns true if the given 2 URIs have a part_of relationship.
Instance Method Summary collapse
- #force_binary(str) ⇒ Object
-
#https?(uri) ⇒ Boolean
Checks if the given URI is https.
-
#keyword_argument(args, *field) ⇒ Object
Keyword argument helper.
-
#urify(uri) ⇒ Object
Gets an URI instance.
Class Method Details
.hash_find_value(hash, &block) ⇒ Object
Finds a value of a Hash.
85 86 87 88 |
# File 'lib/httpclient/util.rb', line 85 def hash_find_value(hash, &block) v = hash.find(&block) v ? v[1] : nil end |
.uri_dirname(uri) ⇒ Object
Returns parent directory URI of the given URI.
77 78 79 80 81 |
# File 'lib/httpclient/util.rb', line 77 def uri_dirname(uri) uri = uri.clone uri.path = uri.path.sub(/\/[^\/]*\z/, '/') uri end |
.uri_part_of(uri, part) ⇒ Object
Returns true if the given 2 URIs have a part_of relationship.
-
the same scheme
-
the same host String (no host resolution or IP-addr conversion)
-
the same port number
-
target URI’s path starts with base URI’s path.
68 69 70 71 72 73 |
# File 'lib/httpclient/util.rb', line 68 def uri_part_of(uri, part) ((uri.scheme == part.scheme) and (uri.host == part.host) and (uri.port == part.port) and uri.path.upcase.index(part.path.upcase) == 0) end |
Instance Method Details
#force_binary(str) ⇒ Object
96 97 98 99 |
# File 'lib/httpclient/util.rb', line 96 def force_binary(str) str.force_encoding(Encoding::ASCII_8BIT) if defined?(Encoding::ASCII_8BIT) str end |
#https?(uri) ⇒ Boolean
Checks if the given URI is https.
92 93 94 |
# File 'lib/httpclient/util.rb', line 92 def https?(uri) uri.scheme.downcase == 'https' end |
#keyword_argument(args, *field) ⇒ Object
Keyword argument helper.
- args
-
given arguments.
- *field
-
a list of arguments to be extracted.
You can extract 3 arguments (a, b, c) with:
include Util
def my_method(*args)
a, b, c = keyword_argument(args, :a, :b, :c)
...
end
my_method(1, 2, 3)
my_method(:b => 2, :a = 1)
instead of;
def my_method(a, b, c)
...
end
44 45 46 47 48 49 50 |
# File 'lib/httpclient/util.rb', line 44 def keyword_argument(args, *field) if args.size == 1 and args[0].is_a?(Hash) args[0].values_at(*field) else args end end |
#urify(uri) ⇒ Object
Gets an URI instance.
53 54 55 56 57 58 59 60 61 |
# File 'lib/httpclient/util.rb', line 53 def urify(uri) if uri.nil? nil elsif uri.is_a?(URI) uri else URI.parse(uri.to_s) end end |