Module: Ethon::Easy::Queryable
Overview
This module contains logic about building query parameters for url or form.
Class Method Summary collapse
-
.included(base) ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#build_query_pairs(hash) ⇒ Array
Return query pairs build from a hash.
-
#empty? ⇒ Boolean
Return wether there are elements in params or not.
-
#file_info(file) ⇒ Array
Return file info for a file.
-
#query_pairs ⇒ Array
Return the query pairs.
-
#to_s ⇒ String
Return the string representation of params.
Class Method Details
.included(base) ⇒ Object
:nodoc:
9 10 11 |
# File 'lib/ethon/easy/queryable.rb', line 9 def self.included(base) base.send(:attr_accessor, :escape) end |
Instance Method Details
#build_query_pairs(hash) ⇒ Array
Return query pairs build from a hash.
60 61 62 63 64 65 66 |
# File 'lib/ethon/easy/queryable.rb', line 60 def build_query_pairs(hash) return [hash] if hash.is_a?(String) pairs = [] recursively_generate_pairs(hash, nil, pairs) pairs end |
#empty? ⇒ Boolean
Return wether there are elements in params or not.
19 20 21 |
# File 'lib/ethon/easy/queryable.rb', line 19 def empty? @params.empty? end |
#file_info(file) ⇒ Array
Return file info for a file.
76 77 78 79 80 81 82 83 |
# File 'lib/ethon/easy/queryable.rb', line 76 def file_info(file) filename = File.basename(file.path) [ filename, mime_type(filename), File.(file.path) ] end |
#query_pairs ⇒ Array
Return the query pairs.
47 48 49 |
# File 'lib/ethon/easy/queryable.rb', line 47 def query_pairs @query_pairs ||= build_query_pairs(@params) end |
#to_s ⇒ String
Return the string representation of params.
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/ethon/easy/queryable.rb', line 29 def to_s @to_s ||= query_pairs.map{ |pair| return pair if pair.is_a?(String) if escape && @easy pair.map{ |e| @easy.escape(e.to_s) }.join("=") else pair.join("=") end }.join('&') end |