class Rails::ObserverGenerator

Public Instance Methods

create_observer() click to toggle source
# File lib/generators/rails/observer_generator.rb, line 6
def create_observer
  template('observer.rb', "app/observers/#{file_name.underscore}_observer.rb")
  template('observer_spec.rb', "spec/observers/#{file_name.underscore}_observer_spec.rb")
end
include_observable_mixin() click to toggle source
# File lib/generators/rails/observer_generator.rb, line 11
def include_observable_mixin
  line = "class #{class_name} < #{active_record_klass}"
  gsub_file "app/models/#{file_name.underscore}.rb", /(#{Regexp.escape(line)})/mi do |match|
    "#{match}\n  include PowerTypes::Observable"
  end
end

Private Instance Methods

active_record_klass() click to toggle source
# File lib/generators/rails/observer_generator.rb, line 20
def active_record_klass
  if ::Rails::VERSION::MAJOR > 4
    ApplicationRecord
  else
    ActiveRecord::Base
  end
end