CloudSesame 0.2.0 → 0.2.1

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: 335fe9bf3866f40f945537d47a8e70ad3f23e083
4
- data.tar.gz: 69a8cb804d0b705e7981a1fd798557f3fa4c622c
3
+ metadata.gz: b03fae31220d970463fd33113b6a59c9ab0e7954
4
+ data.tar.gz: 91253e2158baac1a5927f9391c10af5dd2ce3184
5
5
  SHA512:
6
- metadata.gz: d3fa0153147426b81b495bec9e07b903f397e6fbb03f4bf66fd9e18e3b23654603abd7eaf1dcfcefb196259bd8886695775896af02b3f0198dea2d71ac8d9d01
7
- data.tar.gz: aff567e8ba321f8928ad36e1ef8447668a4b467eff93d9c8c0c0f1fb29b71d477f7514620c0aee85b10471ed399957c7e2f4929cde9c0a345bb55bdd8c321e39
6
+ metadata.gz: 8167fb00a861a2d9a9fd9796aae670e43dc17d1ec88d895a137935336b32f921d16e3155b44a2d940caa3b723af40d627ac14a797ca125986d3e9287482dd2a4
7
+ data.tar.gz: 6eb69016ada8ff183a69219284d7ea9408b648182c4b6b15bc00450b09b7a25b591273dec100530d22fa0e0885bd56e0cd862f8f6cc9d0c9f3f089cd70a5e634
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- CloudSesame (0.2.0)
4
+ CloudSesame (0.2.1)
5
5
  aws-sdk (~> 2)
6
6
 
7
7
  GEM
data/cloud_sesame.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'CloudSesame'
3
- s.version = '0.2.0'
3
+ s.version = '0.2.1'
4
4
  s.date = '2016-01-14'
5
5
  s.summary = "AWS CloudSearch Query Interface"
6
6
  s.description = "AWS CloudSearch Query Interface"
@@ -2,12 +2,15 @@ module CloudSesame
2
2
  module Query
3
3
  module Node
4
4
  class Facet < Abstract
5
+
5
6
  def facet
6
7
  @facet ||= context.table
7
8
  end
9
+
8
10
  def compile
9
11
  { facet: JSON.dump(facet) } unless facet.empty?
10
12
  end
13
+
11
14
  end
12
15
  end
13
16
  end
@@ -47,6 +47,7 @@ module CloudSesame
47
47
  query_options,
48
48
  query_parser,
49
49
  filter_query,
50
+ facet,
50
51
  page,
51
52
  sort,
52
53
  return_field
@@ -2,85 +2,85 @@ require 'spec_helper'
2
2
 
3
3
  describe CloudSesame do
4
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
- require 'cloud_sesame'
13
-
14
- CloudSesame::Domain::Client.configure do |config|
15
- config.access_key = ENV['AWS_ACCESS_KEY_ID']
16
- config.secret_key = ENV['AWS_SECRET_ACCESS_KEY']
17
- end
18
-
19
- # Usage Example
20
- class Product
21
- include CloudSesame
22
-
23
- define_cloudsearch do
24
- # Product CloudSesame Config
25
- config.endpoint = ENV['AWS_ENDPOINT']
26
- config.region = ENV['AWS_REGION']
27
-
28
- default_size 100
29
-
30
- define_sloppiness 3
31
-
32
- define_fuzziness do
33
- max_fuzziness 3
34
- min_char_size 6
35
- fuzzy_percent 0.17
36
- end
37
-
38
- field :searchable_text, query: { weight: 2 }
39
- field :description, query: true
40
- field :tags
41
-
42
- field :affiliate_advertiser_ext_id, facet: { size: 50 }
43
- field :currency, facet: true
44
- field :discount_percentage, facet: { buckets: %w([10,100] [25,100] [50,100] [70,100]), method: 'interval' }
45
- field :manufacturer_name, facet: { size: 50 }
46
- field :price, facet: { buckets: %w([0,25] [25,50] [50,100] [100,200] [200,}), method: 'interval' }
47
- field :category_string, facet: { sort: 'bucket', size: 10_000 }
48
- field :created_at
49
-
50
- scope :men_tag, ->(date) { created_at date }
51
- scope :and_mens do
52
- and! { tags "men"}
53
- end
54
-
55
- end
56
-
57
- end
58
-
59
- class NewProduct < Product
60
- load_definition_from Product
61
-
62
- define_cloudsearch do
63
- field :searchable_text, query: { weight: 4 }
64
- field :name, as: :text1
65
- end
66
- end
67
-
68
- # Example Query
69
- query = Product.cloudsearch.query("children panasonic")
70
- .and {
71
- or!(boost: 2) {
72
- # tags.not start_with "flash_deal"
73
- tags.not.start_with "flash_deal"
74
- # tags.near"sales"
75
- # tags start_with("flash_deal"), near("sales")
76
- }
77
- or!.not {
78
- currency "CAD", "EUR"
79
- }
80
- and! {
81
- price r.gte(100).lt(200)
82
- }
83
- }.created_at(Date.today).description("wasup")
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
+ # require 'cloud_sesame'
13
+
14
+ # CloudSesame::Domain::Client.configure do |config|
15
+ # config.access_key = ENV['AWS_ACCESS_KEY_ID']
16
+ # config.secret_key = ENV['AWS_SECRET_ACCESS_KEY']
17
+ # end
18
+
19
+ # # Usage Example
20
+ # class Product
21
+ # include CloudSesame
22
+
23
+ # define_cloudsearch do
24
+ # # Product CloudSesame Config
25
+ # config.endpoint = ENV['AWS_ENDPOINT']
26
+ # config.region = ENV['AWS_REGION']
27
+
28
+ # default_size 100
29
+
30
+ # define_sloppiness 3
31
+
32
+ # define_fuzziness do
33
+ # max_fuzziness 3
34
+ # min_char_size 6
35
+ # fuzzy_percent 0.17
36
+ # end
37
+
38
+ # field :searchable_text, query: { weight: 2 }
39
+ # field :description, query: true
40
+ # field :tags
41
+
42
+ # field :affiliate_advertiser_ext_id, facet: { size: 50 }
43
+ # field :currency, facet: true
44
+ # field :discount_percentage, facet: { buckets: %w([10,100] [25,100] [50,100] [70,100]), method: 'interval' }
45
+ # field :manufacturer_name, facet: { size: 50 }
46
+ # field :price, facet: { buckets: %w([0,25] [25,50] [50,100] [100,200] [200,}), method: 'interval' }
47
+ # field :category_string, facet: { sort: 'bucket', size: 10_000 }
48
+ # field :created_at
49
+
50
+ # scope :men_tag, ->(date) { created_at date }
51
+ # scope :and_mens do
52
+ # and! { tags "men"}
53
+ # end
54
+
55
+ # end
56
+
57
+ # end
58
+
59
+ # class NewProduct < Product
60
+ # load_definition_from Product
61
+
62
+ # define_cloudsearch do
63
+ # field :searchable_text, query: { weight: 4 }
64
+ # field :name, as: :text1
65
+ # end
66
+ # end
67
+
68
+ # # Example Query
69
+ # query = Product.cloudsearch.query("children panasonic")
70
+ # .and {
71
+ # or!(boost: 2) {
72
+ # # tags.not start_with "flash_deal"
73
+ # tags.not.start_with "flash_deal"
74
+ # # tags.near"sales"
75
+ # # tags start_with("flash_deal"), near("sales")
76
+ # }
77
+ # or!.not {
78
+ # currency "CAD", "EUR"
79
+ # }
80
+ # and! {
81
+ # price r.gte(100).lt(200)
82
+ # }
83
+ # }.created_at(Date.today).description("wasup")
84
84
 
85
85
  # binding.pry
86
86
 
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.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chu