Class: ActiveShopifyGraphQL::SearchQuery
- Inherits:
-
Object
- Object
- ActiveShopifyGraphQL::SearchQuery
- Defined in:
- lib/active_shopify_graphql/search_query.rb,
lib/active_shopify_graphql/search_query/value_sanitizer.rb,
lib/active_shopify_graphql/search_query/parameter_binder.rb,
lib/active_shopify_graphql/search_query/hash_condition_formatter.rb
Overview
Represents a Shopify search query, converting Ruby conditions into Shopify's search syntax Supports hash-based conditions (with sanitization), string-based conditions (raw), and parameter binding
Defined Under Namespace
Classes: HashConditionFormatter, ParameterBinder, ValueSanitizer
Instance Method Summary collapse
-
#initialize(conditions = {}, *args) ⇒ SearchQuery
constructor
A new instance of SearchQuery.
-
#to_s ⇒ String
Converts conditions to Shopify search query string.
Constructor Details
#initialize(conditions = {}, *args) ⇒ SearchQuery
Returns a new instance of SearchQuery.
26 27 28 29 |
# File 'lib/active_shopify_graphql/search_query.rb', line 26 def initialize(conditions = {}, *args) @conditions = conditions @args = args end |
Instance Method Details
#to_s ⇒ String
Converts conditions to Shopify search query string
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/active_shopify_graphql/search_query.rb', line 33 def to_s case @conditions when Hash HashConditionFormatter.format(@conditions) when String if @args.empty? @conditions else ParameterBinder.bind(@conditions, *@args) end when Array # Handle [query_string, *binding_args] format from FinderMethods#where query_string = @conditions.first binding_args = @conditions[1..] ParameterBinder.bind(query_string, *binding_args) else "" end end |