Class: I18n::Migrations::Migration

Inherits:
Object
  • Object
show all
Defined in:
lib/i18n/migrations/migration.rb

Defined Under Namespace

Classes: Logger

Instance Method Summary collapse

Constructor Details

#initialize(translations:, locale_code:, dictionary:, direction: :up, logger: Logger.new) ⇒ Migration

translations = facade over translations locale = en | es | … dictionary = call dictionary.lookup(term) to get localized version of a term direction = :up | :down (up when migrating, down when rolling back)



18
19
20
21
# File 'lib/i18n/migrations/migration.rb', line 18

def initialize(translations:, locale_code:, dictionary:, direction: :up, logger: Logger.new)
  @translations, @locale_code, @dictionary, @direction, @logger =
      translations, locale_code, dictionary, direction, logger
end

Instance Method Details

#add(key, term, overrides = {}) ⇒ Object

Overrides can be provided, e.g. { es: ‘El foo de la barro’ }



24
25
26
27
28
29
30
31
32
# File 'lib/i18n/migrations/migration.rb', line 24

def add(key, term, overrides = {})
  if @direction == :up
    @logger.info "adding #{key}"
    _add key, term, overrides
  else
    @logger.info "unadding #{key}"
    _rm key
  end
end

#mv(old_key, new_key) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/i18n/migrations/migration.rb', line 34

def mv(old_key, new_key)
  if @direction == :up
    @logger.info "moving #{old_key} => #{new_key}"
    _mv old_key, new_key
  else
    @logger.info "moving back #{new_key} => #{old_key}"
    _mv new_key, old_key
  end
end

#rm(key, old_term, overrides = {}) ⇒ Object

Overrides can be provided, e.g. { es: ‘El foo de la barro’ }



45
46
47
48
49
50
51
52
53
# File 'lib/i18n/migrations/migration.rb', line 45

def rm(key, old_term, overrides = {})
  if @direction == :up
    @logger.info "removing #{key}"
    _rm key
  else
    @logger.info "unremoving #{key}"
    _add key, old_term, overrides
  end
end

#update(key, new_term, old_term, overrides = {}) ⇒ Object

Overrides can be provided, e.g. { es: ‘El foo de la barro’ }



56
57
58
59
60
61
62
63
64
# File 'lib/i18n/migrations/migration.rb', line 56

def update(key, new_term, old_term, overrides = {})
  if @direction == :up
    @logger.info "updating #{key}"
    _update key, new_term, overrides
  else
    @logger.info "unupdating #{key}"
    _update key, old_term, {}
  end
end