Class: Kentico::Kontent::Delivery::QueryParameters::ParameterBase
- Inherits:
-
Object
- Object
- Kentico::Kontent::Delivery::QueryParameters::ParameterBase
- Defined in:
- lib/delivery/query_parameters/parameter_base.rb
Overview
Base class for all parameters added to a DeliveryQuery. All QueryParameters will appear in the query string.
Direct Known Subclasses
Constant Summary collapse
- SEPARATOR =
CGI::escape(',')
Instance Attribute Summary collapse
-
#key ⇒ Object
Returns the value of attribute key.
Instance Method Summary collapse
-
#initialize(key, operator, values, eq_sign = true) ⇒ ParameterBase
constructor
Constructor.
-
#provide_query_string_parameter ⇒ Object
Converts the object into a valid query string parameter for use in a request to Delivery.
Constructor Details
#initialize(key, operator, values, eq_sign = true) ⇒ ParameterBase
Constructor.
-
Args:
-
key (
string
) The field to filter upon -
operator (
string
) The Kentico Kontent filter being applied to the field, in brackets -
values (
Object
) One or more values which will appear as the value of the query string parameter -
eq_sign (
boolean
) If false, the equals sign is not generated in the parameter
-
20 21 22 23 24 25 26 |
# File 'lib/delivery/query_parameters/parameter_base.rb', line 20 def initialize(key, operator, values, eq_sign = true) self.key = key values = [values] unless values.respond_to? :each @values = values @operator = operator @eq_sign = eq_sign end |
Instance Attribute Details
#key ⇒ Object
Returns the value of attribute key.
10 11 12 |
# File 'lib/delivery/query_parameters/parameter_base.rb', line 10 def key @key end |
Instance Method Details
#provide_query_string_parameter ⇒ Object
Converts the object into a valid query string parameter for use in a request to Delivery. The key, operator, and values are all escaped and if there are multiple values, they are joined with commas.
-
Returns:
-
string
A query string parameter without any additional characters (e.g. ‘&’)
-
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/delivery/query_parameters/parameter_base.rb', line 34 def provide_query_string_parameter escaped_values = [] @values.each { |n| escaped_values << CGI.escape(n.to_s) } if @eq_sign format( '%<k>s%<o>s=%<v>s', k: CGI.escape(key), o: CGI.escape(@operator), v: escaped_values.join(SEPARATOR) ) else format( '%<k>s%<o>s', k: CGI.escape(key), o: CGI.escape(@operator) ) end end |