Sha256: e793747876e6bad00db2d4aa3419b66e7a3f2851eb4cec666367e1e4d05eebdb

Contents?: true

Size: 1.07 KB

Versions: 7

Compression:

Stored size: 1.07 KB

Contents

class Spree::Base < ApplicationRecord
  include Spree::Preferences::Preferable
  serialize :preferences, Hash

  include Spree::RansackableAttributes

  after_initialize do
    if has_attribute?(:preferences) && !preferences.nil?
      self.preferences = default_preferences.merge(preferences)
    end
  end

  if Kaminari.config.page_method_name != :page
    def self.page(num)
      send Kaminari.config.page_method_name, num
    end
  end

  self.abstract_class = true

  def self.belongs_to_required_by_default
    false
  end

  def self.for_store(store)
    plural_model_name = model_name.plural.gsub(/spree_/, '').to_sym

    if store.respond_to?(plural_model_name)
      store.send(plural_model_name)
    else
      self
    end
  end

  def self.spree_base_scopes
    where(nil)
  end

  # FIXME: https://github.com/rails/rails/issues/40943
  def self.has_many_inversing
    false
  end

  def self.json_api_columns
    column_names.reject { |c| c.match(/_id$|id|preferences|(.*)password|(.*)token|(.*)api_key/) }
  end

  def self.json_api_type
    to_s.demodulize.underscore
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
spree_core-4.3.3 app/models/spree/base.rb
spree_core-4.3.2 app/models/spree/base.rb
spree_core-4.3.1 app/models/spree/base.rb
spree_core-4.3.0 app/models/spree/base.rb
spree_core-4.3.0.rc3 app/models/spree/base.rb
spree_core-4.3.0.rc2 app/models/spree/base.rb
spree_core-4.3.0.rc1 app/models/spree/base.rb