From 6db3ffe21b792fccd70f02ff1a1d881dc0d6de9a Mon Sep 17 00:00:00 2001 From: David James Date: Wed, 11 Jun 2008 21:30:22 -0400 Subject: [PATCH] Renamed dm-voyeur to dm-observer Did these renamings: dm-voyeur -> dm_observer Voyeur -> Observer peep -> observe neighborhood_watch -> observing Did the renaming because: * it makes this plugin easier to find * the new name is more family friendly --- README | 2 +- README.textile | 2 +- Rakefile | 3 +- {dm-voyeur => dm-observer}/LICENSE | 0 {dm-voyeur => dm-observer}/README | 14 ++++---- {dm-voyeur => dm-observer}/Rakefile | 4 +-- {dm-voyeur => dm-observer}/TODO | 0 .../lib/dm-observer.rb | 35 ++++++++++--------- .../spec/integration/dm-observer_spec.rb | 30 ++++++++-------- {dm-voyeur => dm-observer}/spec/spec.opts | 0 .../spec/spec_helper.rb | 2 +- 11 files changed, 48 insertions(+), 44 deletions(-) rename {dm-voyeur => dm-observer}/LICENSE (100%) rename {dm-voyeur => dm-observer}/README (54%) rename {dm-voyeur => dm-observer}/Rakefile (96%) rename {dm-voyeur => dm-observer}/TODO (100%) rename dm-voyeur/lib/dm-voyeur.rb => dm-observer/lib/dm-observer.rb (60%) rename dm-voyeur/spec/integration/dm-voyeur_spec.rb => dm-observer/spec/integration/dm-observer_spec.rb (72%) rename {dm-voyeur => dm-observer}/spec/spec.opts (100%) rename {dm-voyeur => dm-observer}/spec/spec_helper.rb (98%) diff --git a/README b/README index 433b53dd..751b5012 100644 --- a/README +++ b/README @@ -8,7 +8,7 @@ Including: * Migrations * Validations * Aggregates - * Voyeurs + * Observers == Aggregates diff --git a/README.textile b/README.textile index c387e407..08431571 100644 --- a/README.textile +++ b/README.textile @@ -13,4 +13,4 @@ Including * ActiveRecord-style finders * Adapters for your favorite repository or database type * Integration with your favorite web frameworks - * Voyeurs for watching resources. Think observers. + * Observers for watching resources. diff --git a/Rakefile b/Rakefile index e2d1d398..118a5a63 100755 --- a/Rakefile +++ b/Rakefile @@ -27,12 +27,13 @@ gem_paths = %w[ dm-is-nested_set dm-is-tree dm-migrations + dm-observer dm-serializer dm-shorthand dm-timestamps dm-types dm-validations - dm-voyeur + merb_datamapper ] gems = gem_paths.map { |p| File.basename(p) } diff --git a/dm-voyeur/LICENSE b/dm-observer/LICENSE similarity index 100% rename from dm-voyeur/LICENSE rename to dm-observer/LICENSE diff --git a/dm-voyeur/README b/dm-observer/README similarity index 54% rename from dm-voyeur/README rename to dm-observer/README index 9bd3d079..463f500f 100644 --- a/dm-voyeur/README +++ b/dm-observer/README @@ -1,19 +1,21 @@ README -======================================================================== -DataMapper::Voyeur allows you to add callback hooks to many models. This is similar to observers in ActiveRecord. +====== +DataMapper::Observer allows you to add callback hooks to many models. This is +similar to observers in ActiveRecord. Example: + class Adam include DataMapper::Resource property :id, Integer, :serial => true property :name, String end + +class AdamObserver + include DataMapper::Observer -class AdamVoyeur - include DataMapper::Voyeur - - peep Adam + observe Adam before :save do # log message diff --git a/dm-voyeur/Rakefile b/dm-observer/Rakefile similarity index 96% rename from dm-voyeur/Rakefile rename to dm-observer/Rakefile index 9f00f6e6..b685ee28 100644 --- a/dm-voyeur/Rakefile +++ b/dm-observer/Rakefile @@ -8,7 +8,7 @@ require 'pathname' CLEAN.include '{log,pkg}/' spec = Gem::Specification.new do |s| - s.name = 'dm-voyeur' + s.name = 'dm-observer' s.version = '0.9.1' s.platform = Gem::Platform::RUBY s.has_rdoc = true @@ -17,7 +17,7 @@ spec = Gem::Specification.new do |s| s.description = s.summary s.author = 'Mark Bates' s.email = 'mark@mackframework.com' - s.homepage = 'http://github.com/sam/dm-more/tree/master/dm-voyeur' + s.homepage = 'http://github.com/sam/dm-more/tree/master/dm-observer' s.require_path = 'lib' s.files = FileList[ '{lib,spec}/**/*.rb', 'spec/spec.opts', 'Rakefile', *s.extra_rdoc_files ] s.add_dependency('dm-core', "=#{s.version}") diff --git a/dm-voyeur/TODO b/dm-observer/TODO similarity index 100% rename from dm-voyeur/TODO rename to dm-observer/TODO diff --git a/dm-voyeur/lib/dm-voyeur.rb b/dm-observer/lib/dm-observer.rb similarity index 60% rename from dm-voyeur/lib/dm-voyeur.rb rename to dm-observer/lib/dm-observer.rb index 3d0dffc5..c176828b 100644 --- a/dm-voyeur/lib/dm-voyeur.rb +++ b/dm-observer/lib/dm-observer.rb @@ -1,7 +1,8 @@ module DataMapper - # Voyeur's allow you to add callback hooks to DataMapper::Resource objects in a separate class. This is great - # for separating out logic that is not really part of the model, but needs to be triggered by a model, or models. - module Voyeur + # Observers allow you to add callback hooks to DataMapper::Resource objects + # in a separate class. This is great for separating out logic that is not + # really part of the model, but needs to be triggered by a model, or models. + module Observer def self.included(klass) klass.extend(ClassMethods) @@ -9,46 +10,46 @@ def self.included(klass) module ClassMethods - attr_accessor :neighborhood_watch + attr_accessor :observing def initialize - self.neighborhood_watch = [] + self.observing = [] end # Assign an Array of Class names to watch. - # peep User, Article, Topic - def peep(*args) - # puts "#{self.to_s} peeping... #{args.collect{|c| Extlib::Inflection.classify(c.to_s)}.join(', ')}" - self.neighborhood_watch = args + # observe User, Article, Topic + def observe(*args) + # puts "#{self.to_s} observing... #{args.collect{|c| Extlib::Inflection.classify(c.to_s)}.join(', ')}" + self.observing = args end def before(sym, &block) - self.neighborhood_watch.each do |klass| + self.observing.each do |klass| klass.before(sym.to_sym, &block) end end def after(sym, &block) - self.neighborhood_watch.each do |klass| + self.observing.each do |klass| klass.after(sym.to_sym, &block) end end def before_class_method(sym, &block) - self.neighborhood_watch.each do |klass| + self.observing.each do |klass| klass.before_class_method(sym.to_sym, &block) end end def after_class_method(sym, &block) - self.neighborhood_watch.each do |klass| + self.observing.each do |klass| klass.after_class_method(sym.to_sym, &block) end end end # ClassMethods - end # Voyeur + end # Observer end # DataMapper if $0 == __FILE__ @@ -69,10 +70,10 @@ class Foo Foo.auto_migrate! - class FooVoyeur - include DataMapper::Voyeur + class FooObserver + include DataMapper::Observer - peep :foo + observe :foo before :save do raise "Hell!" if self.bar.nil? diff --git a/dm-voyeur/spec/integration/dm-voyeur_spec.rb b/dm-observer/spec/integration/dm-observer_spec.rb similarity index 72% rename from dm-voyeur/spec/integration/dm-voyeur_spec.rb rename to dm-observer/spec/integration/dm-observer_spec.rb index eaab3ded..d74705ca 100644 --- a/dm-voyeur/spec/integration/dm-voyeur_spec.rb +++ b/dm-observer/spec/integration/dm-observer_spec.rb @@ -1,7 +1,7 @@ require 'pathname' require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper' -describe DataMapper::Voyeur do +describe DataMapper::Observer do before :all do class Adam include DataMapper::Resource @@ -53,10 +53,10 @@ def empty? Alcohol::Beer.auto_migrate! - class AdamVoyeur - include DataMapper::Voyeur + class AdamObserver + include DataMapper::Observer - peep Adam + observe Adam before :save do @falling = true @@ -72,10 +72,10 @@ class AdamVoyeur end - class DrinkingVoyeur - include DataMapper::Voyeur + class DrinkingObserver + include DataMapper::Observer - peep Adam, Alcohol::Beer + observe Adam, Alcohol::Beer after :drink do @refrigerated = true @@ -102,18 +102,18 @@ class DrinkingVoyeur @adam.done.should be_nil end - it "peep should add a class to the neighborhood watch" do - AdamVoyeur.should have(1).neighborhood_watch - AdamVoyeur.neighborhood_watch.first.should == Adam + it "observe should add a class to the neighborhood watch" do + AdamObserver.should have(1).observing + AdamObserver.observing.first.should == Adam end - it "peep should add more than one class to the neighborhood watch" do - DrinkingVoyeur.should have(2).neighborhood_watch - DrinkingVoyeur.neighborhood_watch.first.should == Adam - DrinkingVoyeur.neighborhood_watch[1].should == Alcohol::Beer + it "observe should add more than one class to the neighborhood watch" do + DrinkingObserver.should have(2).observing + DrinkingObserver.observing.first.should == Adam + DrinkingObserver.observing[1].should == Alcohol::Beer end - it "should peep multiple classes with the same method name" do + it "should observe multiple classes with the same method name" do @adam.should_not be_happy @beer.should_not be_empty @adam.drink diff --git a/dm-voyeur/spec/spec.opts b/dm-observer/spec/spec.opts similarity index 100% rename from dm-voyeur/spec/spec.opts rename to dm-observer/spec/spec.opts diff --git a/dm-voyeur/spec/spec_helper.rb b/dm-observer/spec/spec_helper.rb similarity index 98% rename from dm-voyeur/spec/spec_helper.rb rename to dm-observer/spec/spec_helper.rb index 5013d30a..0df545c4 100644 --- a/dm-voyeur/spec/spec_helper.rb +++ b/dm-observer/spec/spec_helper.rb @@ -4,7 +4,7 @@ gem "dm-core" require 'dm-core' require 'pathname' -require Pathname(__FILE__).dirname.parent.expand_path + 'lib/dm-voyeur' +require Pathname(__FILE__).dirname.parent.expand_path + 'lib/dm-observer' def load_driver(name, default_uri) return false if ENV['ADAPTER'] != name.to_s