module I18n::Tasks::Command::Options::Data
Constants
- DATA_FORMATS
- OUT_FORMATS
Public Instance Methods
forest_pos_or_stdin!(opt, format = opt[:format])
click to toggle source
@return [I18n::Tasks::Data::Tree::Siblings]
# File lib/i18n/tasks/command/options/data.rb, line 36 def forest_pos_or_stdin!(opt, format = opt[:format]) parse_forest(pos_or_stdin!(opt), format) end
forests_stdin_and_pos!(opt, num = false, format = opt[:format])
click to toggle source
@return [Array<I18n::Tasks::Data::Tree::Siblings>] trees read from stdin and positional arguments
# File lib/i18n/tasks/command/options/data.rb, line 41 def forests_stdin_and_pos!(opt, num = false, format = opt[:format]) args = opt[:arguments] || [] if opt[:nostdin] sources = [] else sources = [$stdin.read] num -= 1 if num end if num num.times { sources << args.shift } else sources += args args.clear end sources.map { |src| parse_forest(src, format) } end
merge_forests_stdin_and_pos!(opt)
click to toggle source
# File lib/i18n/tasks/command/options/data.rb, line 58 def merge_forests_stdin_and_pos!(opt) forests_stdin_and_pos!(opt).inject(i18n.empty_forest) do |result, forest| result.merge! forest end end
parse_forest(src, format)
click to toggle source
@return [I18n::Tasks::Data::Tree::Siblings]
# File lib/i18n/tasks/command/options/data.rb, line 65 def parse_forest(src, format) fail CommandError, I18n.t('i18n_tasks.cmd.errors.pass_forest') unless src if format == 'keys' ::I18n::Tasks::Data::Tree::Siblings.from_key_names parse_keys(src) else ::I18n::Tasks::Data::Tree::Siblings.from_nested_hash i18n.data.adapter_parse(src, format) end end
parse_keys(src)
click to toggle source
# File lib/i18n/tasks/command/options/data.rb, line 75 def parse_keys(src) Array(src).compact.flat_map { |v| v.strip.split(/\s*[,\s\n]\s*/) }.map(&:presence).compact end
print_forest(forest, opts, version = :show_tree)
click to toggle source
# File lib/i18n/tasks/command/options/data.rb, line 79 def print_forest(forest, opts, version = :show_tree) format = opts[:format].to_s case format when 'terminal-table' terminal_report.send(version, forest) when 'inspect' puts forest.inspect when 'keys' puts forest.key_names(root: true) when *DATA_FORMATS puts i18n.data.adapter_dump forest.to_hash(true), format end end