CloudSesame 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.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +76 -0
  6. data/Guardfile +70 -0
  7. data/cloud_sesame.gemspec +25 -0
  8. data/lib/abstract_object.rb +67 -0
  9. data/lib/cloud_sesame.rb +77 -0
  10. data/lib/cloud_sesame/config/credential.rb +8 -0
  11. data/lib/cloud_sesame/domain/base.rb +70 -0
  12. data/lib/cloud_sesame/domain/client.rb +28 -0
  13. data/lib/cloud_sesame/domain/config.rb +8 -0
  14. data/lib/cloud_sesame/domain/context.rb +35 -0
  15. data/lib/cloud_sesame/query/ast/and.rb +9 -0
  16. data/lib/cloud_sesame/query/ast/compound_array.rb +73 -0
  17. data/lib/cloud_sesame/query/ast/leaf.rb +8 -0
  18. data/lib/cloud_sesame/query/ast/literal.rb +27 -0
  19. data/lib/cloud_sesame/query/ast/multi_branch.rb +27 -0
  20. data/lib/cloud_sesame/query/ast/not.rb +13 -0
  21. data/lib/cloud_sesame/query/ast/operator.rb +24 -0
  22. data/lib/cloud_sesame/query/ast/or.rb +9 -0
  23. data/lib/cloud_sesame/query/ast/prefix_literal.rb +17 -0
  24. data/lib/cloud_sesame/query/ast/root.rb +24 -0
  25. data/lib/cloud_sesame/query/ast/single_branch.rb +24 -0
  26. data/lib/cloud_sesame/query/ast/value.rb +38 -0
  27. data/lib/cloud_sesame/query/builder.rb +78 -0
  28. data/lib/cloud_sesame/query/dsl.rb +62 -0
  29. data/lib/cloud_sesame/query/dsl/and.rb +19 -0
  30. data/lib/cloud_sesame/query/dsl/base.rb +23 -0
  31. data/lib/cloud_sesame/query/dsl/filter_query.rb +47 -0
  32. data/lib/cloud_sesame/query/dsl/literal.rb +41 -0
  33. data/lib/cloud_sesame/query/dsl/or.rb +19 -0
  34. data/lib/cloud_sesame/query/dsl/range.rb +41 -0
  35. data/lib/cloud_sesame/query/dsl/scope.rb +24 -0
  36. data/lib/cloud_sesame/query/error/missing_operator_symbol.rb +8 -0
  37. data/lib/cloud_sesame/query/error/missing_query.rb +8 -0
  38. data/lib/cloud_sesame/query/node/abstract.rb +14 -0
  39. data/lib/cloud_sesame/query/node/facet.rb +14 -0
  40. data/lib/cloud_sesame/query/node/filter_query.rb +17 -0
  41. data/lib/cloud_sesame/query/node/page.rb +27 -0
  42. data/lib/cloud_sesame/query/node/query.rb +29 -0
  43. data/lib/cloud_sesame/query/node/query_options.rb +37 -0
  44. data/lib/cloud_sesame/query/node/query_options_field.rb +20 -0
  45. data/lib/cloud_sesame/query/node/query_parser.rb +27 -0
  46. data/lib/cloud_sesame/query/node/request.rb +71 -0
  47. data/lib/cloud_sesame/query/node/sort.rb +37 -0
  48. data/spec/abstract_object_spec.rb +103 -0
  49. data/spec/cloud_sesame/domain/base_spec.rb +27 -0
  50. data/spec/cloud_sesame/domain/context_spec.rb +24 -0
  51. data/spec/cloud_sesame/query/ast/and_spec.rb +13 -0
  52. data/spec/cloud_sesame/query/ast/literal_spec.rb +37 -0
  53. data/spec/cloud_sesame/query/ast/multi_branch_spec.rb +65 -0
  54. data/spec/cloud_sesame/query/ast/operator_spec.rb +30 -0
  55. data/spec/cloud_sesame/query/ast/or_spec.rb +13 -0
  56. data/spec/cloud_sesame/query/ast/root_spec.rb +43 -0
  57. data/spec/cloud_sesame/query/ast/value_spec.rb +40 -0
  58. data/spec/cloud_sesame/query/builder_spec.rb +12 -0
  59. data/spec/cloud_sesame/query/dsl/base_spec.rb +31 -0
  60. data/spec/cloud_sesame/query/dsl/filter_query_spec.rb +158 -0
  61. data/spec/cloud_sesame/query/dsl_spec.rb +96 -0
  62. data/spec/cloud_sesame/query/node/abstract_spec.rb +19 -0
  63. data/spec/cloud_sesame/query/node/facet_spec.rb +42 -0
  64. data/spec/cloud_sesame/query/node/filter_query_spec.rb +29 -0
  65. data/spec/cloud_sesame/query/node/page_spec.rb +58 -0
  66. data/spec/cloud_sesame/query/node/query_options_field_spec.rb +27 -0
  67. data/spec/cloud_sesame/query/node/query_options_spec.rb +56 -0
  68. data/spec/cloud_sesame/query/node/query_parser_spec.rb +37 -0
  69. data/spec/cloud_sesame/query/node/query_spec.rb +46 -0
  70. data/spec/cloud_sesame/query/node/request_spec.rb +71 -0
  71. data/spec/cloud_sesame/query/node/sort_spec.rb +76 -0
  72. data/spec/cloud_sesame_spec.rb +58 -0
  73. data/spec/spec_helper.rb +12 -0
  74. metadata +218 -0
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ module CloudSesame
4
+ module Query
5
+ module Node
6
+ describe QueryOptionsField do
7
+
8
+ let(:query_options_field) { QueryOptionsField.new("description", weight) }
9
+
10
+ describe '#compile' do
11
+ context 'when weight is nil' do
12
+ let(:weight) { nil }
13
+ it 'should return a string with the field' do
14
+ expect(query_options_field.compile).to eq("description")
15
+ end
16
+ end
17
+ context 'when weight is not nil' do
18
+ let(:weight) { 2 }
19
+ it 'should return a string with the weight' do
20
+ expect(query_options_field.compile).to eq("description^2")
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,56 @@
1
+ require 'spec_helper'
2
+
3
+ module CloudSesame
4
+ module Query
5
+ module Node
6
+ describe QueryOptions do
7
+
8
+ let(:context) {{}}
9
+ let(:query_options) { QueryOptions.new(context) }
10
+
11
+ describe '#fields' do
12
+ context 'when given the context' do
13
+ context 'and context fields is an hash with fields and options' do
14
+ let(:context) { { fields: { description: { weight: 2}, name: { weight: 1} } } }
15
+ it 'should set the fields from context' do
16
+ expect(query_options.fields).to include(QueryOptionsField)
17
+ expect(query_options.fields[0].field).to eq :description
18
+ expect(query_options.fields[0].weight).to eq 2
19
+ expect(query_options.fields[1].field).to eq :name
20
+ expect(query_options.fields[1].weight).to eq 1
21
+ end
22
+ end
23
+ end
24
+ context 'when not given the context' do
25
+ it 'should default it to an empty hash' do
26
+ expect(query_options.fields).to eq([])
27
+ end
28
+ end
29
+ context 'when there are existing fields stored' do
30
+ it 'should return the existing fields' do
31
+ field = QueryOptionsField.new({ field: 'description' })
32
+ query_options.fields << field
33
+ expect(query_options.fields).to eq [field]
34
+ end
35
+ end
36
+ end
37
+
38
+ describe '#compile' do
39
+ context 'when fields is empty' do
40
+ it 'should return nil' do
41
+ expect(query_options.compile).to eq(nil)
42
+ end
43
+ end
44
+ context 'when fields is not empty' do
45
+ let(:context) { {fields: { description: { weight: 2 }, name: {} } } }
46
+ it 'should return a hash with query_options and fields as JSON' do
47
+ expected_result = { fields: ['description^2', 'name'] }
48
+ expect(query_options.compile).to include(query_options: JSON.dump(expected_result))
49
+ end
50
+ end
51
+ end
52
+
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ module CloudSesame
4
+ module Query
5
+ module Node
6
+ describe QueryParser do
7
+ let(:context) { {} }
8
+ subject { QueryParser.new(context) }
9
+
10
+ describe 'type accessors' do
11
+ it 'should set the type' do
12
+ expect{ subject.structured }.to change{ subject.type }.from('simple').to('structured')
13
+ end
14
+ end
15
+
16
+ describe '#type' do
17
+ it 'should default to simple if not passed in from context' do
18
+ expect(subject.type).to eq('simple')
19
+ end
20
+ context 'when default context passed in' do
21
+ let(:context) { {query_parser: 'structured'} }
22
+ it 'should default to the context value' do
23
+ expect(subject.type).to eq('structured')
24
+ end
25
+ end
26
+ end
27
+
28
+ describe '#compile' do
29
+ it 'should return a hash with query_parser type' do
30
+ expect(subject.compile).to eq({query_parser: 'simple'})
31
+ end
32
+ end
33
+
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,46 @@
1
+ require "spec_helper"
2
+
3
+ module CloudSesame
4
+ module Query
5
+ module Node
6
+ describe Query do
7
+ let(:arguments) {{ }}
8
+ let(:node) { Query.new(arguments) }
9
+
10
+ describe '#initialize' do
11
+ context 'when arguments passed in' do
12
+ let(:arguments) {{ query: "" }}
13
+ it 'should initalize an empty terms if query is empty' do
14
+ expect(node.terms).to eq []
15
+ end
16
+ it 'should accept query as args and initialize terms' do
17
+ arguments[:query] = "hello world"
18
+ expect(node.terms).to eq ["hello", "world"]
19
+ end
20
+ end
21
+ context 'when arguments not passed in' do
22
+ it 'should initialize an empty terms' do
23
+ expect(node.terms).to eq []
24
+ end
25
+ end
26
+ end
27
+
28
+ describe '#query' do
29
+ it 'should return a string with all the terms added' do
30
+ node.terms = ["term1", " term2", "term3 ", "-term4"]
31
+ expect(node.query).to eq "term1 term2 term3 -term4"
32
+ end
33
+ end
34
+
35
+ describe '#run' do
36
+ it 'should return a serialized hash contains query string' do
37
+ node.terms = ["term1", " term2", "term3 ", "-term4"]
38
+ expect(node.compile).to eq({ query: "term1 term2 term3 -term4" })
39
+ end
40
+ end
41
+
42
+ end
43
+ end
44
+ end
45
+ end
46
+
@@ -0,0 +1,71 @@
1
+ require 'spec_helper'
2
+
3
+ module CloudSesame
4
+ module Query
5
+ module Node
6
+ describe Request do
7
+ let(:context) { Domain::Context.new }
8
+ let(:request) { Request.new(context) }
9
+
10
+ describe '#compile' do
11
+ context 'when request is empty' do
12
+ it 'should return an default request' do
13
+ expect(request.compile).to include(
14
+ query: "",
15
+ query_parser: "structured",
16
+ start: 0,
17
+ size: 10
18
+ )
19
+ expect(request.compile).to_not include(:query_options, :filter_query, :sort)
20
+ end
21
+ it 'should set query_parser to structured' do
22
+ expect(request.compile).to include(query_parser: 'structured')
23
+ end
24
+ end
25
+ context 'when theres query' do
26
+ before { request.query.query = "hello world" }
27
+ it 'should includ query string' do
28
+ expect(request.compile).to include(query: "hello world")
29
+ end
30
+ it 'should default query_parser to simple' do
31
+ expect(request.compile).to include(query_parser: 'simple')
32
+ end
33
+ end
34
+ context 'when theres query_options' do
35
+ it 'should include query_options' do
36
+ request.query_options.fields.concat [QueryOptionsField.new(:price)]
37
+ expect(request.compile).to include(:query_options)
38
+ end
39
+ end
40
+ context 'when theres filter query' do
41
+ before { request.filter_query.root.and{ literal(:tags, "sale") } }
42
+ let(:compiled) { request.filter_query.compile }
43
+ context 'with query' do
44
+ before { request.query.query = "hello" }
45
+ it 'should include filter query' do
46
+ expect(request.compile).to include(:filter_query)
47
+ end
48
+ end
49
+ context 'without query' do
50
+ before { request.query.query = "" }
51
+ it 'should include query instead' do
52
+ expect(request.compile).to include(:query)
53
+ end
54
+ end
55
+ end
56
+ context 'when theres page' do
57
+ it 'should include start and size' do
58
+ expect(request.compile).to include(:start, :size)
59
+ end
60
+ end
61
+ context 'when theres sort' do
62
+ before { request.sort[:price]= :asc }
63
+ it 'should include sort' do
64
+ expect(request.compile).to include(:sort)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,76 @@
1
+ require 'spec_helper'
2
+
3
+ module CloudSesame
4
+ module Query
5
+ module Node
6
+ describe Sort do
7
+
8
+ let(:arguments) {{ }}
9
+ let(:node) { Sort.new(arguments) }
10
+
11
+ describe '#initialize' do
12
+ context 'when arguments passed in' do
13
+ let(:arguments) {{ sort: "score asc,price desc" }}
14
+ it 'should accept sort argument and initialize sorting_attributes' do
15
+ expect(node.sorting_attributes).to eq({ score: :asc, price: :desc })
16
+ end
17
+ it 'should initialize an empty sorting_attributes when arguments sort is empty' do
18
+ arguments[:sort] = ""
19
+ expect(node.sorting_attributes).to eq({ })
20
+ end
21
+ end
22
+ context 'when arguments not passed in' do
23
+ it 'should initialize an empty sorting_attributes' do
24
+ expect(node.sorting_attributes).to eq({ })
25
+ end
26
+ end
27
+ end
28
+
29
+ describe '#[]' do
30
+ context 'with existing attribute' do
31
+ let(:arguments) {{ sort: "score asc,price desc" }}
32
+ it 'should return the sorting order of the attribute' do
33
+ expect(node[:score]).to eq :asc
34
+ expect(node[:price]).to eq :desc
35
+ end
36
+ end
37
+ context 'with non-existing attribute' do
38
+ it 'should return the sorting order of the attribute' do
39
+ expect(node[:score]).to eq nil
40
+ expect(node[:price]).to eq nil
41
+ end
42
+ end
43
+ end
44
+
45
+ describe '#[]=' do
46
+ context 'with existing attribute' do
47
+ let(:arguments) {{ sort: "score asc,price desc" }}
48
+ it 'should override the sorting order of the attribute' do
49
+ expect{ node[:score] = :desc }.to change{ node[:score] }.from(:asc).to(:desc)
50
+ end
51
+ end
52
+ context 'with non-existing attribute' do
53
+ it 'should add the sorting order of the attribute' do
54
+ expect{ node[:test] = :asc }.to change{ node[:test] }.from(nil).to(:asc)
55
+ end
56
+ end
57
+ end
58
+
59
+ describe '#run' do
60
+ context 'with existing sorting attributes' do
61
+ let(:arguments) {{ sort: "score asc,price desc" }}
62
+ it 'should return a hash with serialized sort attributes' do
63
+ expect(node.compile).to eq arguments
64
+ end
65
+ end
66
+ context 'with empty sorting attributes' do
67
+ it 'should return an empty hash' do
68
+ expect(node.compile).to eq({})
69
+ end
70
+ end
71
+ end
72
+
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe CloudSesame, focus: true do
4
+
5
+ # # AWS initializer
6
+ # require 'yaml'
7
+ # YAML.load_file('aws.yml').each do |key, value|
8
+ # ENV["AWS_#{ key }"] = value
9
+ # end
10
+
11
+ # # Domain Initializer /config/initializers/cloudsearch.rb
12
+ # CloudSesame::Domain::Client.configure do |config|
13
+ # config.access_key = ENV['AWS_ACCESS_KEY_ID']
14
+ # config.secret_key = ENV['AWS_SECRET_ACCESS_KEY']
15
+ # end
16
+
17
+ # # Usage Example
18
+ # class Product
19
+ # include CloudSesame
20
+
21
+ # define_cloudsearch do
22
+
23
+ # # Product CloudSesame Config
24
+ # config.endpoint = ENV['AWS_ENDPOINT']
25
+ # config.region = ENV['AWS_REGION']
26
+
27
+ # default_size 100
28
+
29
+ # field :searchable_text, query: { weight: 2 }
30
+ # field :description, query: true
31
+ # field :tags
32
+
33
+ # field :affiliate_advertiser_ext_id, facet: { size: 50 }
34
+ # field :currency, facet: true
35
+ # field :discount_percentage, facet: { buckets: %w([10,100] [25,100] [50,100] [70,100]), method: 'interval' }
36
+ # field :manufacturer_name, facet: { size: 50 }
37
+ # field :price, facet: { buckets: %w([0,25] [25,50] [50,100] [100,200] [200,}), method: 'interval' }
38
+ # field :category_string, facet: { sort: 'bucket', size: 10_000 }
39
+ # field :created_at
40
+
41
+ # scope :men_tag, -> { tags "men" }
42
+ # scope :and_mens, -> { and! { tags "men"} }
43
+
44
+ # end
45
+
46
+ # end
47
+
48
+ # result = Product.cloudsearch.query("shoes")
49
+ # .page(3)
50
+ # .or {
51
+ # tags.not.start_with 'home', 'outdoor'
52
+ # price.start_with(100)
53
+ # }
54
+
55
+ # # result.included?(price: 100)
56
+ # binding.pry
57
+
58
+ end
@@ -0,0 +1,12 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ Bundler.setup
4
+
5
+ require 'pry'
6
+ require 'cloud_sesame'
7
+
8
+ RSpec.configure do |config|
9
+ # For running just wanted tests in guard
10
+ config.filter_run :focus => true
11
+ config.run_all_when_everything_filtered = true
12
+ end
metadata ADDED
@@ -0,0 +1,218 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: CloudSesame
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Scott Chu
8
+ - Emily Fan
9
+ - Greg Ward
10
+ - David McHoull
11
+ - Alishan Ladhani
12
+ - Justine Jones
13
+ - Gillian Chesnais
14
+ - Jeff Li
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+ date: 2016-01-13 00:00:00.000000000 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: aws-sdk
22
+ requirement: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '2'
27
+ type: :runtime
28
+ prerelease: false
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '2'
34
+ - !ruby/object:Gem::Dependency
35
+ name: rspec
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '3'
41
+ type: :development
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '3'
48
+ - !ruby/object:Gem::Dependency
49
+ name: pry
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: guard
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ - !ruby/object:Gem::Dependency
77
+ name: guard-rspec
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ description: AWS CloudSearch Query Interface
91
+ email: dev@retailcommon.com
92
+ executables: []
93
+ extensions: []
94
+ extra_rdoc_files: []
95
+ files:
96
+ - .gitignore
97
+ - .rspec
98
+ - Gemfile
99
+ - Gemfile.lock
100
+ - Guardfile
101
+ - cloud_sesame.gemspec
102
+ - lib/abstract_object.rb
103
+ - lib/cloud_sesame.rb
104
+ - lib/cloud_sesame/config/credential.rb
105
+ - lib/cloud_sesame/domain/base.rb
106
+ - lib/cloud_sesame/domain/client.rb
107
+ - lib/cloud_sesame/domain/config.rb
108
+ - lib/cloud_sesame/domain/context.rb
109
+ - lib/cloud_sesame/query/ast/and.rb
110
+ - lib/cloud_sesame/query/ast/compound_array.rb
111
+ - lib/cloud_sesame/query/ast/leaf.rb
112
+ - lib/cloud_sesame/query/ast/literal.rb
113
+ - lib/cloud_sesame/query/ast/multi_branch.rb
114
+ - lib/cloud_sesame/query/ast/not.rb
115
+ - lib/cloud_sesame/query/ast/operator.rb
116
+ - lib/cloud_sesame/query/ast/or.rb
117
+ - lib/cloud_sesame/query/ast/prefix_literal.rb
118
+ - lib/cloud_sesame/query/ast/root.rb
119
+ - lib/cloud_sesame/query/ast/single_branch.rb
120
+ - lib/cloud_sesame/query/ast/value.rb
121
+ - lib/cloud_sesame/query/builder.rb
122
+ - lib/cloud_sesame/query/dsl.rb
123
+ - lib/cloud_sesame/query/dsl/and.rb
124
+ - lib/cloud_sesame/query/dsl/base.rb
125
+ - lib/cloud_sesame/query/dsl/filter_query.rb
126
+ - lib/cloud_sesame/query/dsl/literal.rb
127
+ - lib/cloud_sesame/query/dsl/or.rb
128
+ - lib/cloud_sesame/query/dsl/range.rb
129
+ - lib/cloud_sesame/query/dsl/scope.rb
130
+ - lib/cloud_sesame/query/error/missing_operator_symbol.rb
131
+ - lib/cloud_sesame/query/error/missing_query.rb
132
+ - lib/cloud_sesame/query/node/abstract.rb
133
+ - lib/cloud_sesame/query/node/facet.rb
134
+ - lib/cloud_sesame/query/node/filter_query.rb
135
+ - lib/cloud_sesame/query/node/page.rb
136
+ - lib/cloud_sesame/query/node/query.rb
137
+ - lib/cloud_sesame/query/node/query_options.rb
138
+ - lib/cloud_sesame/query/node/query_options_field.rb
139
+ - lib/cloud_sesame/query/node/query_parser.rb
140
+ - lib/cloud_sesame/query/node/request.rb
141
+ - lib/cloud_sesame/query/node/sort.rb
142
+ - spec/abstract_object_spec.rb
143
+ - spec/cloud_sesame/domain/base_spec.rb
144
+ - spec/cloud_sesame/domain/context_spec.rb
145
+ - spec/cloud_sesame/query/ast/and_spec.rb
146
+ - spec/cloud_sesame/query/ast/literal_spec.rb
147
+ - spec/cloud_sesame/query/ast/multi_branch_spec.rb
148
+ - spec/cloud_sesame/query/ast/operator_spec.rb
149
+ - spec/cloud_sesame/query/ast/or_spec.rb
150
+ - spec/cloud_sesame/query/ast/root_spec.rb
151
+ - spec/cloud_sesame/query/ast/value_spec.rb
152
+ - spec/cloud_sesame/query/builder_spec.rb
153
+ - spec/cloud_sesame/query/dsl/base_spec.rb
154
+ - spec/cloud_sesame/query/dsl/filter_query_spec.rb
155
+ - spec/cloud_sesame/query/dsl_spec.rb
156
+ - spec/cloud_sesame/query/node/abstract_spec.rb
157
+ - spec/cloud_sesame/query/node/facet_spec.rb
158
+ - spec/cloud_sesame/query/node/filter_query_spec.rb
159
+ - spec/cloud_sesame/query/node/page_spec.rb
160
+ - spec/cloud_sesame/query/node/query_options_field_spec.rb
161
+ - spec/cloud_sesame/query/node/query_options_spec.rb
162
+ - spec/cloud_sesame/query/node/query_parser_spec.rb
163
+ - spec/cloud_sesame/query/node/query_spec.rb
164
+ - spec/cloud_sesame/query/node/request_spec.rb
165
+ - spec/cloud_sesame/query/node/sort_spec.rb
166
+ - spec/cloud_sesame_spec.rb
167
+ - spec/spec_helper.rb
168
+ homepage: https://github.com/47colborne/cloud_sesame
169
+ licenses:
170
+ - MIT
171
+ metadata: {}
172
+ post_install_message:
173
+ rdoc_options: []
174
+ require_paths:
175
+ - lib
176
+ required_ruby_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ required_rubygems_version: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ requirements: []
187
+ rubyforge_project:
188
+ rubygems_version: 2.4.8
189
+ signing_key:
190
+ specification_version: 4
191
+ summary: AWS CloudSearch Query Interface
192
+ test_files:
193
+ - spec/abstract_object_spec.rb
194
+ - spec/cloud_sesame/domain/base_spec.rb
195
+ - spec/cloud_sesame/domain/context_spec.rb
196
+ - spec/cloud_sesame/query/ast/and_spec.rb
197
+ - spec/cloud_sesame/query/ast/literal_spec.rb
198
+ - spec/cloud_sesame/query/ast/multi_branch_spec.rb
199
+ - spec/cloud_sesame/query/ast/operator_spec.rb
200
+ - spec/cloud_sesame/query/ast/or_spec.rb
201
+ - spec/cloud_sesame/query/ast/root_spec.rb
202
+ - spec/cloud_sesame/query/ast/value_spec.rb
203
+ - spec/cloud_sesame/query/builder_spec.rb
204
+ - spec/cloud_sesame/query/dsl/base_spec.rb
205
+ - spec/cloud_sesame/query/dsl/filter_query_spec.rb
206
+ - spec/cloud_sesame/query/dsl_spec.rb
207
+ - spec/cloud_sesame/query/node/abstract_spec.rb
208
+ - spec/cloud_sesame/query/node/facet_spec.rb
209
+ - spec/cloud_sesame/query/node/filter_query_spec.rb
210
+ - spec/cloud_sesame/query/node/page_spec.rb
211
+ - spec/cloud_sesame/query/node/query_options_field_spec.rb
212
+ - spec/cloud_sesame/query/node/query_options_spec.rb
213
+ - spec/cloud_sesame/query/node/query_parser_spec.rb
214
+ - spec/cloud_sesame/query/node/query_spec.rb
215
+ - spec/cloud_sesame/query/node/request_spec.rb
216
+ - spec/cloud_sesame/query/node/sort_spec.rb
217
+ - spec/cloud_sesame_spec.rb
218
+ - spec/spec_helper.rb