Module: Spree::PreviewData

Defined in:
lib/spree/core/previews/preview_data.rb

Defined Under Namespace

Modules: LocaleParam

Class Method Summary collapse

Class Method Details

.admin_userObject

An admin user for previews that need user.email / user.first_name. Falls back to an unsaved instance when the database has no admin users.



20
21
22
23
# File 'lib/spree/core/previews/preview_data.rb', line 20

def admin_user
  Spree.admin_user_class.first ||
    Spree.admin_user_class.new(email: 'admin@example.com', first_name: 'Alex', last_name: 'Doe')
end

.customerObject

A customer for previews of customer-facing account emails. Falls back to an unsaved instance when the database has no users.



27
28
29
30
31
32
# File 'lib/spree/core/previews/preview_data.rb', line 27

def customer
  Spree.user_class.first ||
    Spree.user_class.new(email: 'customer@example.com').tap do |user|
      user.first_name = 'Alex' if user.respond_to?(:first_name=)
    end
end

.store(locale = nil) ⇒ Spree::Store

The store previews render for. When the preview toolbar's locale dropdown sets ?locale=, return an unsaved copy of the default store with that default_locale, so mailers that render in store.default_locale honour the toggle without mutating the real store.

Parameters:

  • locale (String, Symbol, nil) (defaults to: nil)

    the ?locale= param

Returns:



41
42
43
44
45
46
47
48
49
50
# File 'lib/spree/core/previews/preview_data.rb', line 41

def store(locale = nil)
  store = Spree::Store.default
  return store if locale.blank? || store.nil?

  dup = store.dup
  dup.id = store.id # keep prefixed-id / URL helpers working
  dup.default_locale = locale.to_s.downcase
  dup.readonly!
  dup
end