Sha256: 8e9bbdb014989fcfa4899553573cd9d1c422b6a8ae51a71cca61a468f9d92e59
Contents?: true
Size: 1.33 KB
Versions: 5
Compression:
Stored size: 1.33 KB
Contents
$:.unshift File.expand_path('../../lib', __FILE__) require 'signal' require 'active_record' ActiveRecord::Base.establish_connection({ :adapter => 'sqlite3', :database => ':memory:' }) ActiveRecord::Schema.define(:version => 0) do create_table :things do |t| t.string :name t.timestamps null: false end end class Thing < ActiveRecord::Base include Signal::ActiveRecord validates_presence_of :name end class MyListener [:validation, :update, :create, :remove].each do |type| class_eval <<-RUBY def before_#{type}(thing); puts __method__; end def on_#{type}(thing); puts __method__; end def after_#{type}(thing); puts __method__; end RUBY end end puts "\n=== Creating valid record" thing = Thing.new(:name => 'Stuff') thing.listeners << MyListener.new thing.save puts "\n=== Creating invalid record" thing = Thing.new(:name => nil) thing.listeners << MyListener.new thing.save puts "\n=== Updating valid record" thing = Thing.create(:name => 'Stuff') thing.listeners << MyListener.new thing.update_attributes(:name => 'Updated stuff') puts "\n=== Updating invalid record" thing = Thing.create!(:name => 'Stuff') thing.listeners << MyListener.new thing.update_attributes(:name => nil) puts "\n=== Removing record" thing = Thing.create(:name => 'Stuff') thing.listeners << MyListener.new thing.destroy
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
signal-1.0.0 | examples/chain.rb |
signal-0.3.0 | examples/chain.rb |
signal-0.2.2 | examples/chain.rb |
signal-0.2.1 | examples/chain.rb |
signal-0.2.0 | examples/chain.rb |