workarea-product_additional_details 2.0.2 → 2.0.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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d24293b5ecd598ce1e4f81865b0e2a5939f5bf47a9eac646edcbf6c4566c811
|
4
|
+
data.tar.gz: 1205a137f548433a39144e38d687b31fdcd736beaf969b410112f4631b28a05d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21774ab5b8904169c5cd6d8647ad0e30ff81f450812f08fd74cc089597eda3db214255a185af211600051fb28b56d7c661ef130083bb5a1dad3f1b441243197d
|
7
|
+
data.tar.gz: 822bb52bb0bc63d8abf23065c71aaac1f60e761d6f6207784cd9d112838ed2f1205e019c424846bd88ee760fb33171455f692465e4fd2c29356197e8c07373b5
|
@@ -0,0 +1,93 @@
|
|
1
|
+
module Workarea
|
2
|
+
module Search
|
3
|
+
class Storefront
|
4
|
+
class Product
|
5
|
+
module Text
|
6
|
+
def catalog_content
|
7
|
+
[model.browser_title, model.meta_description, model.description]
|
8
|
+
.reject(&:blank?)
|
9
|
+
.join(' ')
|
10
|
+
end
|
11
|
+
|
12
|
+
# A list of category names to which this product belongs,
|
13
|
+
# allows finding products by category names in search.
|
14
|
+
#
|
15
|
+
# @return [String]
|
16
|
+
#
|
17
|
+
def category_names
|
18
|
+
categorization.to_models.map(&:name).join(', ')
|
19
|
+
end
|
20
|
+
|
21
|
+
# A textual version of the product's filters hash that
|
22
|
+
# will be stored and analyzed in the search index.
|
23
|
+
#
|
24
|
+
# @return [String]
|
25
|
+
#
|
26
|
+
def facets_content
|
27
|
+
HashText.new(model.filters).text
|
28
|
+
end
|
29
|
+
|
30
|
+
# A textual version of the product's filters hash that
|
31
|
+
# will be stored and analyzed in the search index.
|
32
|
+
#
|
33
|
+
# @return [String]
|
34
|
+
#
|
35
|
+
def details_content
|
36
|
+
"#{HashText.new(model.details).text} #{variant_details_text} #{additional_details_content}"
|
37
|
+
end
|
38
|
+
|
39
|
+
# Text from the product's details hash and it's variants' details
|
40
|
+
# hash. Allows finding a product by one of these values.
|
41
|
+
#
|
42
|
+
# @return [String]
|
43
|
+
#
|
44
|
+
def details
|
45
|
+
"#{HashText.new(model.details).text} #{variant_details_text} #{additional_details_content}"
|
46
|
+
end
|
47
|
+
|
48
|
+
# Text from additional details hash
|
49
|
+
def additional_details_content
|
50
|
+
if model.additional_details.present? && model.additional_details.any?
|
51
|
+
parse_addtional_details(model.additional_details)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
# Content to put in the index for making search query suggestions.
|
56
|
+
# Includes all content for the product.
|
57
|
+
#
|
58
|
+
# @return [String]
|
59
|
+
#
|
60
|
+
def suggestion_content
|
61
|
+
[
|
62
|
+
model.name,
|
63
|
+
category_names,
|
64
|
+
facets_content,
|
65
|
+
details_content
|
66
|
+
].join(' ')
|
67
|
+
end
|
68
|
+
|
69
|
+
def variant_details_text
|
70
|
+
@variant_details_text ||= model.variants.active.map do |variant|
|
71
|
+
"#{variant.name} #{HashText.new(variant.details).text}"
|
72
|
+
end.join(' ')
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
# extract text content from html content
|
77
|
+
def parse_addtional_details(details)
|
78
|
+
parsed_data = []
|
79
|
+
details.each do |key, value|
|
80
|
+
data = Nokogiri::HTML.parse(value) if value.is_a?(String)
|
81
|
+
if data.present?
|
82
|
+
data.traverse do |node|
|
83
|
+
parsed_data.push(node.text)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
parsed_data.flatten.compact.uniq.join(" ")
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workarea-product_additional_details
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gunasekaran Raja
|
@@ -53,6 +53,7 @@ files:
|
|
53
53
|
- app/models/.keep
|
54
54
|
- app/models/workarea/catalog/product.decorator
|
55
55
|
- app/models/workarea/catalog/variant.decorator
|
56
|
+
- app/models/workarea/search/storefront/product/text.rb
|
56
57
|
- app/services/workarea/hash_update.decorator
|
57
58
|
- app/views/.keep
|
58
59
|
- app/views/workarea/admin/catalog_products/_additional_details.html.haml
|