CloudSesame 0.6.4 → 0.6.5

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -3
  3. data/.rubocop.yml +1158 -0
  4. data/.travis.yml +11 -0
  5. data/Gemfile.lock +28 -1
  6. data/Guardfile +6 -1
  7. data/README.md +6 -1
  8. data/cloud_sesame.gemspec +4 -2
  9. data/coverage/.last_run.json +5 -0
  10. data/coverage/.resultset.json +2423 -0
  11. data/coverage/.resultset.json.lock +0 -0
  12. data/lib/cloud_sesame.rb +4 -5
  13. data/lib/cloud_sesame/domain/base.rb +46 -33
  14. data/lib/cloud_sesame/domain/client_module/caching/base.rb +1 -1
  15. data/lib/cloud_sesame/query/ast/near.rb +1 -1
  16. data/lib/cloud_sesame/query/ast/operator.rb +1 -1
  17. data/lib/cloud_sesame/query/ast/range_value.rb +23 -30
  18. data/lib/cloud_sesame/query/ast/single_expression_operator.rb +1 -1
  19. data/lib/cloud_sesame/query/ast/value.rb +18 -4
  20. data/lib/cloud_sesame/query/domain/block.rb +2 -2
  21. data/lib/cloud_sesame/query/domain/literal.rb +1 -1
  22. data/lib/cloud_sesame/query/dsl/applied_filter_query.rb +21 -23
  23. data/lib/cloud_sesame/query/dsl/field_accessors.rb +8 -3
  24. data/lib/cloud_sesame/query/dsl/response_methods.rb +2 -2
  25. data/lib/cloud_sesame/query/dsl/scope_accessors.rb +1 -1
  26. data/lib/cloud_sesame/query/node/fuzziness.rb +11 -13
  27. data/lib/cloud_sesame/query/node/query.rb +9 -10
  28. data/lib/cloud_sesame/query/node/request.rb +2 -2
  29. data/lib/cloud_sesame/query/node/sloppiness.rb +23 -0
  30. data/spec/cloud_sesame/config/credential_spec.rb +76 -0
  31. data/spec/cloud_sesame/domain/base_spec.rb +274 -9
  32. data/spec/cloud_sesame/domain/client_spec.rb +0 -1
  33. data/spec/cloud_sesame/query/domain/block_spec.rb +0 -1
  34. data/spec/cloud_sesame/query/node/query_spec.rb +18 -7
  35. data/spec/cloud_sesame_spec.rb +10 -10
  36. data/spec/spec_helper.rb +3 -0
  37. metadata +38 -3
  38. data/lib/cloud_sesame/domain/context.rb +0 -39
@@ -19,7 +19,6 @@ module CloudSesame
19
19
  context 'when calling it first time' do
20
20
  before { Client.instance_variable_set(:@global_config, nil) }
21
21
  it 'should initialize an config object on first call' do
22
- config = Config.new
23
22
  expect(Config).to receive(:new)
24
23
  Client.global_config
25
24
  end
@@ -16,7 +16,6 @@ module CloudSesame
16
16
 
17
17
  subject { Block.new(Caller.new, {}) }
18
18
 
19
- # expect modules to be included
20
19
  [
21
20
  DSL::BlockStyledOperators,
22
21
  DSL::FieldAccessors,
@@ -33,16 +33,27 @@ module CloudSesame
33
33
  end
34
34
 
35
35
  describe '#compile' do
36
- it 'should parse with fuzziness if fuzziness is defined' do
37
- fuzziness = Fuzziness.new
38
- node = Query.new(fuzziness: fuzziness)
39
- node.query = ["term1", "term2", "term3", "-term4"].join(' ')
40
- expect(fuzziness).to receive(:parse).with(node.query)
41
- node.compile
36
+ context 'when fuzziness is defined' do
37
+ it 'should parse with fuzziness' do
38
+ fuzziness = Fuzziness.new
39
+ node = Query.new(fuzziness: fuzziness)
40
+ node.query = ["term1", "someterm2", "verylongterm3", "-excluded_term4"].join(' ')
41
+ expect(fuzziness).to receive(:compile).with(node.query).and_call_original
42
+ expect(node.compile).to eq(query: "(term1 someterm2 verylongterm3 -excluded_term4)|(term1+someterm2~2+verylongterm3~2+-excluded_term4)")
43
+ end
44
+ end
45
+ context 'when sloppiness is defined' do
46
+ it 'should parse with sloppiness' do
47
+ sloppiness = Sloppiness.new(4)
48
+ node = Query.new(sloppiness: sloppiness)
49
+ node.query = ["term1", "term2", "term3", "-term4"].join(' ')
50
+ expect(sloppiness).to receive(:compile).with(node.query).and_call_original
51
+ expect(node.compile).to eq(query: "(term1 term2 term3 -term4)|\"term1 term2 term3 -term4\"~4")
52
+ end
42
53
  end
43
54
  it 'should return a serialized hash contains query string' do
44
55
  node.query = ["term1", "term2", "term3", "-term4"].join(' ')
45
- expect(node.compile).to eq({ query: "term1 term2 term3 -term4" })
56
+ expect(node.compile).to eq({ query: "(term1 term2 term3 -term4)" })
46
57
  end
47
58
  end
48
59
 
@@ -110,12 +110,12 @@
110
110
 
111
111
  # end
112
112
 
113
- # @tags = [1, 2]
114
- # n = 10_000
115
- # q = nil
116
- # result = RubyProf.profile do
117
- # n.times do
118
- # q = Product.cloudsearch.query("black jacket").sort(price: :asc).page(1).size(1000)
113
+ # # @tags = [1, 2]
114
+ # # n = 10_000
115
+ # # q = nil
116
+ # # result = RubyProf.profile do
117
+ # # n.times do
118
+ # q = Product.cloudsearch.query("black jacket").sort(price: :asc).page(1).size(1000)
119
119
  # .price { gt 100 }
120
120
  # .and {
121
121
  # or! {
@@ -147,10 +147,10 @@
147
147
  # }
148
148
  # }
149
149
 
150
- # end
151
- # end
152
- # printer = RubyProf::FlatPrinter.new(result)
153
- # printer.print(STDOUT, {})
150
+ # # end
151
+ # # end
152
+ # # printer = RubyProf::FlatPrinter.new(result)
153
+ # # printer.print(STDOUT, {})
154
154
 
155
155
  # binding.pry
156
156
 
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require "codeclimate-test-reporter"
2
+ CodeClimate::TestReporter.start
3
+
1
4
  require 'rubygems'
2
5
  require 'bundler/setup'
3
6
  Bundler.setup
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: CloudSesame
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chu
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2016-02-14 00:00:00.000000000 Z
19
+ date: 2016-02-16 00:00:00.000000000 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: aws-sdk
@@ -102,6 +102,34 @@ dependencies:
102
102
  - - ">="
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
+ - !ruby/object:Gem::Dependency
106
+ name: guard-rubocop
107
+ requirement: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ - !ruby/object:Gem::Dependency
120
+ name: codeclimate-test-reporter
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
105
133
  description: AWS CloudSearch Query DSL
106
134
  email: dev@retailcommon.com
107
135
  executables: []
@@ -110,11 +138,16 @@ extra_rdoc_files: []
110
138
  files:
111
139
  - ".gitignore"
112
140
  - ".rspec"
141
+ - ".rubocop.yml"
142
+ - ".travis.yml"
113
143
  - Gemfile
114
144
  - Gemfile.lock
115
145
  - Guardfile
116
146
  - README.md
117
147
  - cloud_sesame.gemspec
148
+ - coverage/.last_run.json
149
+ - coverage/.resultset.json
150
+ - coverage/.resultset.json.lock
118
151
  - lib/abstract_object.rb
119
152
  - lib/active_support/core_ext/object/deep_dup.rb
120
153
  - lib/active_support/core_ext/object/duplicable.rb
@@ -129,7 +162,6 @@ files:
129
162
  - lib/cloud_sesame/domain/client_module/caching/rails_cache.rb
130
163
  - lib/cloud_sesame/domain/client_module/retry.rb
131
164
  - lib/cloud_sesame/domain/config.rb
132
- - lib/cloud_sesame/domain/context.rb
133
165
  - lib/cloud_sesame/domain/error/caching.rb
134
166
  - lib/cloud_sesame/query/ast/and.rb
135
167
  - lib/cloud_sesame/query/ast/date_value.rb
@@ -180,10 +212,12 @@ files:
180
212
  - lib/cloud_sesame/query/node/query_parser.rb
181
213
  - lib/cloud_sesame/query/node/request.rb
182
214
  - lib/cloud_sesame/query/node/return.rb
215
+ - lib/cloud_sesame/query/node/sloppiness.rb
183
216
  - lib/cloud_sesame/query/node/sort.rb
184
217
  - lib/cloud_sesame/query/scope.rb
185
218
  - profiler.rb
186
219
  - spec/abstract_object_spec.rb
220
+ - spec/cloud_sesame/config/credential_spec.rb
187
221
  - spec/cloud_sesame/domain/base_spec.rb
188
222
  - spec/cloud_sesame/domain/client_module/caching/base_spec.rb
189
223
  - spec/cloud_sesame/domain/client_module/caching/no_cache_spec.rb
@@ -241,6 +275,7 @@ specification_version: 4
241
275
  summary: AWS CloudSearch Query DSL
242
276
  test_files:
243
277
  - spec/abstract_object_spec.rb
278
+ - spec/cloud_sesame/config/credential_spec.rb
244
279
  - spec/cloud_sesame/domain/base_spec.rb
245
280
  - spec/cloud_sesame/domain/client_module/caching/base_spec.rb
246
281
  - spec/cloud_sesame/domain/client_module/caching/no_cache_spec.rb
@@ -1,39 +0,0 @@
1
- # module CloudSesame
2
- # module Domain
3
- # class Context
4
-
5
- # attr_reader :table
6
-
7
- # def initialize(table = {})
8
- # @table = table
9
- # end
10
-
11
- # def [](key, find_or_create = false)
12
- # table[key] ||= default_value(find_or_create)
13
- # end
14
-
15
- # def []=(key, value)
16
- # table[key] = value
17
- # end
18
-
19
- # def delete(key)
20
- # table.delete key
21
- # end
22
-
23
- # def each(&block)
24
- # table.each &block
25
- # end
26
-
27
- # def map(&block)
28
- # table.map &block
29
- # end
30
-
31
- # private
32
-
33
- # def default_value(data)
34
- # data != true ? data : Context.new if data
35
- # end
36
-
37
- # end
38
- # end
39
- # end