slate_serializer 0.4.1 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3806195f92b4bf924909097333ce76c2b01c75d7449acf1bf3535d56ceccf2a9
4
- data.tar.gz: 96a080e5391b8da26a515cc6105c809d4f97f19e2de2b2e4e9bba8028fe9057b
3
+ metadata.gz: ad1313f396bb1a55f67bb82b73ed8e07fee411e0d3da02a79efa418c99757fac
4
+ data.tar.gz: b48b2ff038ba8d98cdbe85c58c48f647a09df79fde78e512aed2a64ba4dda1b6
5
5
  SHA512:
6
- metadata.gz: 1379051be73a9be29a44acbc6006398cc14974f18c35e7aa8e107e71314d81986a6dcce15ff811d46c1f79f3f1d8ee028a1c397f78e54aa848cdf3945c4e34c5
7
- data.tar.gz: 6ae6078a05aa8a89c27315504d5ab55dfc523b8b0ebf2e9551998322066ac30d07876f75c708b58db854d1161ea7c02ea194cf5a4b40ae3961d9f96283eef188
6
+ metadata.gz: e8fa0dcb749d81b4f0685ee818ac9c0d8a4d61dba35def25b59b1c7d117ed4d56f3343b8c6fabd85c87112715ac8a096e416ff4aa45fc36bd858a0b1db09ad87
7
+ data.tar.gz: fb0865d8ea46b17bd189711e54896bd3b4fa19e53168cdcdf45c396a89340d5193b57db4afa34b44d9872ab83e9a636ca3193973b9dc0e98b5cd9707123f90e4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- slate_serializer (0.4.0)
4
+ slate_serializer (0.5.0)
5
5
  nokogiri (~> 1.10)
6
6
 
7
7
  GEM
@@ -9,22 +9,22 @@ GEM
9
9
  specs:
10
10
  diff-lcs (1.3)
11
11
  mini_portile2 (2.4.0)
12
- nokogiri (1.10.4)
12
+ nokogiri (1.10.8)
13
13
  mini_portile2 (~> 2.4.0)
14
14
  rake (10.5.0)
15
- rspec (3.8.0)
16
- rspec-core (~> 3.8.0)
17
- rspec-expectations (~> 3.8.0)
18
- rspec-mocks (~> 3.8.0)
19
- rspec-core (3.8.0)
20
- rspec-support (~> 3.8.0)
21
- rspec-expectations (3.8.3)
15
+ rspec (3.9.0)
16
+ rspec-core (~> 3.9.0)
17
+ rspec-expectations (~> 3.9.0)
18
+ rspec-mocks (~> 3.9.0)
19
+ rspec-core (3.9.1)
20
+ rspec-support (~> 3.9.1)
21
+ rspec-expectations (3.9.0)
22
22
  diff-lcs (>= 1.2.0, < 2.0)
23
- rspec-support (~> 3.8.0)
24
- rspec-mocks (3.8.0)
23
+ rspec-support (~> 3.9.0)
24
+ rspec-mocks (3.9.1)
25
25
  diff-lcs (>= 1.2.0, < 2.0)
26
- rspec-support (~> 3.8.0)
27
- rspec-support (3.8.0)
26
+ rspec-support (~> 3.9.0)
27
+ rspec-support (3.9.2)
28
28
 
29
29
  PLATFORMS
30
30
  ruby
@@ -35,7 +35,7 @@ module SlateSerializer
35
35
  }.freeze
36
36
 
37
37
  class << self
38
- # Convert html to a Slare document
38
+ # Convert html to a Slate document
39
39
  #
40
40
  # @param html format [String] the HTML
41
41
  # @param options [Hash]
@@ -64,6 +64,16 @@ module SlateSerializer
64
64
  }
65
65
  end
66
66
 
67
+ # Convert html to a Slate document
68
+ #
69
+ # @param value format [Hash] the Slate document
70
+ # @return [String] plain text version of the Slate documnent
71
+ def serializer(value)
72
+ return '' unless value.key?(:document)
73
+
74
+ serialize_node(value[:document])
75
+ end
76
+
67
77
  private
68
78
 
69
79
  attr_accessor :elements, :block_elements, :inline_elements, :mark_elements
@@ -177,6 +187,26 @@ module SlateSerializer
177
187
  }
178
188
  }
179
189
  end
190
+
191
+ def serialize_node(node)
192
+ if node[:object] == 'document'
193
+ node[:nodes].map { |n| serialize_node(n) }.join
194
+ elsif node[:object] == 'block'
195
+ children = node[:nodes].map { |n| serialize_node(n) }.join
196
+
197
+ element = ELEMENTS.find { |_, v| v == node[:type] }[0]
198
+ data = node[:data].map { |k, v| "#{k}=\"#{v}\"" }
199
+
200
+ if %i[ol1 ola].include?(element)
201
+ data << ["type=\"#{element.to_s[-1]}\""]
202
+ element = :ol
203
+ end
204
+
205
+ "<#{element}#{!data.empty? ? " #{data.join(' ')}" : ''}>#{children}</#{element}>"
206
+ else
207
+ node[:text]
208
+ end
209
+ end
180
210
  end
181
211
  end
182
212
  end
@@ -1,3 +1,3 @@
1
1
  module SlateSerializer
2
- VERSION = '0.4.1'.freeze
2
+ VERSION = '0.5.0'.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: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wesley Stam
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-02 00:00:00.000000000 Z
11
+ date: 2020-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri