Method: I18n::Processes::Data::FileSystemBase#set

Defined in:
lib/i18n/processes/data/file_system_base.rb

#set(locale, tree) ⇒ Object Also known as: []=

set locale tree

Parameters:

  • locale (String, Symbol)
  • tree (::I18n::Processes::Data::Siblings)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/i18n/processes/data/file_system_base.rb', line 56

def set(locale, tree)
  locale = locale.to_s
  @trees.delete(locale) if @trees
  paths_before = Set.new(get(locale)[locale].leaves.map { |node| node.data[:path] })
  paths_after = Set.new([])
  # $stderr.puts Rainbow("locale: #{locale}").green
  # $stderr.puts Rainbow("tree: #{tree.class}").green
  router.route locale, tree do |path, tree_slice|
    paths_after << path
    write_tree path, tree_slice
  end
  (paths_before - paths_after).each do |path|
    FileUtils.remove_file(path) if File.exist?(path)
  end
  @trees.delete(locale) if @trees
  @available_locales = nil
end