solidus_recommendations 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 21b4594ce7b4a73d27fad6e1ac72f35b8299aa79
4
- data.tar.gz: cb32a9a47755eedc18e154fd74a7851ff281d69b
3
+ metadata.gz: 1c7e6fc04399fed54b0c578787e86812d7a56990
4
+ data.tar.gz: c0c3b4345c707c157e00ce3a8560eb5d1b765665
5
5
  SHA512:
6
- metadata.gz: 6f8b501c41c029c8d42278d0b05573a6d72d36f694c2f8f32e7e7fe71678ace70bc5dfb5cf5cdab17f398b0300084df6ae571981cf53254201a4f4f50f9bb25a
7
- data.tar.gz: 11c8985246197158cfc3a9e1b3911cd8d11839349d07696cf78250b8dd40452604c5207aa7c9462574bd7b0b8e26dd3de234e8dd0ecc773e733bdcecf4b09897
6
+ metadata.gz: 62fe61ff65a30ecd312c9bd88d4c649cb2ab2ba13ede47d92c4dd2c86849fe49f21990ac7fae60c1cebe9b5c978e100c8f87ded97360ac15eec5e8a0bef043d3
7
+ data.tar.gz: 76761823a69f3ac0a4415c2237314dca5e06674a7cb3307ccaea6fe40b3a677926c800ef369f632dab866363bfa123b5b060353d2d9c608d7438c330ac0fb868
data/README.md CHANGED
@@ -3,6 +3,11 @@ SolidusRecommendations
3
3
 
4
4
  Uses Elasticsearch on top of Solidus framework to retrieve relevant recommendations based on what users have purchased in the past.
5
5
 
6
+ Requirements
7
+ ------------
8
+
9
+ * Elasticsearch must be installed and running. https://www.elastic.co/downloads/elasticsearch
10
+
6
11
  Installation
7
12
  ------------
8
13
 
@@ -19,6 +24,15 @@ bundle
19
24
  bundle exec rails g solidus_recommendations:install
20
25
  ```
21
26
 
27
+ From the console:
28
+ ```ruby
29
+ Spree.user_class.__elasticsearch__.create_index!
30
+ Spree::Order.__elasticsearch__.create_index!
31
+
32
+ Spree.user_class.import
33
+ Spree::Order.import
34
+ ```
35
+
22
36
  Usage
23
37
  -----
24
38
 
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'bundler'
2
3
 
3
4
  Bundler::GemHelper.install_tasks
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Spree
2
3
  module Callbackable
3
4
  extend ActiveSupport::Concern
@@ -9,20 +10,25 @@ module Spree
9
10
  after_commit :update_document, on: :update
10
11
  after_commit :delete_document, on: :destroy
11
12
 
12
- delegate :delete_document, to: :__elasticsearch__
13
-
14
13
  ##
15
14
  # Index document into elasticsearch
16
15
  #
17
- def index_document
18
- __elasticsearch__.index_document(version_options)
19
- end
16
+ delegate :index_document, to: :__elasticsearch__
20
17
 
21
18
  ##
22
19
  # Updates elasticsearch document from featured model
23
20
  #
24
21
  def update_document
25
- __elasticsearch__.update_document(version_options)
22
+ __elasticsearch__.update_document
23
+ rescue Elasticsearch::Transport::Transport::Errors::NotFound
24
+ Rails.logger.warn "[#{self.class}] Document with id #{id} not found on elasticsearch cluster"
25
+ __elasticsearch__.index_document
26
+ end
27
+
28
+ def delete_document
29
+ __elasticsearch__.delete_document
30
+ rescue Elasticsearch::Transport::Transport::Errors::NotFound
31
+ Rails.logger.warn "[#{self.class}] Document with id #{id} not found on elasticsearch cluster"
26
32
  end
27
33
 
28
34
  private
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Spree
2
3
  module Indexable
3
4
  extend ActiveSupport::Concern
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Spree
2
3
  class Order
3
4
  module Indexable
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Spree
2
3
  class Product
3
4
  module Recommendable
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Spree
2
3
  class User
3
4
  module Indexable
@@ -16,7 +17,7 @@ module Spree
16
17
 
17
18
  included do
18
19
  include Spree::Indexable
19
-
20
+
20
21
  ##
21
22
  # Define Order mapping for Elasticserach index
22
23
  #
@@ -1,2 +1,3 @@
1
+ # frozen_string_literal: true
1
2
  Spree::Order.include Spree::Callbackable
2
3
  Spree::Order.include Spree::Order::Indexable
@@ -0,0 +1,2 @@
1
+ # frozen_string_literal: true
2
+ Spree::Product.include Spree::Product::Recommendable
@@ -1,2 +1,3 @@
1
+ # frozen_string_literal: true
1
2
  Spree.user_class.include Spree::Callbackable
2
3
  Spree.user_class.include Spree::User::Indexable
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  Spree::Core::Engine.routes.draw do
2
3
  # Add your extension routes here
3
4
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module SolidusRecommendations
2
3
  module Generators
3
4
  class InstallGenerator < Rails::Generators::Base
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'solidus_core'
2
3
  require 'elasticsearch/model'
3
4
  require 'solidus_recommendations/engine'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module SolidusRecommendations
2
3
  class Client
3
4
  ##
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module SolidusRecommendations
2
3
  class Engine < Rails::Engine
3
4
  require 'spree/core'
@@ -1,8 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  module SolidusRecommendations
2
3
  module Errors
3
4
  class Standard < StandardError
4
- def initialize(msg = MESSAGES[self.class])
5
- end
5
+ def initialize(msg = MESSAGES[self.class]); end
6
6
  end
7
7
 
8
8
  class NonSupportedIndex < Standard; end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  FactoryGirl.define do
2
3
  # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
3
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module SolidusRecommendations
2
3
  module Recommendable
3
4
  class Base
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module SolidusRecommendations
2
3
  module Recommendable
3
4
  ##
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module SolidusRecommendations
2
- VERSION = '0.0.1'
3
+ VERSION = '0.0.2'
3
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_recommendations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Scott
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-16 00:00:00.000000000 Z
11
+ date: 2017-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -253,6 +253,7 @@ files:
253
253
  - app/models/concerns/spree/product/recommendable.rb
254
254
  - app/models/concerns/spree/user/indexable.rb
255
255
  - app/models/spree/order_decorator.rb
256
+ - app/models/spree/product_decorator.rb
256
257
  - app/models/spree/user_decorator.rb
257
258
  - config/locales/en.yml
258
259
  - config/routes.rb