Sha256: 4efcf8f231baf144b6e31273b5955d06d5ab871a01b5c3c5c5611ece92508006

Contents?: true

Size: 1.08 KB

Versions: 158

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

require 'i18n'
require 'eac_ruby_utils/patches/class/common_constructor'
require 'eac_ruby_utils/patches/object/to_pathname'

module EacRubyUtils
  module Locales
    class FromGem
      class << self
        def include_all(i18n_obj = nil)
          ::Gem::Specification.each { |gemspec| new(gemspec, i18n_obj).include }
        end
      end

      LOCALES_DIR_SUBPATH = 'locale'
      LOCALES_FILES_GLOB_PATTERNS = %w[*.yaml *.yml].freeze

      common_constructor :gemspec, :i18n_obj, default: [nil] do
        self.i18n_obj ||= ::I18n
      end

      # @return [Boolean]
      delegate :exist?, to: :path

      # @return [Pathname, nil]
      def include
        return nil unless exist?

        ::I18n.load_path += paths_to_load.map(&:to_path)
        path
      end

      # @return [Pathname]
      def path
        gemspec.gem_dir.to_pathname.join(LOCALES_DIR_SUBPATH)
      end

      # @return [Pathname]
      def paths_to_load
        return [] unless exist?

        LOCALES_FILES_GLOB_PATTERNS.inject([]) { |a, e| a + path.glob(e) }
      end
    end
  end
end

Version data entries

158 entries across 158 versions & 3 rubygems

Version Path
eac_ruby_utils-0.95.3 lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.8.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.7.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.6.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.5.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_ruby_utils-0.95.2 lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.4.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
avm-tools-0.120.2 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
avm-tools-0.120.1 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
avm-tools-0.120.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
avm-tools-0.119.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
avm-tools-0.118.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
avm-tools-0.117.3 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
avm-tools-0.117.2 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_ruby_utils-0.95.1 lib/eac_ruby_utils/locales/from_gem.rb
avm-tools-0.117.1 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_ruby_utils-0.95.0 lib/eac_ruby_utils/locales/from_gem.rb
avm-tools-0.117.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb