Sha256: 5c7c2f32af3a863d13346e08c729cf7d4559989adccc4e23af11b61c08ffaff1

Contents?: true

Size: 743 Bytes

Versions: 19

Compression:

Stored size: 743 Bytes

Contents

module Elastic::Nodes::Agg
  class Terms < Elastic::Nodes::BaseAgg
    include Elastic::Nodes::Concerns::Aggregable
    include Elastic::Nodes::Concerns::Bucketed

    def self.build(_name, _field, size: nil)
      super(_name).tap do |node|
        node.field = _field
        node.size = size
      end
    end

    attr_accessor :field, :size

    def clone
      prepare_clone(super)
    end

    def simplify
      prepare_clone(super)
    end

    def render(_options = {})
      hash = { 'field' => @field.to_s }
      hash['size'] = @size if @size

      render_aggs({ 'terms' => hash }, _options)
    end

    private

    def prepare_clone(_clone)
      _clone.field = @field
      _clone.size = @size
      _clone
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
elastic-rails-1.0.4 lib/elastic/nodes/agg/terms.rb
elastic-rails-1.0.3 lib/elastic/nodes/agg/terms.rb
elastic-rails-1.0.2 lib/elastic/nodes/agg/terms.rb
elastic-rails-1.0.1 lib/elastic/nodes/agg/terms.rb
elastic-rails-1.0.0 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.8.7 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.8.6 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.8.5 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.8.4 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.8.3 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.8.2 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.8.1 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.8.0 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.7.0 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.6.4 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.6.3 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.6.2 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.6.1 lib/elastic/nodes/agg/terms.rb
elastic-rails-0.6.0 lib/elastic/nodes/agg/terms.rb