lib/yard/i18n/po_parser.rb in yard-0.9.16 vs lib/yard/i18n/po_parser.rb in yard-0.9.17

- old
+ new

@@ -1,61 +1,61 @@ -# frozen_string_literal: true -module YARD - module I18n - # +Locale+ is a wrapper for gettext's PO parsing feature. It hides - # gettext API difference from YARD. - # - # @since 0.8.8 - class POParser - if RUBY_VERSION < "1.9" - begin - require "gettext/tools/poparser" - require "gettext/runtime/mofile" - @@gettext_version = 2 - rescue LoadError - log.warn "Need gettext gem 2.x for i18n feature:\n" \ - "\tgem install gettext -v 2.3.9" - end - else - begin - require "gettext/po_parser" - require "gettext/mo" - @@gettext_version = 3 - rescue LoadError - begin - require "gettext/tools/poparser" - require "gettext/runtime/mofile" - @@gettext_version = 2 - rescue LoadError - log.warn "Need gettext gem for i18n feature:\n" \ - "\tgem install gettext" - end - end - end - - class << self - # @return [Boolean] true if gettext is available, false otherwise. - def available? - !@@gettext_version.nil? - end - end - - # Parses PO file. - # - # @param [String] file path of PO file to be parsed. - # @return [Hash<String, String>] parsed messages. - def parse(file) - case @@gettext_version - when 2 - parser = GetText::PoParser.new - data = GetText::MoFile.new - when 3 - parser = GetText::POParser.new - data = GetText::MO.new - end - parser.report_warning = false - parser.parse_file(file, data) - data - end - end - end -end +# frozen_string_literal: true +module YARD + module I18n + # +Locale+ is a wrapper for gettext's PO parsing feature. It hides + # gettext API difference from YARD. + # + # @since 0.8.8 + class POParser + if RUBY_VERSION < "1.9" + begin + require "gettext/tools/poparser" + require "gettext/runtime/mofile" + @@gettext_version = 2 + rescue LoadError + log.warn "Need gettext gem 2.x for i18n feature:\n" \ + "\tgem install gettext -v 2.3.9" + end + else + begin + require "gettext/po_parser" + require "gettext/mo" + @@gettext_version = 3 + rescue LoadError + begin + require "gettext/tools/poparser" + require "gettext/runtime/mofile" + @@gettext_version = 2 + rescue LoadError + log.warn "Need gettext gem for i18n feature:\n" \ + "\tgem install gettext" + end + end + end + + class << self + # @return [Boolean] true if gettext is available, false otherwise. + def available? + !@@gettext_version.nil? + end + end + + # Parses PO file. + # + # @param [String] file path of PO file to be parsed. + # @return [Hash<String, String>] parsed messages. + def parse(file) + case @@gettext_version + when 2 + parser = GetText::PoParser.new + data = GetText::MoFile.new + when 3 + parser = GetText::POParser.new + data = GetText::MO.new + end + parser.report_warning = false + parser.parse_file(file, data) + data + end + end + end +end