Sha256: fa5228ddf85516356215e75d4a89b2dfb57a48253e634bf380df5ff3a31e22b1

Contents?: true

Size: 886 Bytes

Versions: 1

Compression:

Stored size: 886 Bytes

Contents

require 'yaml'
module BabelI18n
  class Adapter

    attr_accessor :response, :from, :to, :key

    def initialize(path, to, key)
      data = YAML::load_file(path)
      @from = BabelI18n::Adapter.get_language_by(data)
      @response = BabelI18n::Adapter.get_response(data)
      @to = to
      @key = key
    end

    def convert
      new_response = {}
      @response.each do |key, value|
        convert(value) if value.is_a?(Hash)
        new_response[key] = BabelI18n::Base.new(value, @key).from(@from).to(@to).translate
      end
      new_response
    end

    def converted
      { @to => convert }
    end

    def write_file
      File.open("#{@to}.yml", "w") { |f| f.write converted.to_yaml }
    end

    protected

    def self.get_language_by(data)
      data.keys[0]
    end

    def self.get_response(data)
      data.delete(get_language_by(data))
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
babel_i18n-0.0.2 lib/babel_i18n/adapter.rb