opensearch-dsl 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/.gitignore +17 -0
- data/Gemfile +51 -0
- data/LICENSE +202 -0
- data/README.md +149 -0
- data/Rakefile +234 -0
- data/lib/opensearch/dsl/search/aggregation.rb +110 -0
- data/lib/opensearch/dsl/search/aggregations/avg.rb +51 -0
- data/lib/opensearch/dsl/search/aggregations/cardinality.rb +58 -0
- data/lib/opensearch/dsl/search/aggregations/children.rb +65 -0
- data/lib/opensearch/dsl/search/aggregations/composite.rb +68 -0
- data/lib/opensearch/dsl/search/aggregations/date_histogram.rb +66 -0
- data/lib/opensearch/dsl/search/aggregations/date_range.rb +60 -0
- data/lib/opensearch/dsl/search/aggregations/extended_stats.rb +50 -0
- data/lib/opensearch/dsl/search/aggregations/filter.rb +56 -0
- data/lib/opensearch/dsl/search/aggregations/filters.rb +61 -0
- data/lib/opensearch/dsl/search/aggregations/geo_bounds.rb +70 -0
- data/lib/opensearch/dsl/search/aggregations/geo_distance.rb +65 -0
- data/lib/opensearch/dsl/search/aggregations/geohash_grid.rb +61 -0
- data/lib/opensearch/dsl/search/aggregations/global.rb +54 -0
- data/lib/opensearch/dsl/search/aggregations/histogram.rb +61 -0
- data/lib/opensearch/dsl/search/aggregations/ip_range.rb +57 -0
- data/lib/opensearch/dsl/search/aggregations/max.rb +51 -0
- data/lib/opensearch/dsl/search/aggregations/min.rb +51 -0
- data/lib/opensearch/dsl/search/aggregations/missing.rb +61 -0
- data/lib/opensearch/dsl/search/aggregations/nested.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/percentile_ranks.rb +60 -0
- data/lib/opensearch/dsl/search/aggregations/percentiles.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/avg_bucket.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_script.rb +61 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_selector.rb +60 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_sort.rb +114 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/cumulative_sum.rb +58 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/derivative.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/extended_stats_bucket.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/max_bucket.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/min_bucket.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/moving_avg.rb +67 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/percentiles_bucket.rb +61 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/serial_diff.rb +61 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/stats_bucket.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/sum_bucket.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/range.rb +79 -0
- data/lib/opensearch/dsl/search/aggregations/reverse_nested.rb +63 -0
- data/lib/opensearch/dsl/search/aggregations/scripted_metric.rb +65 -0
- data/lib/opensearch/dsl/search/aggregations/significant_terms.rb +71 -0
- data/lib/opensearch/dsl/search/aggregations/stats.rb +63 -0
- data/lib/opensearch/dsl/search/aggregations/sum.rb +51 -0
- data/lib/opensearch/dsl/search/aggregations/terms.rb +68 -0
- data/lib/opensearch/dsl/search/aggregations/top_hits.rb +61 -0
- data/lib/opensearch/dsl/search/aggregations/value_count.rb +51 -0
- data/lib/opensearch/dsl/search/base_aggregation_component.rb +90 -0
- data/lib/opensearch/dsl/search/base_component.rb +193 -0
- data/lib/opensearch/dsl/search/base_compound_filter_component.rb +123 -0
- data/lib/opensearch/dsl/search/filter.rb +81 -0
- data/lib/opensearch/dsl/search/filters/and.rb +71 -0
- data/lib/opensearch/dsl/search/filters/bool.rb +105 -0
- data/lib/opensearch/dsl/search/filters/exists.rb +58 -0
- data/lib/opensearch/dsl/search/filters/geo_bounding_box.rb +71 -0
- data/lib/opensearch/dsl/search/filters/geo_distance.rb +83 -0
- data/lib/opensearch/dsl/search/filters/geo_distance_range.rb +58 -0
- data/lib/opensearch/dsl/search/filters/geo_polygon.rb +67 -0
- data/lib/opensearch/dsl/search/filters/geo_shape.rb +61 -0
- data/lib/opensearch/dsl/search/filters/geohash_cell.rb +72 -0
- data/lib/opensearch/dsl/search/filters/has_child.rb +100 -0
- data/lib/opensearch/dsl/search/filters/has_parent.rb +99 -0
- data/lib/opensearch/dsl/search/filters/ids.rb +58 -0
- data/lib/opensearch/dsl/search/filters/indices.rb +103 -0
- data/lib/opensearch/dsl/search/filters/limit.rb +57 -0
- data/lib/opensearch/dsl/search/filters/match_all.rb +54 -0
- data/lib/opensearch/dsl/search/filters/missing.rb +60 -0
- data/lib/opensearch/dsl/search/filters/nested.rb +93 -0
- data/lib/opensearch/dsl/search/filters/not.rb +99 -0
- data/lib/opensearch/dsl/search/filters/or.rb +71 -0
- data/lib/opensearch/dsl/search/filters/prefix.rb +55 -0
- data/lib/opensearch/dsl/search/filters/query.rb +80 -0
- data/lib/opensearch/dsl/search/filters/range.rb +65 -0
- data/lib/opensearch/dsl/search/filters/regexp.rb +60 -0
- data/lib/opensearch/dsl/search/filters/script.rb +58 -0
- data/lib/opensearch/dsl/search/filters/term.rb +57 -0
- data/lib/opensearch/dsl/search/filters/terms.rb +58 -0
- data/lib/opensearch/dsl/search/filters/type.rb +60 -0
- data/lib/opensearch/dsl/search/highlight.rb +117 -0
- data/lib/opensearch/dsl/search/options.rb +81 -0
- data/lib/opensearch/dsl/search/queries/bool.rb +111 -0
- data/lib/opensearch/dsl/search/queries/boosting.rb +59 -0
- data/lib/opensearch/dsl/search/queries/common.rb +64 -0
- data/lib/opensearch/dsl/search/queries/constant_score.rb +92 -0
- data/lib/opensearch/dsl/search/queries/dis_max.rb +61 -0
- data/lib/opensearch/dsl/search/queries/exists.rb +69 -0
- data/lib/opensearch/dsl/search/queries/filtered.rb +103 -0
- data/lib/opensearch/dsl/search/queries/function_score.rb +128 -0
- data/lib/opensearch/dsl/search/queries/fuzzy.rb +71 -0
- data/lib/opensearch/dsl/search/queries/fuzzy_like_this.rb +63 -0
- data/lib/opensearch/dsl/search/queries/fuzzy_like_this_field.rb +62 -0
- data/lib/opensearch/dsl/search/queries/geo_shape.rb +56 -0
- data/lib/opensearch/dsl/search/queries/has_child.rb +84 -0
- data/lib/opensearch/dsl/search/queries/has_parent.rb +84 -0
- data/lib/opensearch/dsl/search/queries/ids.rb +54 -0
- data/lib/opensearch/dsl/search/queries/indices.rb +60 -0
- data/lib/opensearch/dsl/search/queries/match.rb +69 -0
- data/lib/opensearch/dsl/search/queries/match_all.rb +52 -0
- data/lib/opensearch/dsl/search/queries/match_phrase.rb +58 -0
- data/lib/opensearch/dsl/search/queries/match_phrase_prefix.rb +57 -0
- data/lib/opensearch/dsl/search/queries/more_like_this.rb +90 -0
- data/lib/opensearch/dsl/search/queries/multi_match.rb +71 -0
- data/lib/opensearch/dsl/search/queries/nested.rb +82 -0
- data/lib/opensearch/dsl/search/queries/prefix.rb +56 -0
- data/lib/opensearch/dsl/search/queries/query_string.rb +77 -0
- data/lib/opensearch/dsl/search/queries/range.rb +73 -0
- data/lib/opensearch/dsl/search/queries/regexp.rb +57 -0
- data/lib/opensearch/dsl/search/queries/simple_query_string.rb +66 -0
- data/lib/opensearch/dsl/search/queries/span_first.rb +54 -0
- data/lib/opensearch/dsl/search/queries/span_multi.rb +54 -0
- data/lib/opensearch/dsl/search/queries/span_near.rb +58 -0
- data/lib/opensearch/dsl/search/queries/span_not.rb +59 -0
- data/lib/opensearch/dsl/search/queries/span_or.rb +54 -0
- data/lib/opensearch/dsl/search/queries/span_term.rb +52 -0
- data/lib/opensearch/dsl/search/queries/template.rb +57 -0
- data/lib/opensearch/dsl/search/queries/term.rb +52 -0
- data/lib/opensearch/dsl/search/queries/terms.rb +53 -0
- data/lib/opensearch/dsl/search/queries/top_children.rb +84 -0
- data/lib/opensearch/dsl/search/queries/wildcard.rb +56 -0
- data/lib/opensearch/dsl/search/query.rb +80 -0
- data/lib/opensearch/dsl/search/sort.rb +84 -0
- data/lib/opensearch/dsl/search/suggest.rb +53 -0
- data/lib/opensearch/dsl/search.rb +288 -0
- data/lib/opensearch/dsl/utils.rb +51 -0
- data/lib/opensearch/dsl/version.rb +31 -0
- data/lib/opensearch/dsl.rb +72 -0
- data/lib/opensearch-dsl.rb +27 -0
- data/opensearch-dsl.gemspec +81 -0
- data/spec/opensearch/dsl/search/aggregations/avg_spec.rb +52 -0
- data/spec/opensearch/dsl/search/aggregations/cardinality_spec.rb +119 -0
- data/spec/opensearch/dsl/search/aggregations/children_spec.rb +75 -0
- data/spec/opensearch/dsl/search/aggregations/composite_spec.rb +108 -0
- data/spec/opensearch/dsl/search/aggregations/date_histogram_spec.rb +198 -0
- data/spec/opensearch/dsl/search/aggregations/date_range_spec.rb +98 -0
- data/spec/opensearch/dsl/search/aggregations/extended_stats_spec.rb +52 -0
- data/spec/opensearch/dsl/search/aggregations/filter_spec.rb +57 -0
- data/spec/opensearch/dsl/search/aggregations/filters_spec.rb +98 -0
- data/spec/opensearch/dsl/search/aggregations/geo_bounds_spec.rb +86 -0
- data/spec/opensearch/dsl/search/aggregations/geo_distance_spec.rb +122 -0
- data/spec/opensearch/dsl/search/aggregations/geo_grid_spec.rb +109 -0
- data/spec/opensearch/dsl/search/aggregations/global_spec.rb +71 -0
- data/spec/opensearch/dsl/search/aggregations/historgram_spec.rb +131 -0
- data/spec/opensearch/dsl/search/aggregations/ip_range_spec.rb +102 -0
- data/spec/opensearch/dsl/search/aggregations/max_spec.rb +52 -0
- data/spec/opensearch/dsl/search/aggregations/min_spec.rb +52 -0
- data/spec/opensearch/dsl/search/aggregations/missing_spec.rb +90 -0
- data/spec/opensearch/dsl/search/aggregations/nested_spec.rb +95 -0
- data/spec/opensearch/dsl/search/aggregations/percentile_ranks_spec.rb +135 -0
- data/spec/opensearch/dsl/search/aggregations/percentiles_spec.rb +134 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/avg_bucket_spec.rb +97 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/bucket_script_spec.rb +108 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/bucket_selector_spec.rb +97 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/bucket_sort_spec.rb +113 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/cumulative_sum_spec.rb +86 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/derivative_spec.rb +97 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/extended_stats_bucket_spec.rb +97 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/max_bucket_spec.rb +97 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/min_bucket_spec.rb +97 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/moving_avg_test_spec.rb +141 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/percentiles_bucket_spec.rb +108 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/serial_diff_spec.rb +108 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/stats_bucket_spec.rb +97 -0
- data/spec/opensearch/dsl/search/aggregations/pipeline/sum_bucket_spec.rb +97 -0
- data/spec/opensearch/dsl/search/aggregations/range_spec.rb +128 -0
- data/spec/opensearch/dsl/search/aggregations/reverse_nested_spec.rb +41 -0
- data/spec/opensearch/dsl/search/aggregations/scripted_metric_spec.rb +130 -0
- data/spec/opensearch/dsl/search/aggregations/significant_terms_spec.rb +185 -0
- data/spec/opensearch/dsl/search/aggregations/stats_spec.rb +65 -0
- data/spec/opensearch/dsl/search/aggregations/sum_spec.rb +52 -0
- data/spec/opensearch/dsl/search/aggregations/terms_spec.rb +174 -0
- data/spec/opensearch/dsl/search/aggregations/top_hits_spec.rb +97 -0
- data/spec/opensearch/dsl/search/aggregations/value_count_spec.rb +52 -0
- data/spec/opensearch/dsl/search/filters/and_spec.rb +83 -0
- data/spec/opensearch/dsl/search/filters/bool_spec.rb +208 -0
- data/spec/opensearch/dsl/search/filters/exists_spec.rb +75 -0
- data/spec/opensearch/dsl/search/filters/geo_bounding_box_spec.rb +153 -0
- data/spec/opensearch/dsl/search/filters/geo_distance_range_spec.rb +112 -0
- data/spec/opensearch/dsl/search/filters/geo_distance_spec.rb +135 -0
- data/spec/opensearch/dsl/search/filters/geo_polygon_spec.rb +75 -0
- data/spec/opensearch/dsl/search/filters/geo_shape_spec.rb +86 -0
- data/spec/opensearch/dsl/search/filters/geohash_cell_spec.rb +108 -0
- data/spec/opensearch/dsl/search/filters/has_child_spec.rb +148 -0
- data/spec/opensearch/dsl/search/filters/has_parent_spec.rb +137 -0
- data/spec/opensearch/dsl/search/filters/ids_spec.rb +87 -0
- data/spec/opensearch/dsl/search/filters/indices_spec.rb +118 -0
- data/spec/opensearch/dsl/search/filters/limit_spec.rb +75 -0
- data/spec/opensearch/dsl/search/filters/match_all_spec.rb +41 -0
- data/spec/opensearch/dsl/search/filters/missing_spec.rb +75 -0
- data/spec/opensearch/dsl/search/filters/nested_spec.rb +100 -0
- data/spec/opensearch/dsl/search/filters/not_spec.rb +68 -0
- data/spec/opensearch/dsl/search/filters/or_spec.rb +84 -0
- data/spec/opensearch/dsl/search/filters/prefix_spec.rb +55 -0
- data/spec/opensearch/dsl/search/filters/query_spec.rb +68 -0
- data/spec/opensearch/dsl/search/filters/range_spec.rb +120 -0
- data/spec/opensearch/dsl/search/filters/regexp_spec.rb +97 -0
- data/spec/opensearch/dsl/search/filters/script_spec.rb +86 -0
- data/spec/opensearch/dsl/search/filters/term_spec.rb +66 -0
- data/spec/opensearch/dsl/search/filters/terms_spec.rb +55 -0
- data/spec/opensearch/dsl/search/filters/type_spec.rb +75 -0
- data/spec/opensearch/dsl/search/queries/bool_spec.rb +276 -0
- data/spec/opensearch/dsl/search/queries/boosting_spec.rb +99 -0
- data/spec/opensearch/dsl/search/queries/common_spec.rb +141 -0
- data/spec/opensearch/dsl/search/queries/constant_score_spec.rb +99 -0
- data/spec/opensearch/dsl/search/queries/dis_max_spec.rb +97 -0
- data/spec/opensearch/dsl/search/queries/exists_spec.rb +75 -0
- data/spec/opensearch/dsl/search/queries/filtered_spec.rb +102 -0
- data/spec/opensearch/dsl/search/queries/function_score_spec.rb +173 -0
- data/spec/opensearch/dsl/search/queries/fuzzy_like_this_field_spec.rb +141 -0
- data/spec/opensearch/dsl/search/queries/fuzzy_like_this_spec.rb +143 -0
- data/spec/opensearch/dsl/search/queries/fuzzy_spec.rb +119 -0
- data/spec/opensearch/dsl/search/queries/geo_shape_spec.rb +86 -0
- data/spec/opensearch/dsl/search/queries/has_child_spec.rb +135 -0
- data/spec/opensearch/dsl/search/queries/has_parent_spec.rb +109 -0
- data/spec/opensearch/dsl/search/queries/ids_spec.rb +87 -0
- data/spec/opensearch/dsl/search/queries/indices_spec.rb +98 -0
- data/spec/opensearch/dsl/search/queries/match_all_spec.rb +75 -0
- data/spec/opensearch/dsl/search/queries/match_phrase_prefix_spec.rb +112 -0
- data/spec/opensearch/dsl/search/queries/match_phrase_spec.rb +123 -0
- data/spec/opensearch/dsl/search/queries/match_spec.rb +116 -0
- data/spec/opensearch/dsl/search/queries/more_like_this_spec.rb +96 -0
- data/spec/opensearch/dsl/search/queries/multi_match_spec.rb +83 -0
- data/spec/opensearch/dsl/search/queries/nested_spec.rb +107 -0
- data/spec/opensearch/dsl/search/queries/prefix_spec.rb +79 -0
- data/spec/opensearch/dsl/search/queries/query_string_spec.rb +98 -0
- data/spec/opensearch/dsl/search/queries/range_spec.rb +87 -0
- data/spec/opensearch/dsl/search/queries/regexp_spec.rb +91 -0
- data/spec/opensearch/dsl/search/queries/simple_query_string_spec.rb +83 -0
- data/spec/opensearch/dsl/search/queries/span_first_spec.rb +78 -0
- data/spec/opensearch/dsl/search/queries/span_multi_spec.rb +78 -0
- data/spec/opensearch/dsl/search/queries/span_near_spec.rb +81 -0
- data/spec/opensearch/dsl/search/queries/span_not_spec.rb +82 -0
- data/spec/opensearch/dsl/search/queries/span_or_spec.rb +78 -0
- data/spec/opensearch/dsl/search/queries/span_term_spec.rb +55 -0
- data/spec/opensearch/dsl/search/queries/template_spec.rb +93 -0
- data/spec/opensearch/dsl/search/queries/term_spec.rb +66 -0
- data/spec/opensearch/dsl/search/queries/terms_spec.rb +55 -0
- data/spec/opensearch/dsl/search/queries/top_children_spec.rb +102 -0
- data/spec/opensearch/dsl/search/queries/wildcard_spec.rb +90 -0
- data/spec/spec_helper.rb +33 -0
- data/test/integration/search_aggregation_children_test.rb +91 -0
- data/test/integration/search_aggregation_geo_test.rb +111 -0
- data/test/integration/search_aggregation_nested_test.rb +128 -0
- data/test/integration/search_aggregations_test.rb +287 -0
- data/test/integration/search_filters_test.rb +290 -0
- data/test/integration/search_options_test.rb +54 -0
- data/test/integration/search_query_test.rb +99 -0
- data/test/integration/search_size_from_test.rb +71 -0
- data/test/integration/search_sort_test.rb +58 -0
- data/test/integration/search_suggest_test.rb +103 -0
- data/test/integration/search_test.rb +82 -0
- data/test/test_helper.rb +95 -0
- data/test/unit/dsl_test.rb +44 -0
- data/test/unit/search_aggregation_test.rb +98 -0
- data/test/unit/search_base_aggregation_component_test.rb +67 -0
- data/test/unit/search_base_component_test.rb +212 -0
- data/test/unit/search_filter_test.rb +87 -0
- data/test/unit/search_highlight_test.rb +103 -0
- data/test/unit/search_options_test.rb +114 -0
- data/test/unit/search_query_test.rb +91 -0
- data/test/unit/search_size_from_test.rb +69 -0
- data/test/unit/search_sort_test.rb +91 -0
- data/test/unit/search_suggest_test.rb +46 -0
- data/test/unit/search_test.rb +270 -0
- data/test/unit/utils_test.rb +47 -0
- data.tar.gz.sig +3 -0
- metadata +654 -0
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'test_helper'
|
|
28
|
+
|
|
29
|
+
module OpenSearch
|
|
30
|
+
module Test
|
|
31
|
+
class HighlightTest < ::OpenSearch::Test::UnitTestCase
|
|
32
|
+
context "Search highlight" do
|
|
33
|
+
subject { OpenSearch::DSL::Search::Highlight.new }
|
|
34
|
+
|
|
35
|
+
should "take a Hash" do
|
|
36
|
+
subject = OpenSearch::DSL::Search::Highlight.new fields: { 'foo' => {} }, pre_tags: ['*'], post_tags: ['*']
|
|
37
|
+
|
|
38
|
+
assert_equal({ fields: { 'foo' => {} }, pre_tags: ['*'], post_tags: ['*'] }, subject.to_hash)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
should "encode fields as an array" do
|
|
42
|
+
subject.fields ['foo', 'bar']
|
|
43
|
+
assert_equal({ fields: { foo: {}, bar: {} } }, subject.to_hash)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
should "encode fields as a Hash" do
|
|
47
|
+
subject.fields foo: { bar: 1 }, xoo: { bar: 2 }
|
|
48
|
+
assert_equal({ fields: { foo: { bar: 1 }, xoo: { bar: 2 } } }, subject.to_hash)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
should "encode a field" do
|
|
52
|
+
subject.field 'foo'
|
|
53
|
+
assert_equal({ fields: { foo: {} } }, subject.to_hash)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
should "be additive on multiple calls" do
|
|
57
|
+
subject.fields ['foo', 'bar']
|
|
58
|
+
subject.field 'bam'
|
|
59
|
+
subject.field 'baz', { xoo: 10 }
|
|
60
|
+
assert_equal({ fields: { foo: {}, bar: {}, bam: {}, baz: { xoo: 10 } } }, subject.to_hash)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
should "encode pre_tags" do
|
|
64
|
+
subject.pre_tags '*'
|
|
65
|
+
assert_equal({ pre_tags: ['*'] }, subject.to_hash)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
should "encode post_tags" do
|
|
69
|
+
subject.post_tags '*'
|
|
70
|
+
assert_equal({ post_tags: ['*'] }, subject.to_hash)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
should "encode pre_tags as an array" do
|
|
74
|
+
subject.pre_tags ['*', '**']
|
|
75
|
+
assert_equal({ pre_tags: ['*', '**'] }, subject.to_hash)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
should "encode post_tags as an array" do
|
|
79
|
+
subject.post_tags ['*', '**']
|
|
80
|
+
assert_equal({ post_tags: ['*', '**'] }, subject.to_hash)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
should "encode the encoder option" do
|
|
84
|
+
subject.encoder 'foo'
|
|
85
|
+
assert_equal({ encoder: 'foo' }, subject.to_hash)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
should "encode the tags_schema option" do
|
|
89
|
+
subject.tags_schema 'foo'
|
|
90
|
+
assert_equal({ tags_schema: 'foo' }, subject.to_hash)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
should "combine the options" do
|
|
94
|
+
subject.fields ['foo', 'bar']
|
|
95
|
+
subject.field 'bam'
|
|
96
|
+
subject.pre_tags '*'
|
|
97
|
+
subject.post_tags '*'
|
|
98
|
+
assert_equal({ fields: { foo: {}, bar: {}, bam: {} }, pre_tags: ['*'], post_tags: ['*'] }, subject.to_hash)
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'test_helper'
|
|
28
|
+
|
|
29
|
+
module OpenSearch
|
|
30
|
+
module Test
|
|
31
|
+
class SearchOptionsTest < ::OpenSearch::Test::UnitTestCase
|
|
32
|
+
subject { OpenSearch::DSL::Search::Options.new }
|
|
33
|
+
|
|
34
|
+
context "Search options" do
|
|
35
|
+
should "combine different options" do
|
|
36
|
+
subject.version true
|
|
37
|
+
subject.min_score 0.5
|
|
38
|
+
|
|
39
|
+
assert_equal({version: true, min_score: 0.5}, subject.to_hash)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
should "encode _source" do
|
|
43
|
+
subject._source false
|
|
44
|
+
assert_equal( { _source: false }, subject.to_hash )
|
|
45
|
+
|
|
46
|
+
subject._source 'foo.*'
|
|
47
|
+
assert_equal( { _source: 'foo.*' }, subject.to_hash )
|
|
48
|
+
|
|
49
|
+
subject._source ['foo', 'bar']
|
|
50
|
+
assert_equal( { _source: ['foo', 'bar'] }, subject.to_hash )
|
|
51
|
+
|
|
52
|
+
subject._source include: ['foo.*'], exclude: ['bar.*']
|
|
53
|
+
assert_equal( { _source: { include: ['foo.*'], exclude: ['bar.*'] } }, subject.to_hash )
|
|
54
|
+
|
|
55
|
+
subject.source false
|
|
56
|
+
assert_equal( { _source: false }, subject.to_hash )
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
should "encode fields" do
|
|
60
|
+
subject.fields ['foo']
|
|
61
|
+
assert_equal( { fields: ['foo'] }, subject.to_hash )
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
should "encode script_fields" do
|
|
65
|
+
subject.script_fields ['foo']
|
|
66
|
+
assert_equal( { script_fields: ['foo'] }, subject.to_hash )
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
should "encode fielddata_fields" do
|
|
70
|
+
subject.fielddata_fields ['foo']
|
|
71
|
+
assert_equal( { fielddata_fields: ['foo'] }, subject.to_hash )
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
should "encode rescore" do
|
|
75
|
+
subject.rescore foo: 'bar'
|
|
76
|
+
assert_equal( { rescore: { foo: 'bar' } }, subject.to_hash )
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
should "encode explain" do
|
|
80
|
+
subject.explain true
|
|
81
|
+
assert_equal( { explain: true }, subject.to_hash )
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
should "encode version" do
|
|
85
|
+
subject.version true
|
|
86
|
+
assert_equal( { version: true }, subject.to_hash )
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
should "encode track_total_hits" do
|
|
90
|
+
subject.track_total_hits 123
|
|
91
|
+
assert_equal( { track_total_hits: 123 }, subject.to_hash )
|
|
92
|
+
|
|
93
|
+
subject.track_total_hits true
|
|
94
|
+
assert_equal( { track_total_hits: true }, subject.to_hash )
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
should "encode indices_boost" do
|
|
98
|
+
subject.indices_boost foo: 'bar'
|
|
99
|
+
assert_equal( { indices_boost: { foo: 'bar' } }, subject.to_hash )
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
should "encode track_scores" do
|
|
103
|
+
subject.track_scores true
|
|
104
|
+
assert_equal( { track_scores: true }, subject.to_hash )
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
should "encode min_score" do
|
|
108
|
+
subject.min_score 0.5
|
|
109
|
+
assert_equal( { min_score: 0.5 }, subject.to_hash )
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'test_helper'
|
|
28
|
+
|
|
29
|
+
module OpenSearch
|
|
30
|
+
module Test
|
|
31
|
+
class SearchQueryTest < ::OpenSearch::Test::UnitTestCase
|
|
32
|
+
subject { OpenSearch::DSL::Search::Query.new }
|
|
33
|
+
|
|
34
|
+
context "Search Query" do
|
|
35
|
+
|
|
36
|
+
should "be serializable to a Hash" do
|
|
37
|
+
assert_equal( {}, subject.to_hash )
|
|
38
|
+
|
|
39
|
+
subject = OpenSearch::DSL::Search::Query.new
|
|
40
|
+
subject.instance_variable_set(:@value, {})
|
|
41
|
+
assert_equal( {}, subject.to_hash )
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
should "evaluate the block and return itself" do
|
|
45
|
+
block = Proc.new { 1+1 }
|
|
46
|
+
subject = OpenSearch::DSL::Search::Query.new &block
|
|
47
|
+
|
|
48
|
+
subject.expects(:instance_eval)
|
|
49
|
+
assert_instance_of OpenSearch::DSL::Search::Query, subject.call
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
should "call the block and return itself" do
|
|
53
|
+
block = Proc.new { |s| 1+1 }
|
|
54
|
+
subject = OpenSearch::DSL::Search::Query.new &block
|
|
55
|
+
|
|
56
|
+
block.expects(:call)
|
|
57
|
+
assert_instance_of OpenSearch::DSL::Search::Query, subject.call
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
should "define the value with query methods" do
|
|
61
|
+
assert_nothing_raised do
|
|
62
|
+
subject.match foo: 'bar'
|
|
63
|
+
assert_instance_of Hash, subject.to_hash
|
|
64
|
+
assert_equal( { match: { foo: 'bar' } }, subject.to_hash )
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
should "redefine the value with query methods" do
|
|
69
|
+
assert_nothing_raised do
|
|
70
|
+
subject.match foo: 'bar'
|
|
71
|
+
subject.match foo: 'bam'
|
|
72
|
+
subject.to_hash
|
|
73
|
+
subject.to_hash
|
|
74
|
+
assert_instance_of Hash, subject.to_hash
|
|
75
|
+
assert_equal({ match: { foo: 'bam' } }, subject.to_hash)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
should "have the query methods" do
|
|
80
|
+
assert_nothing_raised { subject.match foo: 'bar' }
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
should "raise an exception for unknown query" do
|
|
84
|
+
assert_raise(NoMethodError) { subject.foofoo }
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'test_helper'
|
|
28
|
+
|
|
29
|
+
module OpenSearch
|
|
30
|
+
module Test
|
|
31
|
+
class SearchSizeTest < ::OpenSearch::Test::UnitTestCase
|
|
32
|
+
context "Search pagination" do
|
|
33
|
+
|
|
34
|
+
should "encode the size parameter" do
|
|
35
|
+
subject = OpenSearch::DSL::Search::Search.new do
|
|
36
|
+
size 5
|
|
37
|
+
end
|
|
38
|
+
assert_equal( { size: 5 }, subject.to_hash )
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
should "encode the from parameter" do
|
|
42
|
+
subject = OpenSearch::DSL::Search::Search.new do
|
|
43
|
+
from 5
|
|
44
|
+
end
|
|
45
|
+
assert_equal( { from: 5 }, subject.to_hash )
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
should "have getter methods" do
|
|
49
|
+
subject = OpenSearch::DSL::Search::Search.new
|
|
50
|
+
assert_nil subject.size
|
|
51
|
+
assert_nil subject.from
|
|
52
|
+
subject.size = 5
|
|
53
|
+
subject.from = 5
|
|
54
|
+
assert_equal 5, subject.size
|
|
55
|
+
assert_equal 5, subject.from
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
should "have setter methods" do
|
|
59
|
+
subject = OpenSearch::DSL::Search::Search.new
|
|
60
|
+
subject.size = 5
|
|
61
|
+
subject.from = 5
|
|
62
|
+
assert_equal 5, subject.size
|
|
63
|
+
assert_equal 5, subject.from
|
|
64
|
+
assert_equal( { size: 5, from: 5 }, subject.to_hash )
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'test_helper'
|
|
28
|
+
|
|
29
|
+
module OpenSearch
|
|
30
|
+
module Test
|
|
31
|
+
class SearchSortTest < ::OpenSearch::Test::UnitTestCase
|
|
32
|
+
subject { OpenSearch::DSL::Search::Sort.new }
|
|
33
|
+
|
|
34
|
+
context "Search sort" do
|
|
35
|
+
|
|
36
|
+
should "add a single field" do
|
|
37
|
+
subject = OpenSearch::DSL::Search::Sort.new :foo
|
|
38
|
+
assert_equal( [:foo], subject.to_hash )
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
should "add multiple fields" do
|
|
42
|
+
subject = OpenSearch::DSL::Search::Sort.new [:foo, :bar]
|
|
43
|
+
assert_equal( [:foo, :bar], subject.to_hash )
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
should "add a field with options" do
|
|
47
|
+
subject = OpenSearch::DSL::Search::Sort.new foo: { order: 'desc', mode: 'avg' }
|
|
48
|
+
assert_equal( [ { foo: { order: 'desc', mode: 'avg' } } ], subject.to_hash )
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
should "add fields with the DSL method" do
|
|
52
|
+
subject = OpenSearch::DSL::Search::Sort.new do
|
|
53
|
+
by :foo
|
|
54
|
+
by :bar, order: 'desc'
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
assert_equal(
|
|
58
|
+
[
|
|
59
|
+
:foo,
|
|
60
|
+
{ bar: { order: 'desc' } },
|
|
61
|
+
], subject.to_hash )
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
should "be empty" do
|
|
65
|
+
subject = OpenSearch::DSL::Search::Sort.new
|
|
66
|
+
assert_equal subject.empty?, true
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
should "not be empty" do
|
|
70
|
+
subject = OpenSearch::DSL::Search::Sort.new foo: { order: 'desc' }
|
|
71
|
+
assert_equal subject.empty?, false
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
context "#to_hash" do
|
|
75
|
+
should "not duplicate values when defined by arguments" do
|
|
76
|
+
subject = OpenSearch::DSL::Search::Sort.new foo: { order: 'desc' }
|
|
77
|
+
assert_equal(subject.to_hash, subject.to_hash)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
should "not duplicate values when defined by a block" do
|
|
81
|
+
subject = OpenSearch::DSL::Search::Sort.new do
|
|
82
|
+
by :foo
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
assert_equal(subject.to_hash, subject.to_hash)
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'test_helper'
|
|
28
|
+
|
|
29
|
+
module OpenSearch
|
|
30
|
+
module Test
|
|
31
|
+
class SearchSuggestTest < ::OpenSearch::Test::UnitTestCase
|
|
32
|
+
subject { OpenSearch::DSL::Search::Suggest.new :foo }
|
|
33
|
+
|
|
34
|
+
context "Search suggest" do
|
|
35
|
+
should "be an empty hash by default" do
|
|
36
|
+
assert_equal({ foo: {} }, subject.to_hash)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
should "contain options" do
|
|
40
|
+
subject = OpenSearch::DSL::Search::Suggest.new :foo, boo: 'bam'
|
|
41
|
+
assert_equal({ foo: { boo: 'bam' } }, subject.to_hash)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|