CloudSesame 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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