Sha256: 2024c0149cdb5aee595aad2da2737566836409234f115ea1c084a7881b7ebf9f
Contents?: true
Size: 900 Bytes
Versions: 16
Compression:
Stored size: 900 Bytes
Contents
module Spree class DataFeed < Base belongs_to :store, class_name: 'Spree::Store', foreign_key: 'store_id' scope :for_store, ->(store) { where(store: store) } before_validation :generate_slug with_options presence: true do validates :store validates :name, uniqueness: true validates :slug, uniqueness: { scope: :store_id } end def formatted_url "#{store.formatted_url}/api/v2/data_feeds/#{self.class.provider_name}/#{slug}.rss" end private def generate_slug new_slug = slug.blank? ? SecureRandom.uuid : slug.parameterize write_attribute(:slug, new_slug) end class << self def label raise NotImplementedError end def provider_name raise NotImplementedError end def available_types Rails.application.config.spree.data_feed_types end end end end
Version data entries
16 entries across 16 versions & 1 rubygems