slack_builder 0.1.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 +7 -0
- data/CHANGELOG.md +5 -0
- data/LICENSE.txt +21 -0
- data/README.md +204 -0
- data/lib/slack_builder/attachment.rb +60 -0
- data/lib/slack_builder/elements/actions.rb +19 -0
- data/lib/slack_builder/elements/base/concerns/has_elements.rb +62 -0
- data/lib/slack_builder/elements/base/element.rb +31 -0
- data/lib/slack_builder/elements/base/text.rb +20 -0
- data/lib/slack_builder/elements/context.rb +29 -0
- data/lib/slack_builder/elements/divider.rb +11 -0
- data/lib/slack_builder/elements/header.rb +21 -0
- data/lib/slack_builder/elements/image.rb +25 -0
- data/lib/slack_builder/elements/interactive_elements/button.rb +31 -0
- data/lib/slack_builder/elements/rich_text.rb +133 -0
- data/lib/slack_builder/elements/rich_text_elements/broadcast.rb +22 -0
- data/lib/slack_builder/elements/rich_text_elements/channel.rb +29 -0
- data/lib/slack_builder/elements/rich_text_elements/color.rb +22 -0
- data/lib/slack_builder/elements/rich_text_elements/concerns/has_highlight_style.rb +16 -0
- data/lib/slack_builder/elements/rich_text_elements/concerns/has_style.rb +30 -0
- data/lib/slack_builder/elements/rich_text_elements/concerns/has_text_style.rb +16 -0
- data/lib/slack_builder/elements/rich_text_elements/date.rb +28 -0
- data/lib/slack_builder/elements/rich_text_elements/emoji.rb +22 -0
- data/lib/slack_builder/elements/rich_text_elements/link.rb +23 -0
- data/lib/slack_builder/elements/rich_text_elements/text.rb +23 -0
- data/lib/slack_builder/elements/rich_text_elements/user.rb +29 -0
- data/lib/slack_builder/elements/rich_text_elements/usergroup.rb +29 -0
- data/lib/slack_builder/elements/section.rb +62 -0
- data/lib/slack_builder/elements/text_elements/markdown.rb +22 -0
- data/lib/slack_builder/elements/text_elements/plain_text.rb +22 -0
- data/lib/slack_builder/elements/video.rb +29 -0
- data/lib/slack_builder/message.rb +72 -0
- data/lib/slack_builder/version.rb +5 -0
- data/lib/slack_builder.rb +15 -0
- data/slack_builder.gemspec +40 -0
- metadata +85 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base/element'
|
|
4
|
+
|
|
5
|
+
module SlackBuilder
|
|
6
|
+
module Elements
|
|
7
|
+
module RichTextElements
|
|
8
|
+
class Broadcast < Base::Element
|
|
9
|
+
TYPE = 'broadcast'
|
|
10
|
+
|
|
11
|
+
def initialize(range, ...)
|
|
12
|
+
@range = range&.to_s
|
|
13
|
+
super(...)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def to_h
|
|
17
|
+
super.merge(range: @range)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base/element'
|
|
4
|
+
require_relative 'concerns/has_highlight_style'
|
|
5
|
+
require_relative 'concerns/has_style'
|
|
6
|
+
require_relative 'concerns/has_text_style'
|
|
7
|
+
|
|
8
|
+
module SlackBuilder
|
|
9
|
+
module Elements
|
|
10
|
+
module RichTextElements
|
|
11
|
+
class Channel < Base::Element
|
|
12
|
+
include Concerns::HasStyle
|
|
13
|
+
include Concerns::HasTextStyle
|
|
14
|
+
include Concerns::HasHighlightStyle
|
|
15
|
+
|
|
16
|
+
TYPE = 'channel'
|
|
17
|
+
|
|
18
|
+
def initialize(channel_id, ...)
|
|
19
|
+
@channel_id = channel_id
|
|
20
|
+
super(...)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def to_h
|
|
24
|
+
super.merge(channel_id: @channel_id)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base/element'
|
|
4
|
+
|
|
5
|
+
module SlackBuilder
|
|
6
|
+
module Elements
|
|
7
|
+
module RichTextElements
|
|
8
|
+
class Color < Base::Element
|
|
9
|
+
TYPE = 'color'
|
|
10
|
+
|
|
11
|
+
def initialize(value, ...)
|
|
12
|
+
@value = value&.to_s
|
|
13
|
+
super(...)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def to_h
|
|
17
|
+
super.merge(value: @value)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SlackBuilder
|
|
4
|
+
module Elements
|
|
5
|
+
module RichTextElements
|
|
6
|
+
module Concerns
|
|
7
|
+
module HasHighlightStyle
|
|
8
|
+
def initialize(*args, highlight: false, client_highlight: false, unlink: false, **kwargs)
|
|
9
|
+
super(*args, **kwargs)
|
|
10
|
+
style.merge!(highlight: highlight, client_highlight: client_highlight, unlink: unlink)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SlackBuilder
|
|
4
|
+
module Elements
|
|
5
|
+
module RichTextElements
|
|
6
|
+
module Concerns
|
|
7
|
+
module HasStyle
|
|
8
|
+
def initialize(...)
|
|
9
|
+
@style = {}
|
|
10
|
+
super
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def to_h
|
|
14
|
+
filtered_style.then do |style|
|
|
15
|
+
style.empty? ? super : super.merge(style: style)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
attr_reader :style
|
|
22
|
+
|
|
23
|
+
def filtered_style
|
|
24
|
+
style.select { |_, v| v }
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SlackBuilder
|
|
4
|
+
module Elements
|
|
5
|
+
module RichTextElements
|
|
6
|
+
module Concerns
|
|
7
|
+
module HasTextStyle
|
|
8
|
+
def initialize(*args, bold: false, italic: false, strike: false, **kwargs)
|
|
9
|
+
super(*args, **kwargs)
|
|
10
|
+
style.merge!(bold: bold, italic: italic, strike: strike)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base/element'
|
|
4
|
+
|
|
5
|
+
module SlackBuilder
|
|
6
|
+
module Elements
|
|
7
|
+
module RichTextElements
|
|
8
|
+
class Date < Base::Element
|
|
9
|
+
TYPE = 'date'
|
|
10
|
+
|
|
11
|
+
def initialize(timestamp, format:, url: nil, fallback: nil, **kwargs)
|
|
12
|
+
@timestamp = timestamp
|
|
13
|
+
@format = format
|
|
14
|
+
@url = url unless url.nil?
|
|
15
|
+
@fallback = fallback unless fallback.nil?
|
|
16
|
+
super(**kwargs)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def to_h
|
|
20
|
+
super.merge(timestamp: @timestamp, format: @format).tap do |h|
|
|
21
|
+
h[:url] = @url if defined?(@url)
|
|
22
|
+
h[:fallback] = @fallback if defined?(@fallback)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base/element'
|
|
4
|
+
|
|
5
|
+
module SlackBuilder
|
|
6
|
+
module Elements
|
|
7
|
+
module RichTextElements
|
|
8
|
+
class Emoji < Base::Element
|
|
9
|
+
TYPE = 'emoji'
|
|
10
|
+
|
|
11
|
+
def initialize(name, ...)
|
|
12
|
+
@name = name&.to_s
|
|
13
|
+
super(...)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def to_h
|
|
17
|
+
super.merge(name: @name)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'text'
|
|
4
|
+
|
|
5
|
+
module SlackBuilder
|
|
6
|
+
module Elements
|
|
7
|
+
module RichTextElements
|
|
8
|
+
class Link < Text
|
|
9
|
+
TYPE = 'link'
|
|
10
|
+
|
|
11
|
+
def initialize(*args, url:, unsafe: false, **kwargs)
|
|
12
|
+
@url = url
|
|
13
|
+
@unsafe = unsafe
|
|
14
|
+
super(*args, **kwargs)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_h
|
|
18
|
+
super.merge(url: @url, unsafe: @unsafe)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base/text'
|
|
4
|
+
require_relative 'concerns/has_style'
|
|
5
|
+
require_relative 'concerns/has_text_style'
|
|
6
|
+
|
|
7
|
+
module SlackBuilder
|
|
8
|
+
module Elements
|
|
9
|
+
module RichTextElements
|
|
10
|
+
class Text < Base::Text
|
|
11
|
+
include Concerns::HasStyle
|
|
12
|
+
include Concerns::HasTextStyle
|
|
13
|
+
|
|
14
|
+
TYPE = 'text'
|
|
15
|
+
|
|
16
|
+
def initialize(*args, code: false, **kwargs)
|
|
17
|
+
super(*args, **kwargs)
|
|
18
|
+
style.merge!(code: code)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base/element'
|
|
4
|
+
require_relative 'concerns/has_highlight_style'
|
|
5
|
+
require_relative 'concerns/has_style'
|
|
6
|
+
require_relative 'concerns/has_text_style'
|
|
7
|
+
|
|
8
|
+
module SlackBuilder
|
|
9
|
+
module Elements
|
|
10
|
+
module RichTextElements
|
|
11
|
+
class User < Base::Element
|
|
12
|
+
include Concerns::HasStyle
|
|
13
|
+
include Concerns::HasTextStyle
|
|
14
|
+
include Concerns::HasHighlightStyle
|
|
15
|
+
|
|
16
|
+
TYPE = 'user'
|
|
17
|
+
|
|
18
|
+
def initialize(user_id, ...)
|
|
19
|
+
@user_id = user_id
|
|
20
|
+
super(...)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def to_h
|
|
24
|
+
super.merge(user_id: @user_id)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base/element'
|
|
4
|
+
require_relative 'concerns/has_highlight_style'
|
|
5
|
+
require_relative 'concerns/has_style'
|
|
6
|
+
require_relative 'concerns/has_text_style'
|
|
7
|
+
|
|
8
|
+
module SlackBuilder
|
|
9
|
+
module Elements
|
|
10
|
+
module RichTextElements
|
|
11
|
+
class Usergroup < Base::Element
|
|
12
|
+
include Concerns::HasStyle
|
|
13
|
+
include Concerns::HasTextStyle
|
|
14
|
+
include Concerns::HasHighlightStyle
|
|
15
|
+
|
|
16
|
+
TYPE = 'usergroup'
|
|
17
|
+
|
|
18
|
+
def initialize(usergroup_id, ...)
|
|
19
|
+
@usergroup_id = usergroup_id
|
|
20
|
+
super(...)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def to_h
|
|
24
|
+
super.merge(usergroup_id: @usergroup_id)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base/element'
|
|
4
|
+
require_relative 'base/concerns/has_elements'
|
|
5
|
+
require_relative 'interactive_elements/button'
|
|
6
|
+
require_relative 'text_elements/markdown'
|
|
7
|
+
require_relative 'text_elements/plain_text'
|
|
8
|
+
require_relative 'image'
|
|
9
|
+
|
|
10
|
+
module SlackBuilder
|
|
11
|
+
module Elements
|
|
12
|
+
class Section < Base::Element
|
|
13
|
+
include Base::Concerns::HasElements
|
|
14
|
+
|
|
15
|
+
TYPE = 'section'
|
|
16
|
+
ELEMENTS_KEY_NAME = :fields
|
|
17
|
+
|
|
18
|
+
class Accessory
|
|
19
|
+
private_class_method :new
|
|
20
|
+
|
|
21
|
+
def self.build(&blk)
|
|
22
|
+
new.instance_exec(&blk)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def button(...)
|
|
28
|
+
InteractiveElements::Button.new(...)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def image(...)
|
|
32
|
+
Image.new(...)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def initialize(text = nil, verbatim: false, **kwargs, &blk)
|
|
37
|
+
@text = TextElements::Markdown.new(text, verbatim: verbatim) unless text.nil?
|
|
38
|
+
super(**kwargs, &blk)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def to_h
|
|
42
|
+
super.tap do |h|
|
|
43
|
+
h.delete(ELEMENTS_KEY_NAME) if empty?
|
|
44
|
+
h[:text] = @text.to_h if defined?(@text)
|
|
45
|
+
h[:accessory] = @accessory.to_h if defined?(@accessory)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def accessory(...)
|
|
50
|
+
@accessory = Accessory.build(...) if block_given?
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def mrkdwn(...)
|
|
54
|
+
add TextElements::Markdown.new(...)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def plain_text(...)
|
|
58
|
+
add TextElements::PlainText.new(...)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base/text'
|
|
4
|
+
|
|
5
|
+
module SlackBuilder
|
|
6
|
+
module Elements
|
|
7
|
+
module TextElements
|
|
8
|
+
class Markdown < Base::Text
|
|
9
|
+
TYPE = 'mrkdwn'
|
|
10
|
+
|
|
11
|
+
def initialize(*args, verbatim: false, **kwargs)
|
|
12
|
+
@verbatim = verbatim
|
|
13
|
+
super(*args, **kwargs)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def to_h
|
|
17
|
+
super.merge(verbatim: @verbatim)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base/text'
|
|
4
|
+
|
|
5
|
+
module SlackBuilder
|
|
6
|
+
module Elements
|
|
7
|
+
module TextElements
|
|
8
|
+
class PlainText < Base::Text
|
|
9
|
+
TYPE = 'plain_text'
|
|
10
|
+
|
|
11
|
+
def initialize(*args, emoji: true, **kwargs)
|
|
12
|
+
@emoji = emoji
|
|
13
|
+
super(*args, **kwargs)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def to_h
|
|
17
|
+
super.merge(emoji: @emoji)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base/element'
|
|
4
|
+
require_relative 'text_elements/plain_text'
|
|
5
|
+
|
|
6
|
+
module SlackBuilder
|
|
7
|
+
module Elements
|
|
8
|
+
class Video < Base::Element
|
|
9
|
+
TYPE = 'video'
|
|
10
|
+
|
|
11
|
+
def initialize(video_url, thumbnail_url:, alt_text:, title:, emoji: true, **kwargs)
|
|
12
|
+
@video_url = video_url
|
|
13
|
+
@thumbnail_url = thumbnail_url
|
|
14
|
+
@alt_text = alt_text
|
|
15
|
+
@title = TextElements::PlainText.new(title, emoji: emoji)
|
|
16
|
+
super(**kwargs)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def to_h
|
|
20
|
+
super.merge(
|
|
21
|
+
video_url: @video_url,
|
|
22
|
+
thumbnail_url: @thumbnail_url,
|
|
23
|
+
alt_text: @alt_text,
|
|
24
|
+
title: @title.to_h
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'attachment'
|
|
4
|
+
require_relative 'elements/actions'
|
|
5
|
+
require_relative 'elements/divider'
|
|
6
|
+
require_relative 'elements/header'
|
|
7
|
+
require_relative 'elements/image'
|
|
8
|
+
require_relative 'elements/context'
|
|
9
|
+
require_relative 'elements/rich_text'
|
|
10
|
+
require_relative 'elements/section'
|
|
11
|
+
require_relative 'elements/video'
|
|
12
|
+
require_relative 'elements/base/concerns/has_elements'
|
|
13
|
+
|
|
14
|
+
module SlackBuilder
|
|
15
|
+
class Message
|
|
16
|
+
include Elements::Base::Concerns::HasElements
|
|
17
|
+
|
|
18
|
+
def initialize(text = nil, &blk)
|
|
19
|
+
@text = text unless text.nil?
|
|
20
|
+
@attachments = []
|
|
21
|
+
super(&blk)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def to_h
|
|
25
|
+
{}.tap do |h|
|
|
26
|
+
h[:text] = @text if @text
|
|
27
|
+
h[:blocks] = to_a if any?
|
|
28
|
+
h[:attachments] = @attachments.map(&:to_h) if @attachments.any?
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def attachment(...)
|
|
33
|
+
return unless block_given?
|
|
34
|
+
|
|
35
|
+
Attachment.new(...).tap do |a|
|
|
36
|
+
@attachments << a
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def actions(...)
|
|
41
|
+
add Elements::Actions.new(...) if block_given?
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def context(...)
|
|
45
|
+
add Elements::Context.new(...) if block_given?
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def divider(...)
|
|
49
|
+
add Elements::Divider.new(...)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def header(...)
|
|
53
|
+
add Elements::Header.new(...)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def image(...)
|
|
57
|
+
add Elements::Image.new(...)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def rich_text(...)
|
|
61
|
+
add Elements::RichText.new(...) if block_given?
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def section(...)
|
|
65
|
+
add Elements::Section.new(...)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def video(...)
|
|
69
|
+
add Elements::Video.new(...)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'slack_builder/attachment'
|
|
4
|
+
require_relative 'slack_builder/message'
|
|
5
|
+
require_relative 'slack_builder/version'
|
|
6
|
+
|
|
7
|
+
module SlackBuilder
|
|
8
|
+
def self.attachment(...)
|
|
9
|
+
Attachment.new(...)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.message(...)
|
|
13
|
+
Message.new(...)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'lib/slack_builder/version'
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = 'slack_builder'
|
|
7
|
+
spec.version = SlackBuilder::VERSION
|
|
8
|
+
spec.required_ruby_version = '>= 3.0.0'
|
|
9
|
+
|
|
10
|
+
spec.authors = ['cyb-']
|
|
11
|
+
spec.email = ['gchateau@student.42.fr']
|
|
12
|
+
|
|
13
|
+
spec.summary = 'Slack API payload builder DSL'
|
|
14
|
+
spec.description = 'Slack API builder to easily build blocks message payloads with a comfortable DSL'
|
|
15
|
+
spec.homepage = 'https://github.com/cyb-/slack-builder'
|
|
16
|
+
spec.license = 'MIT'
|
|
17
|
+
|
|
18
|
+
spec.metadata = {
|
|
19
|
+
'bug_tracker_uri' => 'https://github.com/cyb-/slack-builder/issues',
|
|
20
|
+
'changelog_uri' => 'https://github.com/cyb-/slack-builder/blob/main/CHANGELOG.md',
|
|
21
|
+
'documentation_uri' => 'https://github.com/cyb-/slack-builder/blob/main/README.md',
|
|
22
|
+
'github_repo' => 'ssh://github.com/cyb-/slack-builder',
|
|
23
|
+
'homepage_uri' => spec.homepage,
|
|
24
|
+
'source_code_uri' => 'https://github.com/cyb-/slack-builder',
|
|
25
|
+
'rubygems_mfa_required' => 'true',
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
ignored = Regexp.union(
|
|
29
|
+
/\A\.circleci/,
|
|
30
|
+
/\A\.git/,
|
|
31
|
+
/\A\.rubocop/,
|
|
32
|
+
/\A\.rspec/,
|
|
33
|
+
/\Abin/,
|
|
34
|
+
/\Aspec/,
|
|
35
|
+
/\AGemfile/,
|
|
36
|
+
/\ARakefile/
|
|
37
|
+
)
|
|
38
|
+
spec.files = `git ls-files`.split("\n").grep_v(ignored)
|
|
39
|
+
spec.require_paths = ['lib']
|
|
40
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: slack_builder
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- cyb-
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2024-08-15 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: Slack API builder to easily build blocks message payloads with a comfortable
|
|
14
|
+
DSL
|
|
15
|
+
email:
|
|
16
|
+
- gchateau@student.42.fr
|
|
17
|
+
executables: []
|
|
18
|
+
extensions: []
|
|
19
|
+
extra_rdoc_files: []
|
|
20
|
+
files:
|
|
21
|
+
- CHANGELOG.md
|
|
22
|
+
- LICENSE.txt
|
|
23
|
+
- README.md
|
|
24
|
+
- lib/slack_builder.rb
|
|
25
|
+
- lib/slack_builder/attachment.rb
|
|
26
|
+
- lib/slack_builder/elements/actions.rb
|
|
27
|
+
- lib/slack_builder/elements/base/concerns/has_elements.rb
|
|
28
|
+
- lib/slack_builder/elements/base/element.rb
|
|
29
|
+
- lib/slack_builder/elements/base/text.rb
|
|
30
|
+
- lib/slack_builder/elements/context.rb
|
|
31
|
+
- lib/slack_builder/elements/divider.rb
|
|
32
|
+
- lib/slack_builder/elements/header.rb
|
|
33
|
+
- lib/slack_builder/elements/image.rb
|
|
34
|
+
- lib/slack_builder/elements/interactive_elements/button.rb
|
|
35
|
+
- lib/slack_builder/elements/rich_text.rb
|
|
36
|
+
- lib/slack_builder/elements/rich_text_elements/broadcast.rb
|
|
37
|
+
- lib/slack_builder/elements/rich_text_elements/channel.rb
|
|
38
|
+
- lib/slack_builder/elements/rich_text_elements/color.rb
|
|
39
|
+
- lib/slack_builder/elements/rich_text_elements/concerns/has_highlight_style.rb
|
|
40
|
+
- lib/slack_builder/elements/rich_text_elements/concerns/has_style.rb
|
|
41
|
+
- lib/slack_builder/elements/rich_text_elements/concerns/has_text_style.rb
|
|
42
|
+
- lib/slack_builder/elements/rich_text_elements/date.rb
|
|
43
|
+
- lib/slack_builder/elements/rich_text_elements/emoji.rb
|
|
44
|
+
- lib/slack_builder/elements/rich_text_elements/link.rb
|
|
45
|
+
- lib/slack_builder/elements/rich_text_elements/text.rb
|
|
46
|
+
- lib/slack_builder/elements/rich_text_elements/user.rb
|
|
47
|
+
- lib/slack_builder/elements/rich_text_elements/usergroup.rb
|
|
48
|
+
- lib/slack_builder/elements/section.rb
|
|
49
|
+
- lib/slack_builder/elements/text_elements/markdown.rb
|
|
50
|
+
- lib/slack_builder/elements/text_elements/plain_text.rb
|
|
51
|
+
- lib/slack_builder/elements/video.rb
|
|
52
|
+
- lib/slack_builder/message.rb
|
|
53
|
+
- lib/slack_builder/version.rb
|
|
54
|
+
- slack_builder.gemspec
|
|
55
|
+
homepage: https://github.com/cyb-/slack-builder
|
|
56
|
+
licenses:
|
|
57
|
+
- MIT
|
|
58
|
+
metadata:
|
|
59
|
+
bug_tracker_uri: https://github.com/cyb-/slack-builder/issues
|
|
60
|
+
changelog_uri: https://github.com/cyb-/slack-builder/blob/main/CHANGELOG.md
|
|
61
|
+
documentation_uri: https://github.com/cyb-/slack-builder/blob/main/README.md
|
|
62
|
+
github_repo: ssh://github.com/cyb-/slack-builder
|
|
63
|
+
homepage_uri: https://github.com/cyb-/slack-builder
|
|
64
|
+
source_code_uri: https://github.com/cyb-/slack-builder
|
|
65
|
+
rubygems_mfa_required: 'true'
|
|
66
|
+
post_install_message:
|
|
67
|
+
rdoc_options: []
|
|
68
|
+
require_paths:
|
|
69
|
+
- lib
|
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 3.0.0
|
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
|
+
requirements:
|
|
77
|
+
- - ">="
|
|
78
|
+
- !ruby/object:Gem::Version
|
|
79
|
+
version: '0'
|
|
80
|
+
requirements: []
|
|
81
|
+
rubygems_version: 3.4.19
|
|
82
|
+
signing_key:
|
|
83
|
+
specification_version: 4
|
|
84
|
+
summary: Slack API payload builder DSL
|
|
85
|
+
test_files: []
|