Sha256: f3917f6912350822ce0a79ff7aa854c554e6426ad4e43c8cc2f3a2dea81fc761

Contents?: true

Size: 1.16 KB

Versions: 28

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

require 'singleton'
require_relative 'lang'
require_relative '../application'

##
# LangFactory singleton class.
# * Read all language codes defined into configuration file
# * and load every language
# Lang objects are reused
class LangFactory
  include Singleton

  ##
  # Read all language codes from configuration file and load every language
  def initialize
    @default = Application.instance.config['languages']['default'].downcase
    @langs = {}
    Application.instance.config['languages'].each_pair do |key, value|
      code = key.downcase
      next if code == 'default'

      @langs[code] = Lang.new(code) if value.downcase == 'yes'
    end
  end

  ##
  # Return Lang object associated to code
  # @param code (String)
  def get(code)
    return @langs[code] unless @langs[code].nil?

    puts Rainbow("[ERROR] Unkown Lang code: #{code}").bright
    puts Rainbow('        => Change input file code lang').bright
    puts Rainbow('        => Revise configuration from config.ini').bright
    puts Rainbow('        => Revise template files').bright
    exit 1
  end

  ##
  # Return default Lang object
  def default
    get(@default)
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
asker-tool-2.6.0 lib/asker/lang/lang_factory.rb
asker-tool-2.5.9 lib/asker/lang/lang_factory.rb
asker-tool-2.5.8 lib/asker/lang/lang_factory.rb
asker-tool-2.5.7 lib/asker/lang/lang_factory.rb
asker-tool-2.5.6 lib/asker/lang/lang_factory.rb
asker-tool-2.5.5 lib/asker/lang/lang_factory.rb
asker-tool-2.5.4 lib/asker/lang/lang_factory.rb
asker-tool-2.5.3 lib/asker/lang/lang_factory.rb
asker-tool-2.5.2 lib/asker/lang/lang_factory.rb
asker-tool-2.5.1 lib/asker/lang/lang_factory.rb
asker-tool-2.5.0 lib/asker/lang/lang_factory.rb
asker-tool-2.4.5 lib/asker/lang/lang_factory.rb
asker-tool-2.4.4 lib/asker/lang/lang_factory.rb
asker-tool-2.4.3 lib/asker/lang/lang_factory.rb
asker-tool-2.4.2 lib/asker/lang/lang_factory.rb
asker-tool-2.4.1 lib/asker/lang/lang_factory.rb
asker-tool-2.4.0 lib/asker/lang/lang_factory.rb
asker-tool-2.3.4 lib/asker/lang/lang_factory.rb
asker-tool-2.3.3 lib/asker/lang/lang_factory.rb
asker-tool-2.3.2 lib/asker/lang/lang_factory.rb