Sha256: 1534c2e6c644f49a7dfc93d5c634f0a62881b6a10c6d8419de5de198d1ca8251

Contents?: true

Size: 1.19 KB

Versions: 4

Compression:

Stored size: 1.19 KB

Contents

# Populates db with units of measure.
class PopulateOkeiCorrectors < ActiveRecord::Migration

  # reloads units and their uuids from db/seed/units.json
  def up
    return if Rails.env.test?
    down
    bases.each { |name, klass| populate name, klass }
  end

  # deletes all units with their uuids.
  def down
    return if Rails.env.test?
    bases.each { |name, klass| clear name, klass }
  end

  private

  def clear(name, klass)
    list = klass.by_scope("okei")
    say_with_time "Removing #{ list.count } #{ name }" do
      list.delete_all
      left = list.count
      fail "#{ left } #{ name } left undeleted" if left > 0
    end
  end

  def populate(name, klass)
    list = JSON.parse(File.read File.join(seeds, "#{ name }.json"))
    say_with_time "Adding #{ list.count } #{ name }" do
      list.each { |from, to| klass.create! scope: "okei", from: from, to: to }
    end
  end

  def bases
    @bases ||= {
      words: Corrector::Word,
      phrases: Corrector::Phrase,
      prefixes: Corrector::Prefix
    }
  end

  # Returns json seeds folder
  def seeds
    @seeds ||= begin
      root = File.dirname File.dirname(Okei::Engine.called_from)
      File.join(root, "db", "seeds")
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
okei-1.0.2 db/migrate/20141019072902_populate_okei_correctors.rb
okei-1.0.1 db/migrate/20141019072902_populate_okei_correctors.rb
okei-1.0.0 db/migrate/20141019072902_populate_okei_correctors.rb
okei-1.0.0.pre.rc db/migrate/20141019072902_populate_okei_correctors.rb