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
|