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