class Postgrest::Builders::FilterBuilder
Constants
- RANGE_MATCHERS
- SIMPLE_MATCHERS
Public Class Methods
new(http)
click to toggle source
Calls superclass method
Postgrest::Builders::BaseBuilder::new
# File lib/postgrest/builders/filter_builder.rb, line 11 def initialize(http) super @inverse_next = false end
Public Instance Methods
decoded_query()
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 64 def decoded_query @decoded_query ||= URI.decode_www_form(query).to_h end
in(values = [])
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 34 def in(values = []) transform_params(method_name: __method__, values: values) do |key, value| [key, "#{method_key(__method__)}.(#{value.join(',')})"] end self end
limit(number = 0)
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 68 def limit(number = 0) decoded_query['limit'] = number self end
method_missing(method_name, *columns, as: nil)
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 53 def method_missing(method_name, *columns, as: nil) decoded_query['select'] += as ? ",#{as}:#{method_name}" : ",#{method_name}" decoded_query['select'] += columns.empty? ? '(*)' : "(#{columns.join(',')})" self end
not()
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 78 def not @inverse_next = !@inverse_next self end
offset(number = 0)
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 73 def offset(number = 0) decoded_query['offset'] = number self end
order(values)
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 42 def order(values) transform_params(method_name: __method__, values: values) do |key, value| asc = value.to_sym != :desc asc = !asc if should_invert? [__method__, "#{key}.#{asc ? 'asc' : 'desc'}"] end self end
query()
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 60 def query http.uri.query end
Private Instance Methods
method_key(name)
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 101 def method_key(name) should_invert? ? "not.#{name}" : name end
should_invert?()
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 85 def should_invert? @inverse_next end
transform_params(values:, method_name:) { |k, v| ... }
click to toggle source
# File lib/postgrest/builders/filter_builder.rb, line 89 def transform_params(values:, method_name:) values.each do |k, v| key, value = yield(k, v) if block_given? key ||= k value ||= "#{method_key(method_name)}.#{v}" decoded_query[key.to_s] = value end @inverse_next = false end
update_http_instance()
click to toggle source
Before execute callback
# File lib/postgrest/builders/filter_builder.rb, line 106 def update_http_instance http.update_query_params(decoded_query) end