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.
- checksums.yaml +7 -0
- data/.gitignore +4 -0
- data/.rspec +2 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +76 -0
- data/Guardfile +70 -0
- data/cloud_sesame.gemspec +25 -0
- data/lib/abstract_object.rb +67 -0
- data/lib/cloud_sesame.rb +77 -0
- data/lib/cloud_sesame/config/credential.rb +8 -0
- data/lib/cloud_sesame/domain/base.rb +70 -0
- data/lib/cloud_sesame/domain/client.rb +28 -0
- data/lib/cloud_sesame/domain/config.rb +8 -0
- data/lib/cloud_sesame/domain/context.rb +35 -0
- data/lib/cloud_sesame/query/ast/and.rb +9 -0
- data/lib/cloud_sesame/query/ast/compound_array.rb +73 -0
- data/lib/cloud_sesame/query/ast/leaf.rb +8 -0
- data/lib/cloud_sesame/query/ast/literal.rb +27 -0
- data/lib/cloud_sesame/query/ast/multi_branch.rb +27 -0
- data/lib/cloud_sesame/query/ast/not.rb +13 -0
- data/lib/cloud_sesame/query/ast/operator.rb +24 -0
- data/lib/cloud_sesame/query/ast/or.rb +9 -0
- data/lib/cloud_sesame/query/ast/prefix_literal.rb +17 -0
- data/lib/cloud_sesame/query/ast/root.rb +24 -0
- data/lib/cloud_sesame/query/ast/single_branch.rb +24 -0
- data/lib/cloud_sesame/query/ast/value.rb +38 -0
- data/lib/cloud_sesame/query/builder.rb +78 -0
- data/lib/cloud_sesame/query/dsl.rb +62 -0
- data/lib/cloud_sesame/query/dsl/and.rb +19 -0
- data/lib/cloud_sesame/query/dsl/base.rb +23 -0
- data/lib/cloud_sesame/query/dsl/filter_query.rb +47 -0
- data/lib/cloud_sesame/query/dsl/literal.rb +41 -0
- data/lib/cloud_sesame/query/dsl/or.rb +19 -0
- data/lib/cloud_sesame/query/dsl/range.rb +41 -0
- data/lib/cloud_sesame/query/dsl/scope.rb +24 -0
- data/lib/cloud_sesame/query/error/missing_operator_symbol.rb +8 -0
- data/lib/cloud_sesame/query/error/missing_query.rb +8 -0
- data/lib/cloud_sesame/query/node/abstract.rb +14 -0
- data/lib/cloud_sesame/query/node/facet.rb +14 -0
- data/lib/cloud_sesame/query/node/filter_query.rb +17 -0
- data/lib/cloud_sesame/query/node/page.rb +27 -0
- data/lib/cloud_sesame/query/node/query.rb +29 -0
- data/lib/cloud_sesame/query/node/query_options.rb +37 -0
- data/lib/cloud_sesame/query/node/query_options_field.rb +20 -0
- data/lib/cloud_sesame/query/node/query_parser.rb +27 -0
- data/lib/cloud_sesame/query/node/request.rb +71 -0
- data/lib/cloud_sesame/query/node/sort.rb +37 -0
- data/spec/abstract_object_spec.rb +103 -0
- data/spec/cloud_sesame/domain/base_spec.rb +27 -0
- data/spec/cloud_sesame/domain/context_spec.rb +24 -0
- data/spec/cloud_sesame/query/ast/and_spec.rb +13 -0
- data/spec/cloud_sesame/query/ast/literal_spec.rb +37 -0
- data/spec/cloud_sesame/query/ast/multi_branch_spec.rb +65 -0
- data/spec/cloud_sesame/query/ast/operator_spec.rb +30 -0
- data/spec/cloud_sesame/query/ast/or_spec.rb +13 -0
- data/spec/cloud_sesame/query/ast/root_spec.rb +43 -0
- data/spec/cloud_sesame/query/ast/value_spec.rb +40 -0
- data/spec/cloud_sesame/query/builder_spec.rb +12 -0
- data/spec/cloud_sesame/query/dsl/base_spec.rb +31 -0
- data/spec/cloud_sesame/query/dsl/filter_query_spec.rb +158 -0
- data/spec/cloud_sesame/query/dsl_spec.rb +96 -0
- data/spec/cloud_sesame/query/node/abstract_spec.rb +19 -0
- data/spec/cloud_sesame/query/node/facet_spec.rb +42 -0
- data/spec/cloud_sesame/query/node/filter_query_spec.rb +29 -0
- data/spec/cloud_sesame/query/node/page_spec.rb +58 -0
- data/spec/cloud_sesame/query/node/query_options_field_spec.rb +27 -0
- data/spec/cloud_sesame/query/node/query_options_spec.rb +56 -0
- data/spec/cloud_sesame/query/node/query_parser_spec.rb +37 -0
- data/spec/cloud_sesame/query/node/query_spec.rb +46 -0
- data/spec/cloud_sesame/query/node/request_spec.rb +71 -0
- data/spec/cloud_sesame/query/node/sort_spec.rb +76 -0
- data/spec/cloud_sesame_spec.rb +58 -0
- data/spec/spec_helper.rb +12 -0
- 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
|
data/spec/spec_helper.rb
ADDED
@@ -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
|