Sha256: c4afbfae37302515077d34fbd4db98f0cbaa066d95f5f78b4115fe2be48957d1

Contents?: true

Size: 827 Bytes

Versions: 4

Compression:

Stored size: 827 Bytes

Contents

require 'active_record'
require 'i18n'
require 'active_support/core_ext'
require 'simple_slug'

# just silence warning
I18n.enforce_available_locales = false

class RspecActiveModelBase
  include ActiveModel::Model
  include ActiveModel::AttributeMethods
  extend ActiveModel::Callbacks

  include SimpleSlug::ModelAddition

  define_model_callbacks :validation, :save, :destroy

  attr_accessor :id, :slug, :name, :created_at
  alias_method :slug_was, :slug

  def self.create(attributes, *)
    record = new(attributes)
    record.save
    record
  end

  def save
    run_callbacks(:validation) { run_callbacks(:save) { } }
  end

  def destroy
    run_callbacks(:destroy) { @destroyed = true }
  end

  def persisted?
    true
  end

  def slug_changed?
    slug.present?
  end

  def destroyed?
    !!@destroyed
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
simple_slug-0.3.1 spec/spec_helper.rb
simple_slug-0.3.0 spec/spec_helper.rb
simple_slug-0.2.0 spec/spec_helper.rb
simple_slug-0.1.0 spec/spec_helper.rb