Module: RSpec::Rails::Observer

Defined in:
lib/rspec_for_generators/rails_helpers/rails_observer.rb

Instance Method Summary collapse

Instance Method Details

#create_observer(name, content = nil) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/rspec_for_generators/rails_helpers/rails_observer.rb', line 3

def create_observer name, content=nil
  file =  observer_file_name(name)
  unless File.exist?(file)    
    FileUtils.mkdir_p File.dirname(file)
    content ||= yield if block_given?
    File.open(file, 'w') do |f|  
      f.puts observer_content(name, content)
    end
  end
end

#observer_content(name, content = nil) ⇒ Object



14
15
16
17
18
# File 'lib/rspec_for_generators/rails_helpers/rails_observer.rb', line 14

def observer_content name, content=nil
  %Q{class #{name.to_s.camelize}Observer < ActiveRecord::Observer      
  #{content}
end}        
end

#observer_file_name(name) ⇒ Object



29
30
31
# File 'lib/rspec_for_generators/rails_helpers/rails_observer.rb', line 29

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

#remove_observer(name) ⇒ Object



20
21
22
23
# File 'lib/rspec_for_generators/rails_helpers/rails_observer.rb', line 20

def remove_observer name
  file = observer_file_name(name)
  FileUtils.rm_f(file) if File.exist?(file)
end

#remove_observers(*names) ⇒ Object



25
26
27
# File 'lib/rspec_for_generators/rails_helpers/rails_observer.rb', line 25

def remove_observers *names
  names.each{|name| remove_observer name }
end