solidus_recommendations 0.0.1 → 0.0.2

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: 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