lib/i18n/tasks/data_traversal.rb in i18n-tasks-0.2.1 vs lib/i18n/tasks/data_traversal.rb in i18n-tasks-0.2.2

- old
+ new

@@ -1,13 +1,18 @@ module I18n::Tasks::DataTraversal # translation of the key found in the passed hash or nil # @return [String,nil] def t(hash = data[base_locale], key) + if hash.is_a?(String) + # has is a locale + raise ArgumentError.new("invalid locale: #{hash}") if hash =~ /\W/ + hash = data[hash] + end key.split('.').inject(hash) { |r, seg| r[seg] if r } end - # traverse => flat_map - def traverse_flat_map(hash) + # traverse => map if yield(k, v) + def traverse_map_if(hash) list = [] traverse hash do |k, v| mapped = yield(k, v) list << mapped if mapped end \ No newline at end of file