Sha256: 67306a0e51d97589eb87b662d9c4d470f09881f4a62589889e75384561adf515

Contents?: true

Size: 1.71 KB

Versions: 53

Compression:

Stored size: 1.71 KB

Contents

class Artist
  include Mongoid::Document

  attr_accessor :before_add_called, :after_add_called, :before_add_referenced_called, :after_add_referenced_called, :before_remove_embedded_called, :after_remove_embedded_called, :before_remove_referenced_called, :after_remove_referenced_called

  field :name, type: String

  embeds_many :songs, before_add: [ :before_add_song, Proc.new { |artist, song| song.before_add_called = true } ], before_remove: :before_remove_song
  embeds_many :labels, after_add: :after_add_label, after_remove: :after_remove_label
  has_many :albums, dependent: :destroy, before_add: [:before_add_album, Proc.new { |artist, album| album.before_add_called = true} ], after_add: :after_add_album, before_remove: :before_remove_album, after_remove: :after_remove_album

  before_create :before_create_stub
  after_create :create_songs
  before_save :before_save_stub
  before_destroy :before_destroy_stub

  protected
  def before_create_stub
    true
  end

  def before_save_stub
    true
  end

  def before_destroy_stub
    true
  end

  def create_songs
    2.times { |n| songs.create!(title: "#{n}") }
  end

  def before_add_song(song)
    @before_add_called = true
  end

  def after_add_label(label)
    @after_add_called = true
  end

  def before_add_album(album)
    @before_add_referenced_called = true
  end

  def after_add_album(album)
    @after_add_referenced_called = true
  end

  def before_remove_song(song)
    @before_remove_embedded_called = true
  end

  def after_remove_label(label)
    @after_remove_embedded_called = true
  end

  def before_remove_album(album)
    @before_remove_referenced_called = true
  end

  def after_remove_album(album)
    @after_remove_referenced_called = true
  end

end

Version data entries

53 entries across 50 versions & 8 rubygems

Version Path
mongoid-5.4.1 spec/app/models/artist.rb
mongoid-5.4.0 spec/app/models/artist.rb
mongoid-5.2.1 spec/app/models/artist.rb
mongoid-5.2.0 spec/app/models/artist.rb
mongoid-5.2.0.rc0 spec/app/models/artist.rb
mongoid-5.1.6 spec/app/models/artist.rb
mongoid-5.1.5 spec/app/models/artist.rb
mongoid-5.1.4 spec/app/models/artist.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/mongoid-4.0.2/spec/app/models/artist.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/mongoid-5.1.3/spec/app/models/artist.rb
mongoid-5.1.3 spec/app/models/artist.rb
mongoid-5.1.2 spec/app/models/artist.rb
mongoid-5.1.1 spec/app/models/artist.rb
mongoid-5.1.0 spec/app/models/artist.rb
tdiary-4.2.1 vendor/bundle/ruby/2.2.0/gems/mongoid-5.0.1/spec/app/models/artist.rb
tdiary-4.2.1 vendor/bundle/ruby/2.2.0/gems/mongoid-5.0.2/spec/app/models/artist.rb
tdiary-4.2.1 vendor/bundle/ruby/2.3.0/gems/mongoid-5.0.2/spec/app/models/artist.rb
mongoid-5.0.2 spec/app/models/artist.rb
mongoid-5.0.1 spec/app/models/artist.rb
mongoid-paranoia-1.1.0 spec/app/models/artist.rb