module OpenSearch::DSL::Search::BaseComponent::InstanceMethods

Public Instance Methods

call() click to toggle source

Evaluates any block passed to the query

@return [self]

# File lib/opensearch/dsl/search/base_component.rb, line 152
def call
  @block.arity < 1 ? self.instance_eval(&@block) : @block.call(self) if @block
  self
end
empty?() click to toggle source

Return true when the component definition is empty

# File lib/opensearch/dsl/search/base_component.rb, line 159
def empty?
  to_hash[name].respond_to?(:empty?) && to_hash[name].empty?
end
name() click to toggle source

Return the name for instance of the DSL class

@return [String]

# File lib/opensearch/dsl/search/base_component.rb, line 144
def name
  self.class.name
end
to_hash(options={}) click to toggle source

Convert the query definition to a Hash

A default implementation, DSL classes can overload it.

@return [Hash]

# File lib/opensearch/dsl/search/base_component.rb, line 169
def to_hash(options={})
  case
    # 1. Create hash from the block
    when @block
      @hash = (@args && ! @args.empty?) ? { name => { @args => {} } } : { name => {} }
      call
      @hash[self.name.to_sym].update @options unless @options.empty?
      @hash
    # 2. Hash created with option methods
    when @hash[self.name.to_sym] && ! @args.is_a?(Hash) && @hash[self.name.to_sym][@args]
      @hash[self.name.to_sym].update @options unless @options.empty?
      @hash
    # 3. Hash passsed as @args
    when @hash[self.name.to_sym] && @args.respond_to?(:to_hash) && ! @args.empty?
      { name => @args.to_hash }
    # 4. Hash already built
    else
      @hash
  end
end