Sha256: cfc007061fa65adea94d1b4445f32c7df3537c04f25a4b010059a66d012a9cf6

Contents?: true

Size: 1.46 KB

Versions: 8

Compression:

Stored size: 1.46 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.info { "Loading errors for new App: #{@app.name}" }
      @app.save!
    else
      logger.info { "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.info { "The following are begin removed:" }
      log_indent do
        @existing_errors.each do |code, app_error|
          logger.info { "#{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.info { "Changing #{code}: #{app_error.changes}" }
          app_error.save!
        end
      else
        logger.info { "Creating #{code}: #{message}" }
        @app.app_errors.create!(code: code, message: message)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
data_seeder-1.1.0 test/dummy/app/models/app_error_data_seeder.rb
data_seeder-1.0.9 test/dummy/app/models/app_error_data_seeder.rb
data_seeder-1.0.8 test/dummy/app/models/app_error_data_seeder.rb
data_seeder-1.0.7 test/dummy/app/models/app_error_data_seeder.rb
data_seeder-1.0.6 test/dummy/app/models/app_error_data_seeder.rb
data_seeder-1.0.5 test/dummy/app/models/app_error_data_seeder.rb
data_seeder-1.0.4 test/dummy/app/models/app_error_data_seeder.rb
data_seeder-1.0.3 test/dummy/app/models/app_error_data_seeder.rb