CloudSesame 0.5.2 → 0.5.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed1b3fced629d393e5f1e9c9b2a924bbeb662e66
4
- data.tar.gz: e3aedff987658901401a153836cf82a0b9fd70f7
3
+ metadata.gz: 572a899b37bb0c8cc0699855cb410739cba4f14c
4
+ data.tar.gz: e62e85516ba236f8a6eb92ecb9c6cb22740c6f84
5
5
  SHA512:
6
- metadata.gz: d22b450a96a80f452efa6be26ad4f2c50e8599d41345b6224a9040bca11ad22841b5468ce0ee1aad0f1d9ba0eb2f3d8881ea91dd65e595762f690e86a8e184df
7
- data.tar.gz: f3a5e062fc035ce9a4c2d3628a1505c997c5782f8142f18ba79439f0eaae84dfed161e40d0c5960c0b0c19a89ded7c19dfc9c9a281a6350209652c8ed10bcc1c
6
+ metadata.gz: f68c0644208590a0589c047110b0d0ef5b8d733fd81bc183c26350cd14f747ad2ecdca3aebe6824797c1ca639e3a43ff92174a0750d6b446c566495892b1c61c
7
+ data.tar.gz: f22e6a1e9290d24bf62a42613fe731232cf6e0fbaeea1363a421abe08e789cb0891d80f8b0b2e8543de17626213cc536652242039e392533b76c2137d51b6cad
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- CloudSesame (0.5.2)
4
+ CloudSesame (0.5.3)
5
5
  aws-sdk (~> 2)
6
6
 
7
7
  GEM
@@ -76,6 +76,3 @@ DEPENDENCIES
76
76
  pry (~> 0)
77
77
  rspec (~> 3)
78
78
  ruby-prof
79
-
80
- BUNDLED WITH
81
- 1.11.2
data/cloud_sesame.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'CloudSesame'
3
- s.version = '0.5.2'
4
- s.date = '2016-02-08'
3
+ s.version = '0.5.3'
4
+ s.date = '2016-02-09'
5
5
  s.summary = "AWS CloudSearch Query DSL"
6
6
  s.description = "AWS CloudSearch Query DSL"
7
7
  s.authors = ['Scott Chu', 'Emily Fan', 'Greg Ward', 'David McHoull',
@@ -4,9 +4,13 @@ module CloudSesame
4
4
  class NumericValue < Value
5
5
 
6
6
  def compile
7
- data
7
+ data.to_s
8
8
  end
9
9
 
10
+ def ==(value)
11
+ value.to_f == data.to_f || value == compile
12
+ end
13
+
10
14
  end
11
15
  end
12
16
  end
@@ -9,7 +9,10 @@ module CloudSesame
9
9
  @data = if value.kind_of?(Range)
10
10
  range_to_array(value)
11
11
  elsif value.is_a?(String) && (match = string_format?(value))
12
- @data = match.captures
12
+ (matches = match.captures)[1, 2] = matches[1, 2].map do |i|
13
+ Value.parse(i) unless i.nil? || i.empty?
14
+ end
15
+ @data = matches
13
16
  else
14
17
  default_range
15
18
  end
@@ -40,6 +43,7 @@ module CloudSesame
40
43
  end
41
44
 
42
45
  def ==(object)
46
+ binding.pry
43
47
  data == Value.parse(object).data
44
48
  end
45
49
 
@@ -0,0 +1,61 @@
1
+ module CloudSesame
2
+ module Query
3
+ module AST
4
+ describe NumericValue do
5
+
6
+ describe 'compile' do
7
+ let(:value) { 20 }
8
+ subject { NumericValue.new(value) }
9
+ it 'should return the data in string format' do
10
+ expect(subject.compile).to eq "#{ value }"
11
+ end
12
+ end
13
+
14
+ describe '==' do
15
+
16
+ context 'when value comparing with is a integer' do
17
+ subject { NumericValue.new(20) }
18
+
19
+ it 'should return true if data equals to the value' do
20
+ expect(subject == 20).to eq true
21
+ end
22
+
23
+ it 'should return false when data does not equal to the value' do
24
+ expect(subject == 21).to eq false
25
+ end
26
+
27
+ end
28
+
29
+ context 'when value comparing with is a float' do
30
+ subject { NumericValue.new(0.99) }
31
+
32
+ it 'should return true if data equals to the value' do
33
+ expect(subject == 0.990).to eq true
34
+ end
35
+
36
+ it 'should return false when data does not equal to the value' do
37
+ expect(subject == 1.0).to eq false
38
+ end
39
+
40
+ end
41
+
42
+ context 'when value comparing with is a string' do
43
+ subject { NumericValue.new("0.99") }
44
+
45
+ it 'should return true if data equals to the value' do
46
+ expect(subject == 0.990).to eq true
47
+ expect(subject == "0.990").to eq true
48
+ end
49
+
50
+ it 'should return false when data does not equal to the value' do
51
+ expect(subject == 1.0).to eq false
52
+ expect(subject == "1.0").to eq false
53
+ end
54
+ end
55
+
56
+ end
57
+
58
+ end
59
+ end
60
+ end
61
+ end
@@ -46,7 +46,7 @@
46
46
 
47
47
  # field :searchable_text, query: { weight: 2 }
48
48
  # field :description, query: true
49
- # field :tags, as: :text1
49
+ # field :tags , as: :text1, default: -> { "men" }
50
50
 
51
51
  # field :affiliate_advertiser_ext_id, facet: { size: 50 }
52
52
  # field :currency, facet: true
@@ -54,66 +54,94 @@
54
54
  # field :manufacturer_name, facet: { size: 50 }
55
55
  # field :price, facet: { buckets: %w([0,25] [25,50] [50,100] [100,200] [200,}), method: 'interval' }
56
56
  # field :category_string, facet: { sort: 'bucket', size: 10_000 }
57
- # field :created_at, default: -> { gt Date.today }
58
-
59
- # scope :shoes_by_brand, ->(brand = nil) { query("shoes").and { manufacturer_name brand } if brand }
60
- # scope :and_mens do
61
- # and! { tags "men"}
62
- # end
57
+ # field :created_at, default: -> { Time.now }
63
58
 
64
59
  # end
65
60
 
66
61
  # end
67
62
 
68
63
 
69
- # @tags = [1, 2]
70
- # n = 10_000
71
- # q = nil
72
- # result = RubyProf.profile do
73
- # n.times do
74
- # q = Product.cloudsearch.query("black jacket").sort(price: :asc).page(1).size(1000)
75
- # .price { gt 100 }
76
- # .and {
77
- # or! {
78
- # tags *@tags
79
- # tags
80
- # tags nil
81
- # and! {
82
- # tags.not "3", "4"
83
- # }
84
- # and!.not {
85
- # tags.start_with "5", "6"
86
- # tags.not.start_with("7")
87
- # tags.not.near("8", distance: 7)
88
- # tags start_with("9"), near("10")
89
- # tags term("11", boost: 2)
90
- # tags.not phrase "12"
91
- # }
92
- # or!.not {
93
- # price(25..100)
94
- # price 100...200
95
- # price gte(200).lt(300)
96
- # price gte(300)
97
- # }
98
- # or! {
99
- # created_at Date.today - 7
100
- # created_at gte(Date.today)
101
- # created_at gte(Date.today).lt(Date.today + 3)
102
- # }
103
- # }
104
- # }
105
- # q.applied_filters
106
-
107
- # end
108
- # end
109
- # printer = RubyProf::FlatPrinter.new(result)
110
- # printer.print(STDOUT, {})
64
+ # # @tags = [1, 2]
65
+ # # n = 10_000
66
+ # # q = nil
67
+ # # result = RubyProf.profile do
68
+ # # n.times do
69
+ # # q = Product.cloudsearch.query("black jacket").sort(price: :asc).page(1).size(1000)
70
+ # # .price { gt 100 }
71
+ # # .and {
72
+ # # or! {
73
+ # # tags *@tags
74
+ # # tags
75
+ # # tags nil
76
+ # # and! {
77
+ # # tags.not "3", "4"
78
+ # # }
79
+ # # and!.not {
80
+ # # tags.start_with "5", "6"
81
+ # # tags.not.start_with("7")
82
+ # # tags.not.near("8", distance: 7)
83
+ # # tags start_with("9"), near("10")
84
+ # # tags term("11", boost: 2)
85
+ # # tags.not phrase "12"
86
+ # # }
87
+ # # or!.not {
88
+ # # price(25..100)
89
+ # # price 100...200
90
+ # # price gte(200).lt(300)
91
+ # # price gte(300)
92
+ # # }
93
+ # # or! {
94
+ # # created_at Date.today - 7
95
+ # # created_at gte(Date.today)
96
+ # # created_at gte(Date.today).lt(Date.today + 3)
97
+ # # }
98
+ # # }
99
+ # # }
100
+ # # q.applied_filters
101
+
102
+ # # end
103
+ # # end
104
+ # # printer = RubyProf::FlatPrinter.new(result)
105
+ # # printer.print(STDOUT, {})
106
+
107
+ # class Coupon
108
+ # include CloudSesame
109
+
110
+ # VALID_COUPON_RANK = 20
111
+
112
+ # define_cloudsearch do
113
+ # config.endpoint = ENV['AWS_ENDPOINT']
114
+ # config.region = ENV['AWS_REGION']
115
+
116
+ # default_size 10
117
+
118
+ # define_sloppiness 3
119
+
120
+ # define_fuzziness do
121
+ # max_fuzziness 3
122
+ # min_char_size 6
123
+ # fuzzy_percent 0.17
124
+ # end
125
+
126
+ # field :end_date, as: :date1
127
+ # field :rank, as: :num1, default: -> { gte VALID_COUPON_RANK }
128
+ # field :searchable_text, query: true
129
+ # field :affiliate_advertiser_search_ext_id, as: :string1, facet: { size: 50 }
130
+ # field :countries, as: :string_array1
131
+ # field :deal_types, as: :string_array2, facet: {}
132
+ # field :tags, as: :string_array3, facet: {}
133
+ # field :type, default: -> { 'Catalog::CouponSearchable' }
134
+ # end
135
+
136
+ # end
137
+
138
+ # q = Coupon.cloudsearch.builder
111
139
 
112
140
  # binding.pry
113
141
 
114
142
  # # class ProductController
115
143
 
116
- # # def load_user
144
+ # # def load_userq
117
145
  # # @name = "scott"
118
146
  # # end
119
147
 
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.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chu
@@ -15,90 +15,90 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2016-02-08 00:00:00.000000000 Z
18
+ date: 2016-02-09 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: aws-sdk
22
22
  requirement: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2'
27
27
  type: :runtime
28
28
  prerelease: false
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '2'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rspec
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3'
41
41
  type: :development
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: pry
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: guard
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  type: :development
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: guard-rspec
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: ruby-prof
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  type: :development
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  description: AWS CloudSearch Query DSL
@@ -107,8 +107,8 @@ executables: []
107
107
  extensions: []
108
108
  extra_rdoc_files: []
109
109
  files:
110
- - ".gitignore"
111
- - ".rspec"
110
+ - .gitignore
111
+ - .rspec
112
112
  - Gemfile
113
113
  - Gemfile.lock
114
114
  - Guardfile
@@ -180,6 +180,7 @@ files:
180
180
  - spec/cloud_sesame/domain/base_spec.rb
181
181
  - spec/cloud_sesame/query/ast/and_spec.rb
182
182
  - spec/cloud_sesame/query/ast/multi_expression_operator_spec.rb
183
+ - spec/cloud_sesame/query/ast/numeric_value_spec.rb
183
184
  - spec/cloud_sesame/query/ast/operator_spec.rb
184
185
  - spec/cloud_sesame/query/ast/or_spec.rb
185
186
  - spec/cloud_sesame/query/ast/root_spec.rb
@@ -212,17 +213,17 @@ require_paths:
212
213
  - lib
213
214
  required_ruby_version: !ruby/object:Gem::Requirement
214
215
  requirements:
215
- - - ">="
216
+ - - '>='
216
217
  - !ruby/object:Gem::Version
217
218
  version: '0'
218
219
  required_rubygems_version: !ruby/object:Gem::Requirement
219
220
  requirements:
220
- - - ">="
221
+ - - '>='
221
222
  - !ruby/object:Gem::Version
222
223
  version: '0'
223
224
  requirements: []
224
225
  rubyforge_project:
225
- rubygems_version: 2.5.1
226
+ rubygems_version: 2.4.8
226
227
  signing_key:
227
228
  specification_version: 4
228
229
  summary: AWS CloudSearch Query DSL
@@ -231,6 +232,7 @@ test_files:
231
232
  - spec/cloud_sesame/domain/base_spec.rb
232
233
  - spec/cloud_sesame/query/ast/and_spec.rb
233
234
  - spec/cloud_sesame/query/ast/multi_expression_operator_spec.rb
235
+ - spec/cloud_sesame/query/ast/numeric_value_spec.rb
234
236
  - spec/cloud_sesame/query/ast/operator_spec.rb
235
237
  - spec/cloud_sesame/query/ast/or_spec.rb
236
238
  - spec/cloud_sesame/query/ast/root_spec.rb