Sha256: 0a97ceae3a33bf293a67163241f8f170feb03281fe8800d6a36336aa6cd3e6ea

Contents?: true

Size: 849 Bytes

Versions: 4

Compression:

Stored size: 849 Bytes

Contents

class ObserverGenerator < Rails::Generators::NamedBase
  include Rails::Assist::Generators::BasicHelper  
  
  desc "Adds method 'observe_me' to a Observer" 
    
  def self.source_root
    @source_root ||= File.expand_path("../templates", __FILE__)
  end

  def add_observer_method  
    if File.exist?(observer_file_name)
      inject_into_file(observer_file_name, observer_method_code, :after => after_txt) if after_txt
    else
      say "#{observer_file_name} does not exist. Please create it first before you can add a observer method to it!", :red
    end
  end

  protected

  def after_txt
    "ActiveRecord::Observer"
  end
                     
  def observer_file_name
    File.join(Rails.root, "app/models/#{file_name}_observer.rb")
  end

  def observer_method_code
    %Q{
  def observe_me
    "Observe me please!"
  end
}
  end
end 

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
generator-spec-0.6.6 lib/generators/observer/observer_generator.rb
generator-spec-0.6.5 lib/generators/observer/observer_generator.rb
generator-spec-0.6.4 lib/generators/observer/observer_generator.rb
generator-spec-0.6.3 lib/generators/observer/observer_generator.rb