chat_sdk 0.7.0 → 0.8.1

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: c77652a1dd0d10f871c4069d8d592f040c457c3b2917d21fb1dc61606df3d138
4
- data.tar.gz: 6c763663debb3b6dc747c55df1f7b35fdd84537449f205d031a53ac61335e11d
3
+ metadata.gz: 72dfd997ec76dcc51b3011fc0edb53b6533c608aa5223a68cfcb7fe318888510
4
+ data.tar.gz: ee5e004f7f3b78b1992c919d4dede58c99ec76b8fff44f7e68395006766cf82f
5
5
  SHA512:
6
- metadata.gz: 1f16ead8edf6959c85bce836ee4e9946e04aa82fe78d08c04519ba2021305ad085e630b58d8bb5741f0a46cd7d6ea0244f0cde4bf1ec8cd5afdcc5e3bfd8830f
7
- data.tar.gz: 29e530a81c43b79b2349029a8f49cb730f730ff0b3df12b9be065361d566fa3685c1f69beb24f50731ee7039517e594a0898777c5b8e1135a4382ae9936e9611
6
+ metadata.gz: 46fc7791048625ce5896e90dc5dbd7ec85ca81291cd0092def6e5779d28167c6f71c4076e30f79aaa265a65e5bf9a296978448e0b3d774d25c82afcc47fd0398
7
+ data.tar.gz: 1980014a0cf584ef9913293c716d3140cd6026e797d57c97bbef945c7e002674b10f4ee311d8d214d51fa0bd2c124f62737a1e94cacb4cba18d866173d54fd94
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "commonmarker"
4
+
5
+ module ChatSDK
6
+ module Format
7
+ class Converter
8
+ def to_markdown(platform_text)
9
+ platform_text
10
+ end
11
+
12
+ def from_markdown(markdown)
13
+ markdown
14
+ end
15
+
16
+ def parse(markdown)
17
+ Commonmarker.parse(markdown)
18
+ end
19
+
20
+ def render_markdown(node)
21
+ node.to_commonmark
22
+ end
23
+
24
+ def render_html(node)
25
+ node.to_html
26
+ end
27
+
28
+ private
29
+
30
+ def split_code_blocks(text)
31
+ text.split(/(```[\s\S]*?```|`[^`]+`)/)
32
+ end
33
+
34
+ def strip_markdown(text)
35
+ result = text.gsub(/```\w*\n?([\s\S]*?)```/, '\1')
36
+ result = result.gsub(/`([^`]+)`/, '\1')
37
+ result = result.gsub(/\[([^\]]+)\]\(([^)]+)\)/, '\1 (\2)')
38
+ result = result.gsub(/\*\*(.+?)\*\*/, '\1')
39
+ result = result.gsub(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/, '\1')
40
+ result.gsub(/~~(.+?)~~/, '\1')
41
+ end
42
+
43
+ def convert_bold_and_italic_from_md(text, bold_char: "*", italic_char: "_")
44
+ result = text.gsub(/\*\*(.+?)\*\*/, "\x00BOLD\\1BOLD\x00")
45
+ result = result.gsub(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/, "#{italic_char}\\1#{italic_char}")
46
+ result.gsub(/\x00BOLD(.+?)BOLD\x00/, "#{bold_char}\\1#{bold_char}")
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ChatSDK
4
- VERSION = "0.7.0"
4
+ VERSION = "0.8.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chat_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Quentin Rousseau
@@ -9,6 +9,20 @@ bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: commonmarker
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.0'
12
26
  - !ruby/object:Gem::Dependency
13
27
  name: zeitwerk
14
28
  requirement: !ruby/object:Gem::Requirement
@@ -63,6 +77,7 @@ files:
63
77
  - lib/chat_sdk/events/reaction.rb
64
78
  - lib/chat_sdk/events/slash_command.rb
65
79
  - lib/chat_sdk/events/subscribed_message.rb
80
+ - lib/chat_sdk/format/converter.rb
66
81
  - lib/chat_sdk/instrumentation.rb
67
82
  - lib/chat_sdk/log.rb
68
83
  - lib/chat_sdk/message.rb