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:
10 11 12 13 |
# File 'lib/ethon/easy/queryable.rb', line 10 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.
62 63 64 65 66 67 68 |
# File 'lib/ethon/easy/queryable.rb', line 62 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.
21 22 23 |
# File 'lib/ethon/easy/queryable.rb', line 21 def empty? @params.empty? end |
#file_info(file) ⇒ Array
Return file info for a file.
78 79 80 81 82 83 84 85 |
# File 'lib/ethon/easy/queryable.rb', line 78 def file_info(file) filename = File.basename(file.path) [ filename, mime_type(filename), File.(file.path) ] end |
#query_pairs ⇒ Array
Return the query pairs.
49 50 51 |
# File 'lib/ethon/easy/queryable.rb', line 49 def query_pairs @query_pairs ||= build_query_pairs(@params) end |
#to_s ⇒ String
Return the string representation of params.
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/ethon/easy/queryable.rb', line 31 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 |