Class: YARD::CLI::I18n

Inherits:
Yardoc show all
Defined in:
lib/yard/cli/i18n.rb

Overview

TODO:

Support msgminit and msgmerge features?

CLI command to support internationalization (a.k.a. i18n). I18n feature is based on gettext technology. This command generates .pot file from docstring and extra documentation.

Since:

  • 0.8.0

Instance Method Summary collapse

Constructor Details

#initializeI18n

Returns a new instance of I18n.

Since:

  • 0.8.0



14
15
16
17
# File 'lib/yard/cli/i18n.rb', line 14

def initialize
  super
  @options.serializer.basepath = "po/yard.pot"
end

Instance Method Details

#descriptionObject

Since:

  • 0.8.0



19
20
21
# File 'lib/yard/cli/i18n.rb', line 19

def description
  'Generates .pot file from source code and extra documentation'
end

#run(*args) ⇒ Object

Since:

  • 0.8.0



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/yard/cli/i18n.rb', line 23

def run(*args)
  if args.empty? || !args.first.nil?
    # fail early if arguments are not valid
    return unless parse_arguments(*args)
  end

  YARD.parse(files, excluded)

  serializer = options.serializer
  pot_file_path = Pathname.new(serializer.basepath).expand_path
  pot_file_dir_path, pot_file_basename = pot_file_path.split
  relative_base_path = Pathname.pwd.relative_path_from(pot_file_dir_path)
  serializer.basepath = pot_file_dir_path.to_s
  serializer.serialize(pot_file_basename.to_s,
                       generate_pot(relative_base_path.to_s))

  true
end