slacken 0.1.5 → 0.1.6
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eff0971741bcd8f34f1a50df9351cd804e485620
|
4
|
+
data.tar.gz: 42b10defb2d8676b9f50bf516208562391c054c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6dd32be590dbfb6f46c29d0499c858f4274e56c1fdd623f6ee202ebce8c17d59632c1dc7fa3979257bbf1aeb85a51f791bbeb195447e16a8a5ffafaed3b468bd
|
7
|
+
data.tar.gz: d5a47134c8b6bea5e35f5fb97dc9c4b6892e6edd5a0da1f186486e6bfa2facf7eda4f0c620e4cebdeea44cc22590c4096db3b68e8e712faa299c44c6ddf83cb9
|
@@ -9,6 +9,7 @@ module Slacken
|
|
9
9
|
NORMALIZE_FILTERS = [
|
10
10
|
Filters::StringfyEmoji,
|
11
11
|
Filters::StringfyCheckbox,
|
12
|
+
Filters::ReplaceUnsupportedImgs,
|
12
13
|
Filters::ExtractImgAlt,
|
13
14
|
Filters::ElimInvalidLinks,
|
14
15
|
Filters::SanitizeHeadline,
|
@@ -68,5 +69,13 @@ module Slacken
|
|
68
69
|
RenderElement.new(type, children.map(&:produce_element), attrs)
|
69
70
|
end
|
70
71
|
end
|
72
|
+
|
73
|
+
def ==(other)
|
74
|
+
other.instance_of?(self.class) &&
|
75
|
+
type.name == other.type.name &&
|
76
|
+
attrs == other.attrs &&
|
77
|
+
marks == other.marks &&
|
78
|
+
children == other.children
|
79
|
+
end
|
71
80
|
end
|
72
81
|
end
|
data/lib/slacken/filters.rb
CHANGED
@@ -11,6 +11,7 @@ require 'slacken/filters/elim_line_breaks'
|
|
11
11
|
require 'slacken/filters/extract_img_alt'
|
12
12
|
require 'slacken/filters/group_inlines'
|
13
13
|
require 'slacken/filters/group_indent'
|
14
|
+
require 'slacken/filters/replace_unsupported_imgs'
|
14
15
|
require 'slacken/filters/sanitize_headline'
|
15
16
|
require 'slacken/filters/sanitize_link'
|
16
17
|
require 'slacken/filters/sanitize_list'
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Slacken::Filters
|
2
|
+
# Public: Replace unsupported images by placeholder.
|
3
|
+
class ReplaceUnsupportedImgs < Slacken::Filter
|
4
|
+
def call(component)
|
5
|
+
if img_with_data_uri?(component)
|
6
|
+
component.class.new(
|
7
|
+
:text, [], content: '<img src="data:...">'
|
8
|
+
)
|
9
|
+
else
|
10
|
+
component.derive(
|
11
|
+
component.children.map(&method(:call)),
|
12
|
+
)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def img_with_data_uri?(component)
|
19
|
+
component.type.member_of?(:img) &&
|
20
|
+
(component.attrs[:src] || '') =~ /^data:/i
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/slacken/version.rb
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slacken::Filters::ReplaceUnsupportedImgs, dsl: true do
|
4
|
+
describe '#call' do
|
5
|
+
subject { described_class.new.call(component) }
|
6
|
+
|
7
|
+
context 'when a supported img is given' do
|
8
|
+
let(:component) do
|
9
|
+
c(:img, src: 'http://example.com/example.png')
|
10
|
+
end
|
11
|
+
|
12
|
+
it { is_expected.to eq component }
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'when an unsupported img is given' do
|
16
|
+
let(:component) do
|
17
|
+
c(:img, src: 'data:image/png;base64,ZXhhbXBsZQo=')
|
18
|
+
end
|
19
|
+
|
20
|
+
let(:placeholder) do
|
21
|
+
text('<img src="data:...">')
|
22
|
+
end
|
23
|
+
|
24
|
+
it { is_expected.to eq placeholder }
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'when a given component is not an img' do
|
28
|
+
let(:component) do
|
29
|
+
text('text')
|
30
|
+
end
|
31
|
+
|
32
|
+
it { is_expected.to eq component }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slacken
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomoya Chiba
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-06-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -151,6 +151,7 @@ files:
|
|
151
151
|
- lib/slacken/filters/extract_img_alt.rb
|
152
152
|
- lib/slacken/filters/group_indent.rb
|
153
153
|
- lib/slacken/filters/group_inlines.rb
|
154
|
+
- lib/slacken/filters/replace_unsupported_imgs.rb
|
154
155
|
- lib/slacken/filters/sanitize_headline.rb
|
155
156
|
- lib/slacken/filters/sanitize_link.rb
|
156
157
|
- lib/slacken/filters/sanitize_list.rb
|
@@ -174,6 +175,7 @@ files:
|
|
174
175
|
- spec/slacken/filters/elim_line_breaks_spec.rb
|
175
176
|
- spec/slacken/filters/group_indent_spec.rb
|
176
177
|
- spec/slacken/filters/group_inlines_spec.rb
|
178
|
+
- spec/slacken/filters/replace_unsupported_imgs_spec.rb
|
177
179
|
- spec/slacken/filters/sanitize_headline_spec.rb
|
178
180
|
- spec/slacken/filters/sanitize_link_spec.rb
|
179
181
|
- spec/slacken/filters/sanitize_list_spec.rb
|
@@ -200,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
202
|
version: '0'
|
201
203
|
requirements: []
|
202
204
|
rubyforge_project:
|
203
|
-
rubygems_version: 2.
|
205
|
+
rubygems_version: 2.6.11
|
204
206
|
signing_key:
|
205
207
|
specification_version: 4
|
206
208
|
summary: Translate HTML sources to markup texts for slack
|
@@ -214,6 +216,7 @@ test_files:
|
|
214
216
|
- spec/slacken/filters/elim_line_breaks_spec.rb
|
215
217
|
- spec/slacken/filters/group_indent_spec.rb
|
216
218
|
- spec/slacken/filters/group_inlines_spec.rb
|
219
|
+
- spec/slacken/filters/replace_unsupported_imgs_spec.rb
|
217
220
|
- spec/slacken/filters/sanitize_headline_spec.rb
|
218
221
|
- spec/slacken/filters/sanitize_link_spec.rb
|
219
222
|
- spec/slacken/filters/sanitize_list_spec.rb
|