abroad 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/abroad.gemspec +1 -1
- data/lib/abroad/serializers/json/json_serializer.rb +1 -1
- data/lib/abroad/serializers/json/key_value_serializer.rb +22 -2
- data/lib/abroad/serializers/serializer.rb +9 -3
- data/lib/abroad/serializers/xml/xml_serializer.rb +1 -1
- data/lib/abroad/serializers/yaml/rails_serializer.rb +1 -1
- data/lib/abroad/serializers/yaml/yaml_serializer.rb +1 -1
- data/lib/abroad/version.rb +1 -1
- data/spec/serializers/json/key_value_serializer_spec.rb +1 -1
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9731caa5a7b93f80d4c645f1ba4dba2c4c5b67e2
         | 
| 4 | 
            +
              data.tar.gz: b1eb57a7cf845b3f5a3f5fd42a04cc41bffda129
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 91c0440e7e892a0d6125d804d8e53d75d3b2fe9b3435d853b35fcc01a21171d5b65135b55260c0b39a73b2ebfd40cdd6d0ab1e0aab364238a82e64f48cba170b
         | 
| 7 | 
            +
              data.tar.gz: 122b2a67fc231964aebf5a167845722138b3326caff0e9b84b3c3828cfa0f456c927be112d3abb57e2d6affe19bd115785ffaab3ca32d7ce60e2b82e2ec94338
         | 
    
        data/README.md
    CHANGED
    
    | @@ -88,7 +88,7 @@ Abroad.extractors  # => ["yaml/rails", "xml/android", ...] | |
| 88 88 | 
             
            While extractors pull strings out of localization files, serializers write them back in. Serializers conform to a similar interface, but offer different methods to write content out to the stream:
         | 
| 89 89 |  | 
| 90 90 | 
             
            ```ruby
         | 
| 91 | 
            -
            Abroad.serializer('yaml/rails').open('/path/to/es.yml') do |serializer|
         | 
| 91 | 
            +
            Abroad.serializer('yaml/rails').open('/path/to/es.yml', :es) do |serializer|
         | 
| 92 92 | 
             
              serializer.write_key_value('welcome.message', 'hola')
         | 
| 93 93 | 
             
              serializer.write_key_value('goodbye.message', 'adios')
         | 
| 94 94 | 
             
            end
         | 
| @@ -102,7 +102,7 @@ Here's an example with all the steps broken down: | |
| 102 102 |  | 
| 103 103 | 
             
            ```ruby
         | 
| 104 104 | 
             
            serializer_klass = Abroad.serializer('yaml/rails')
         | 
| 105 | 
            -
            serializer = serializer_klass.open('/path/to/es.yml')
         | 
| 105 | 
            +
            serializer = serializer_klass.open('/path/to/es.yml', :es)
         | 
| 106 106 | 
             
            serializer.write_key_value('welcome.message', 'hola')
         | 
| 107 107 | 
             
            serializer.write_key_value('goodbye.message', 'adios')
         | 
| 108 108 | 
             
            serializer.close
         | 
    
        data/abroad.gemspec
    CHANGED
    
    | @@ -15,7 +15,7 @@ Gem::Specification.new do |s| | |
| 15 15 |  | 
| 16 16 | 
             
              s.add_dependency 'htmlentities', '~> 4.0'
         | 
| 17 17 | 
             
              s.add_dependency 'json-stream', '~> 0.0'
         | 
| 18 | 
            -
              s.add_dependency 'json-write-stream', '~> 1. | 
| 18 | 
            +
              s.add_dependency 'json-write-stream', '~> 1.1'
         | 
| 19 19 | 
             
              s.add_dependency 'nokogiri', '~> 1.0'
         | 
| 20 20 | 
             
              s.add_dependency 'xml-write-stream', '~> 1.0'
         | 
| 21 21 | 
             
              s.add_dependency 'yaml-write-stream', '~> 1.0'
         | 
| @@ -3,16 +3,36 @@ module Abroad | |
| 3 3 | 
             
                module Json
         | 
| 4 4 |  | 
| 5 5 | 
             
                  class KeyValueSerializer < JsonSerializer
         | 
| 6 | 
            -
                     | 
| 6 | 
            +
                    DEFAULT_INDENT_SPACES = 4
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                    def initialize(stream, locale, options = {})
         | 
| 7 9 | 
             
                      super
         | 
| 8 10 | 
             
                      writer.write_object
         | 
| 9 11 | 
             
                    end
         | 
| 10 12 |  | 
| 11 13 | 
             
                    def write_key_value(key, value)
         | 
| 14 | 
            +
                      before = pretty? ? "\n#{' ' * indent_spaces}" : ''
         | 
| 15 | 
            +
             | 
| 12 16 | 
             
                      writer.write_key_value(
         | 
| 13 | 
            -
                        key.encode(encoding), value.encode(encoding)
         | 
| 17 | 
            +
                        key.encode(encoding), value.encode(encoding), before
         | 
| 14 18 | 
             
                      )
         | 
| 15 19 | 
             
                    end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                    def close
         | 
| 22 | 
            +
                      write_raw("\n") if pretty?
         | 
| 23 | 
            +
                      writer.close_object
         | 
| 24 | 
            +
                      super
         | 
| 25 | 
            +
                    end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                    private
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                    def indent_spaces
         | 
| 30 | 
            +
                      options.fetch(:indent_spaces, DEFAULT_INDENT_SPACES)
         | 
| 31 | 
            +
                    end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                    def pretty?
         | 
| 34 | 
            +
                      options.fetch(:pretty, true)
         | 
| 35 | 
            +
                    end
         | 
| 16 36 | 
             
                  end
         | 
| 17 37 |  | 
| 18 38 | 
             
                end
         | 
| @@ -2,7 +2,9 @@ module Abroad | |
| 2 2 | 
             
              module Serializers
         | 
| 3 3 |  | 
| 4 4 | 
             
                class Serializer
         | 
| 5 | 
            -
                   | 
| 5 | 
            +
                  DEFAULT_ENCODING = Encoding::UTF_8
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                  attr_reader :stream, :locale, :options
         | 
| 6 8 |  | 
| 7 9 | 
             
                  class << self
         | 
| 8 10 | 
             
                    def from_stream(stream, locale)
         | 
| @@ -22,10 +24,14 @@ module Abroad | |
| 22 24 | 
             
                    end
         | 
| 23 25 | 
             
                  end
         | 
| 24 26 |  | 
| 25 | 
            -
                  def initialize(stream, locale,  | 
| 27 | 
            +
                  def initialize(stream, locale, options = {})
         | 
| 26 28 | 
             
                    @stream = stream
         | 
| 27 29 | 
             
                    @locale = locale
         | 
| 28 | 
            -
                    @ | 
| 30 | 
            +
                    @options = options
         | 
| 31 | 
            +
                  end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  def encoding
         | 
| 34 | 
            +
                    options.fetch(:encoding, DEFAULT_ENCODING)
         | 
| 29 35 | 
             
                  end
         | 
| 30 36 |  | 
| 31 37 | 
             
                  def write_key_value(key, value)
         | 
| @@ -7,7 +7,7 @@ module Abroad | |
| 7 7 | 
             
                  class XmlSerializer < Serializer
         | 
| 8 8 | 
             
                    attr_reader :writer
         | 
| 9 9 |  | 
| 10 | 
            -
                    def initialize(stream, locale,  | 
| 10 | 
            +
                    def initialize(stream, locale, options = {})
         | 
| 11 11 | 
             
                      super
         | 
| 12 12 | 
             
                      @writer = XmlWriteStream.from_stream(stream)
         | 
| 13 13 | 
             
                      writer.write_header(encoding: encoding.to_s)
         | 
    
        data/lib/abroad/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: abroad
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 2.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Cameron Dutro
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016- | 
| 11 | 
            +
            date: 2016-05-20 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: htmlentities
         | 
| @@ -44,14 +44,14 @@ dependencies: | |
| 44 44 | 
             
                requirements:
         | 
| 45 45 | 
             
                - - "~>"
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: '1. | 
| 47 | 
            +
                    version: '1.1'
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - "~>"
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: '1. | 
| 54 | 
            +
                    version: '1.1'
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: nokogiri
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         |