abroad 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|