Class: Workarea::Admin::ProductRulesPreviewViewModel
- Inherits:
-
ApplicationViewModel
- Object
- ApplicationViewModel
- Workarea::Admin::ProductRulesPreviewViewModel
show all
- Defined in:
- app/view_models/workarea/admin/product_rules_preview_view_model.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.wrap(model, options = {}) ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
17
|
# File 'app/view_models/workarea/admin/product_rules_preview_view_model.rb', line 6
def self.wrap(model, options = {})
return model.map { |m| wrap(m, options) } if model.is_a?(Enumerable)
view_model_class = [
"Workarea::Admin",
"#{model.class.model_name.param_key.camelize}ProductRulesViewModel"
].join('::')
view_model_class.constantize.new(model, options)
rescue
new(model, options)
end
|
Instance Method Details
#base_query ⇒ Object
58
59
60
61
|
# File 'app/view_models/workarea/admin/product_rules_preview_view_model.rb', line 58
def base_query
return unless model.respond_to?(:query)
model.query
end
|
#display_results? ⇒ Boolean
54
55
56
|
# File 'app/view_models/workarea/admin/product_rules_preview_view_model.rb', line 54
def display_results?
model.product_rules.select(&:valid?).present?
end
|
Provides all products found from search results
39
40
41
42
43
44
45
46
47
48
|
# File 'app/view_models/workarea/admin/product_rules_preview_view_model.rb', line 39
def results
@results ||= PagedArray.from(
search.results.map do |r|
Admin::ProductViewModel.new(r[:model], inventory: r[:inventory])
end,
search.page,
search.per_page,
search.total
)
end
|
#search ⇒ Workarea::Search::CategoryBrowse
Fetches search results of products for category. Extends search class with Search::AdminProductRulesPreview to allow overriding display rules.
26
27
28
29
30
31
32
33
|
# File 'app/view_models/workarea/admin/product_rules_preview_view_model.rb', line 26
def search
@search ||= Search::CategoryBrowse.new(
rules: model.product_rules.select(&:valid?),
sort: model.default_sort,
page: options[:page] || 1,
show_all: show_all?
).tap { |s| s.extend(Search::AdminProductRulesPreview) }
end
|
#show_all? ⇒ Boolean
50
51
52
|
# File 'app/view_models/workarea/admin/product_rules_preview_view_model.rb', line 50
def show_all?
options[:show_all].to_s =~ /true/
end
|