Sha256: 122dc130c235b28ab78b85bed309b063e666e33f7802577b82efbd653c1d5f76

Contents?: true

Size: 998 Bytes

Versions: 2

Compression:

Stored size: 998 Bytes

Contents

class AwesomeTranslations::Handlers::BaseHandler
  def add_translations_for_hash(dir, group, yielder, hash)
    translations_for_hash_recursive(dir, hash[:translations], yielder, [])
  end

  def translations_for_hash_recursive(dir, hash, yielder, current_keys)
    hash.each do |key, value|
      current_keys << key

      if value.is_a?(Hash)
        translations_for_hash_recursive(dir, value, yielder, current_keys)
      elsif value.is_a?(Array)
        value.each_index do |index|
          yielder << AwesomeTranslations::Translation.new(
            dir: dir,
            key: "#{current_keys.join('.')}[#{index}]",
            key_show: "#{current_keys.join('.')}[#{index}]"
          )
        end
      else
        yielder << AwesomeTranslations::Translation.new(
          dir: dir,
          key: current_keys.join('.'),
          key_show: current_keys.join('.'),
          default: value
        )
      end

      current_keys.pop
    end
  end

  def enabled?
    true
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
awesome_translations-0.0.25 lib/awesome_translations/handlers/base_handler.rb
awesome_translations-0.0.24 lib/awesome_translations/handlers/base_handler.rb