Sha256: fc5bea045574986a337a80b9043a731e0ced07c3b2a91be9e4f8eb042224e9fe

Contents?: true

Size: 865 Bytes

Versions: 3

Compression:

Stored size: 865 Bytes

Contents

# encoding: UTF-8

require File.expand_path("./helper", File.dirname(__FILE__))

if defined?(Ohm::Model::PureRuby)
  class User < Ohm::Model
    attribute :email

    attr_accessor :foo

    def save
      super do |t|
        t.before do
          self.email = email.downcase
        end

        t.after do
          if @foo
            key[:foos].sadd(@foo)
          end
        end
      end
    end

    def delete
      super do |t|
        foos = nil

        t.before do
          foos = key[:foos].smembers
        end

        t.after do
          foos.each { |foo| key[:foos].srem(foo) }
        end
      end
    end
  end

  test do
    u = User.create(email: "FOO@BAR.COM", foo: "bar")
    assert_equal "foo@bar.com", u.email
    assert_equal ["bar"], u.key[:foos].smembers

    u.delete
    assert_equal [], User.key[u.id][:foos].smembers
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ohm-1.0.0.rc1 test/extensibility.rb
ohm-1.0.0.alpha2 test/extensibility.rb
ohm-1.0.0.alpha1 test/extensibility.rb