Module: Spree::PageBuilder::StoreDecorator

Defined in:
app/models/spree/page_builder/store_decorator.rb

Class Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/models/spree/page_builder/store_decorator.rb', line 4

def self.prepended(base)
  base.include Spree::HasPageLinks

  # Page Builder associations
  base.has_many :themes, -> { without_previews }, class_name: 'Spree::Theme', dependent: :destroy, inverse_of: :store
  base.has_many :theme_previews,
                -> { only_previews },
                class_name: 'Spree::Theme',
                through: :themes,
                source: :previews,
                inverse_of: :store,
                dependent: :destroy
  base.has_one :default_theme, -> { without_previews.where(default: true) }, class_name: 'Spree::Theme', inverse_of: :store
  base.alias_method :theme, :default_theme
  base.has_many :theme_pages, class_name: 'Spree::Page', through: :themes, source: :pages
  base.has_many :theme_page_previews, class_name: 'Spree::Page', through: :theme_pages, source: :previews
  base.has_many :pages, -> { without_previews.custom }, class_name: 'Spree::Pages::Custom', dependent: :destroy, as: :pageable
  base.has_many :page_previews, class_name: 'Spree::Pages::Custom', through: :pages, as: :pageable, source: :previews

  base.after_create :create_default_theme
end