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.117.1 lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.69.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.68.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.67.1 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_ruby_utils-0.117.0 lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.67.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.66.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.65.1 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_ruby_utils-0.116.0 lib/eac_ruby_utils/locales/from_gem.rb
eac_ruby_utils-0.115.0 lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.65.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_ruby_utils-0.114.0 lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.64.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_ruby_utils-0.113.0 lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.63.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.62.1 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.62.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.61.1 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.61.0 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
eac_tools-0.60.3 sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb