Module: I18n::Processes::Command::Commands::Tree

Includes:
I18n::Processes::Command::Collection, KeyPatternMatching
Included in:
I18n::Processes::Commands
Defined in:
lib/i18n/processes/command/commands/tree.rb

Constant Summary

Constants included from KeyPatternMatching

KeyPatternMatching::MATCH_NOTHING

Instance Method Summary collapse

Methods included from KeyPatternMatching

compile_key_pattern, compile_patterns_re, key_pattern_re_body

Methods included from I18n::Processes::Command::Collection

included

Instance Method Details

#tree_convert(opt = {}) ⇒ Object



112
113
114
115
# File 'lib/i18n/processes/command/commands/tree.rb', line 112

def tree_convert(opt = {})
  forest = forest_pos_or_stdin! opt.merge(format: opt[:from])
  print_forest forest, opt.merge(format: opt[:to])
end

#tree_filter(opts = {}) ⇒ Object



35
36
37
38
39
40
41
42
43
# File 'lib/i18n/processes/command/commands/tree.rb', line 35

def tree_filter(opts = {})
  pattern = arg_or_pos! :pattern, opts
  forest  = forest_pos_or_stdin! opts
  unless pattern.blank?
    pattern_re = i18n.compile_key_pattern(pattern)
    forest     = forest.select_keys { |full_key, _node| full_key =~ pattern_re }
  end
  print_forest forest, opts
end

#tree_merge(opts = {}) ⇒ Object



26
27
28
# File 'lib/i18n/processes/command/commands/tree.rb', line 26

def tree_merge(opts = {})
  print_forest merge_forests_stdin_and_pos!(opts), opts
end

#tree_mv(opt = {}) ⇒ Object



72
73
74
75
76
77
78
79
# File 'lib/i18n/processes/command/commands/tree.rb', line 72

def tree_mv(opt = {})
  fail CommandError, 'requires FROM_KEY_PATTERN and TO_KEY_PATTERN' if opt[:arguments].size < 2
  from_pattern = opt[:arguments].shift
  to_pattern = opt[:arguments].shift
  forest = forest_pos_or_stdin!(opt)
  forest.mv_key!(compile_key_pattern(from_pattern), to_pattern, root: !opt[:'all-locales'])
  print_forest forest, opt
end

#tree_rename_key(opt = {}) ⇒ Object



52
53
54
55
56
57
58
59
60
61
# File 'lib/i18n/processes/command/commands/tree.rb', line 52

def tree_rename_key(opt = {})
  warn_deprecated 'Use tree-mv instead.'
  key    = arg_or_pos! :key, opt
  name   = arg_or_pos! :name, opt
  forest = forest_pos_or_stdin! opt
  fail CommandError, 'pass full key to rename (-k, --key)' if key.blank?
  fail CommandError, 'pass new name (-n, --name)' if name.blank?
  forest.rename_each_key!(key, name)
  print_forest forest, opt
end

#tree_set_value(opt = {}) ⇒ Object



97
98
99
100
101
102
103
104
# File 'lib/i18n/processes/command/commands/tree.rb', line 97

def tree_set_value(opt = {})
  value       = arg_or_pos! :value, opt
  forest      = forest_pos_or_stdin!(opt)
  key_pattern = opt[:pattern]
  fail CommandError, 'pass value (-v, --value)' if value.blank?
  forest.set_each_value!(value, key_pattern)
  print_forest forest, opt
end

#tree_subtract(opt = {}) ⇒ Object



86
87
88
89
90
# File 'lib/i18n/processes/command/commands/tree.rb', line 86

def tree_subtract(opt = {})
  forests = forests_stdin_and_pos! opt, 2
  forest  = forests.reduce(:subtract_by_key) || empty_forest
  print_forest forest, opt
end

#tree_translate(opts = {}) ⇒ Object



16
17
18
19
# File 'lib/i18n/processes/command/commands/tree.rb', line 16

def tree_translate(opts = {})
  forest = forest_pos_or_stdin!(opts)
  print_forest i18n.google_translate_forest(forest, opts[:from]), opts
end