Sha256: 6470f7602917804d50fbe45e89efc17700bb4aea6529f2bb87dbc2add8ab868b
Contents?: true
Size: 1.47 KB
Versions: 3
Compression:
Stored size: 1.47 KB
Contents
require 'data_seeder' class AppErrorDataSeeder include ::DataSeeder::Loader def setup @app = App.find_or_initialize_by(name: self.path_minus_ext) @existing_errors = {} if @app.new_record? logger.debug { "Loading errors for new App: #{@app.name}" } @app.save! else logger.debug { "Loading errors for existing App: #{@app.name}" } @app.app_errors.each do |app_error| @existing_errors[app_error.code] = app_error end end end def teardown unless @existing_errors.empty? logger.debug { "The following are begin removed:" } log_indent do @existing_errors.each do |code, app_error| logger.debug { "#{code}: #{app_error.message}" } app_error.destroy end end end end def load(io) io.each_line do |line| line.strip! next if line.blank? || line[0] == ?# space_i = line.index(' ') raise "Invalid line: #{line}" unless space_i code = line[0,space_i].strip message = line[space_i+1..-1].strip app_error = @existing_errors[code] if app_error @existing_errors.delete(code) app_error.message = message unless app_error.changes.empty? logger.debug { "Changing #{code}: #{app_error.changes}" } app_error.save! end else logger.debug { "Creating #{code}: #{message}" } @app.app_errors.create!(code: code, message: message) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems