slate_serializer 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e0d368c4f9ece2f7c15b7c102c0acc49b1fe67f4e9cc3d1922ab7d7b699f3ce
4
- data.tar.gz: 3d07a16a0b6d42a4f28bd57345f8292768d1ac0724ffdd74f7b0f96d6471c47c
3
+ metadata.gz: a3d7bf4b8b234e48ffa65c0c0450c016eba2b7fcd9746d3f28a4b9c84e7494a2
4
+ data.tar.gz: 4b8531a21dd1b2214ec96db7cf2a4f879d590a3b0e591d4b73ea005c4af1cee4
5
5
  SHA512:
6
- metadata.gz: dd6041f7ff0b33d392cd91433cd30218c46c96d1de2c5567c87cc7b69ca6f268a3572d6212a0d31d5323be78293feaaf021eb645cdc552f8b865f58d0d2c6d14
7
- data.tar.gz: 5404eae54b4fe2db6c2037c26c32cd9ac86d12056141df8eab73a0eb7b3a04a46565bdc9ca5693b3bd0db35d37f19dfd6bbca56de5c02dc4ba219a60e0a49910
6
+ metadata.gz: 7cb323755b006c9582cb0aa2e1689ab4d26df6ca7f4c72ca57071aeacd286f8c73e77de6a6fccdb6c641bf92e057e25733a060fffd0e396b55381890b25c5cd5
7
+ data.tar.gz: 5cbe1d53c9cbd8a5d3c12d706645a878f66ab43eb4616cf4f6ffa4c862945c53b6105e1e488727adc496eed166e45745aa411594e344282f6c42ec999c695373
data/Gemfile.lock CHANGED
@@ -1,32 +1,32 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- slate_serializer (0.5.1)
4
+ slate_serializer (1.0.1)
5
5
  nokogiri (~> 1.11)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- diff-lcs (1.4.4)
11
- mini_portile2 (2.5.1)
12
- nokogiri (1.11.5)
13
- mini_portile2 (~> 2.5.0)
10
+ diff-lcs (1.5.1)
11
+ mini_portile2 (2.8.5)
12
+ nokogiri (1.16.2)
13
+ mini_portile2 (~> 2.8.2)
14
14
  racc (~> 1.4)
15
- racc (1.5.2)
16
- rake (13.0.3)
17
- rspec (3.10.0)
18
- rspec-core (~> 3.10.0)
19
- rspec-expectations (~> 3.10.0)
20
- rspec-mocks (~> 3.10.0)
21
- rspec-core (3.10.1)
22
- rspec-support (~> 3.10.0)
23
- rspec-expectations (3.10.1)
15
+ racc (1.7.3)
16
+ rake (13.1.0)
17
+ rspec (3.13.0)
18
+ rspec-core (~> 3.13.0)
19
+ rspec-expectations (~> 3.13.0)
20
+ rspec-mocks (~> 3.13.0)
21
+ rspec-core (3.13.0)
22
+ rspec-support (~> 3.13.0)
23
+ rspec-expectations (3.13.0)
24
24
  diff-lcs (>= 1.2.0, < 2.0)
25
- rspec-support (~> 3.10.0)
26
- rspec-mocks (3.10.2)
25
+ rspec-support (~> 3.13.0)
26
+ rspec-mocks (3.13.0)
27
27
  diff-lcs (>= 1.2.0, < 2.0)
28
- rspec-support (~> 3.10.0)
29
- rspec-support (3.10.2)
28
+ rspec-support (~> 3.13.0)
29
+ rspec-support (3.13.1)
30
30
 
31
31
  PLATFORMS
32
32
  ruby
@@ -71,6 +71,8 @@ module SlateSerializer
71
71
  def serializer(value)
72
72
  return '' unless value.key?(:document)
73
73
 
74
+ self.mark_elements = MARK_ELEMENTS.invert
75
+
74
76
  serialize_node(value[:document])
75
77
  end
76
78
 
@@ -121,7 +123,7 @@ module SlateSerializer
121
123
  nodes = []
122
124
  mark = convert_name_to_mark(element.name)
123
125
 
124
- if element.class == Nokogiri::XML::Element
126
+ if element.instance_of?(Nokogiri::XML::Element)
125
127
  element.children.each do |child|
126
128
  nodes << element_to_text(child, mark)
127
129
  end
@@ -189,9 +191,10 @@ module SlateSerializer
189
191
  end
190
192
 
191
193
  def serialize_node(node)
192
- if node[:object] == 'document'
194
+ case node[:object]
195
+ when 'document'
193
196
  node[:nodes].map { |n| serialize_node(n) }.join
194
- elsif node[:object] == 'block'
197
+ when 'block'
195
198
  children = node[:nodes].map { |n| serialize_node(n) }.join
196
199
 
197
200
  element = ELEMENTS.find { |_, v| v == node[:type] }[0]
@@ -204,7 +207,13 @@ module SlateSerializer
204
207
 
205
208
  "<#{element}#{!data.empty? ? " #{data.join(' ')}" : ''}>#{children}</#{element}>"
206
209
  else
207
- node[:text]
210
+ if node[:marks].nil? || node[:marks].empty?
211
+ node[:text]
212
+ else
213
+ elements = node[:marks].map { |m| mark_elements[m[:type]] }
214
+ marks = elements.map { |m| "<#{m}>" }.join
215
+ "#{marks}#{node[:text]}#{elements.map { |m| "</#{m}>" }.join}"
216
+ end
208
217
  end
209
218
  end
210
219
  end
@@ -1,3 +1,3 @@
1
1
  module SlateSerializer
2
- VERSION = '1.0.0'.freeze
2
+ VERSION = '1.0.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slate_serializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wesley Stam
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-20 00:00:00.000000000 Z
11
+ date: 2024-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri