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 12 |
# File 'lib/ethon/easy/queryable.rb', line 9 def self.included(base) base.send(:attr_accessor, :escape) base.send(:attr_accessor, :params_encoding) end |
Instance Method Details
#build_query_pairs(hash) ⇒ Array
Return query pairs build from a hash.
61 62 63 64 65 66 67 |
# File 'lib/ethon/easy/queryable.rb', line 61 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.
20 21 22 |
# File 'lib/ethon/easy/queryable.rb', line 20 def empty? @params.empty? end |
#file_info(file) ⇒ Array
Return file info for a file.
77 78 79 80 81 82 83 84 |
# File 'lib/ethon/easy/queryable.rb', line 77 def file_info(file) filename = File.basename(file.path) [ filename, mime_type(filename), File.(file.path) ] end |
#query_pairs ⇒ Array
Return the query pairs.
48 49 50 |
# File 'lib/ethon/easy/queryable.rb', line 48 def query_pairs @query_pairs ||= build_query_pairs(@params) end |
#to_s ⇒ String
Return the string representation of params.
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/ethon/easy/queryable.rb', line 30 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 |