slack-ruby-block-kit 0.11.0 → 0.15.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 +4 -4
- data/.deepsource.toml +15 -0
- data/.github/workflows/ci.yml +7 -5
- data/.rubocop.yml +19 -2
- data/CHANGELOG.md +87 -4
- data/Gemfile +13 -0
- data/Gemfile.lock +70 -45
- data/README.md +3 -1
- data/lib/slack/block_kit.rb +2 -2
- data/lib/slack/block_kit/blocks.rb +19 -0
- data/lib/slack/block_kit/composition/dispatch_action_configuration.rb +34 -0
- data/lib/slack/block_kit/composition/option.rb +6 -1
- data/lib/slack/block_kit/composition/option_group.rb +2 -2
- data/lib/slack/block_kit/element/checkboxes.rb +12 -14
- data/lib/slack/block_kit/element/date_picker.rb +9 -6
- data/lib/slack/block_kit/element/multi_static_select.rb +15 -16
- data/lib/slack/block_kit/element/plain_text_input.rb +11 -1
- data/lib/slack/block_kit/element/radio_buttons.rb +12 -7
- data/lib/slack/block_kit/element/static_select.rb +17 -16
- data/lib/slack/block_kit/element/timepicker.rb +49 -0
- data/lib/slack/block_kit/layout/header.rb +29 -0
- data/lib/slack/block_kit/layout/input.rb +201 -5
- data/lib/slack/block_kit/layout/section.rb +2 -4
- data/lib/slack/block_kit/version.rb +7 -0
- data/slack-ruby-block-kit.gemspec +1 -18
- metadata +14 -137
- data/.rubocop_todo.yml +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 644f871d525941f478c3be328b24038bdcfa219555efa6e1aa3e7c0a6fe2b0af
|
4
|
+
data.tar.gz: 8ffd58726aee0032b5ffb7b97b879d8c56fb8c81a26f6cf9db251dc608ad756e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5096cf81affb99eb90fe44f7c873caca6738b37579fc90d15dfec3ec6ea4f7c8fca7956958dbefcec9cf01105bf13dba834bf3e1ba9da3e4c51ebdd53c26e8e7
|
7
|
+
data.tar.gz: dbf34713c3d0ecfaa61d8d36d8df7b7fff94482723bd42572d2c5fb98868e1db16673aae70196f7b340856774e4cb4919491576ad74a93e4e643e9f51c0c66f6
|
data/.deepsource.toml
ADDED
data/.github/workflows/ci.yml
CHANGED
@@ -6,6 +6,9 @@ on:
|
|
6
6
|
pull_request:
|
7
7
|
branches: [ master ]
|
8
8
|
|
9
|
+
env:
|
10
|
+
DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }}
|
11
|
+
|
9
12
|
jobs:
|
10
13
|
build:
|
11
14
|
runs-on: ubuntu-latest
|
@@ -13,19 +16,18 @@ jobs:
|
|
13
16
|
strategy:
|
14
17
|
fail-fast: false
|
15
18
|
matrix:
|
16
|
-
ruby: [ '2.6', '2.7' ]
|
19
|
+
ruby: [ '2.6', '2.7', '3.0' ]
|
17
20
|
experimental: [ false ]
|
18
|
-
include:
|
19
|
-
- ruby: 'head'
|
20
|
-
experimental: true
|
21
|
-
|
22
21
|
name: Ruby ${{ matrix.ruby }}
|
23
22
|
steps:
|
24
23
|
- uses: actions/checkout@v2
|
25
24
|
- uses: ruby/setup-ruby@v1
|
26
25
|
with:
|
27
26
|
ruby-version: ${{ matrix.ruby }}
|
27
|
+
- run: curl https://deepsource.io/cli | sh
|
28
28
|
- run: gem install bundler:2.1.4
|
29
29
|
- run: bundle install
|
30
30
|
- run: bundle exec rubocop
|
31
31
|
- run: bundle exec rspec --format progress
|
32
|
+
- run: ./bin/deepsource report --analyzer test-coverage --key ruby --value-file ./coverage/.resultset.json
|
33
|
+
if: (github.event_name == 'push') || (github.event.pull_request.head.repo.full_name == github.repository) # don't run on forks which don't have access to DEEPSOURCE_DSN
|
data/.rubocop.yml
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
require:
|
2
|
-
|
1
|
+
require:
|
2
|
+
- rubocop-rake
|
3
|
+
- rubocop-rspec
|
3
4
|
|
4
5
|
AllCops:
|
5
6
|
TargetRubyVersion: 2.5.3
|
7
|
+
NewCops: enable
|
6
8
|
|
7
9
|
Layout/LineLength:
|
8
10
|
Max: 120
|
@@ -68,3 +70,18 @@ Style/RedundantRegexpEscape:
|
|
68
70
|
|
69
71
|
RSpec/MultipleMemoizedHelpers:
|
70
72
|
Max: 10
|
73
|
+
|
74
|
+
RSpec/NestedGroups:
|
75
|
+
Max: 4
|
76
|
+
|
77
|
+
Style/Documentation:
|
78
|
+
Enabled: false
|
79
|
+
|
80
|
+
Metrics/ClassLength:
|
81
|
+
Max: 200
|
82
|
+
|
83
|
+
Metrics/CyclomaticComplexity:
|
84
|
+
Max: 8
|
85
|
+
|
86
|
+
RSpec/ExampleLength:
|
87
|
+
Max: 6
|
data/CHANGELOG.md
CHANGED
@@ -25,6 +25,82 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
25
25
|
- N/A
|
26
26
|
|
27
27
|
|
28
|
+
[Unreleased]: https://github.com/CGA1123/slack-ruby-block-kit/compare/v0.15.0...HEAD
|
29
|
+
|
30
|
+
|
31
|
+
---
|
32
|
+
|
33
|
+
|
34
|
+
## [0.15.0] - 2021-06-14
|
35
|
+
|
36
|
+
### Added
|
37
|
+
- Support `dispatch_action` and `dispatch_action_config` (#94 by @deecewan)
|
38
|
+
|
39
|
+
|
40
|
+
[0.15.0]: https://github.com/CGA1123/slack-ruby-block-kit/compare/v0.14.1...v0.15.0
|
41
|
+
|
42
|
+
|
43
|
+
---
|
44
|
+
|
45
|
+
|
46
|
+
## [0.14.1] - 2021-05-05
|
47
|
+
|
48
|
+
### Fixed
|
49
|
+
- Allow Layout::Section to render without `text` (#87 by @pbendersky)
|
50
|
+
|
51
|
+
|
52
|
+
[0.14.1]: https://github.com/CGA1123/slack-ruby-block-kit/compare/v0.14.0...v0.14.1
|
53
|
+
|
54
|
+
|
55
|
+
---
|
56
|
+
|
57
|
+
|
58
|
+
## [0.14.0] - 2021-02-06
|
59
|
+
|
60
|
+
### Added
|
61
|
+
- `Slack::BlockKit::Blocks#header` (#74 by @rspeicher)
|
62
|
+
|
63
|
+
|
64
|
+
[0.14.0]: https://github.com/CGA1123/slack-ruby-block-kit/compare/v0.13.0...v0.14.0
|
65
|
+
|
66
|
+
|
67
|
+
---
|
68
|
+
|
69
|
+
|
70
|
+
## [0.13.0] - 2020-12-29
|
71
|
+
|
72
|
+
### Added
|
73
|
+
- Ruby3 Support
|
74
|
+
- `Slack::BlockKit::Element::Timepicker` (#72)
|
75
|
+
- Add `input` to `Slack::BlockKit::Blocks` and elements to `Slack::BlockKit::Layout::Input` (#73)
|
76
|
+
|
77
|
+
### Changed
|
78
|
+
- Development dependencies now managed by bundler via Gemfile, rather than in gemspec
|
79
|
+
|
80
|
+
|
81
|
+
[0.13.0]: https://github.com/CGA1123/slack-ruby-block-kit/compare/v0.12.0...v0.13.0
|
82
|
+
|
83
|
+
|
84
|
+
---
|
85
|
+
|
86
|
+
|
87
|
+
## [0.12.0] - 2020-10-06
|
88
|
+
|
89
|
+
### Added
|
90
|
+
- `Slack::BlockKit::Layout::Header` (#57)
|
91
|
+
|
92
|
+
### Removed
|
93
|
+
- `Slack::BlockKit::Element::Checkboxes#initial`, use the `initial:` keyword on `#option`
|
94
|
+
- `Slack::BlockKit::Element::MultiStaticSelect#initial`, use the `initial:` keyword on `#option`
|
95
|
+
- `Slack::BlockKit::Element::StaticSelect#initial`, use the `initial:` keyword on `#option`
|
96
|
+
|
97
|
+
|
98
|
+
[0.12.0]: https://github.com/CGA1123/slack-ruby-block-kit/compare/v0.11.0...v0.12.0
|
99
|
+
|
100
|
+
|
101
|
+
---
|
102
|
+
|
103
|
+
|
28
104
|
## [0.11.0] - 2020-10-03
|
29
105
|
|
30
106
|
### Added
|
@@ -37,6 +113,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
37
113
|
- Ruby2.7 kwarg deprecation warnings
|
38
114
|
|
39
115
|
|
116
|
+
[0.11.0]: https://github.com/CGA1123/slack-ruby-block-kit/compare/v0.10.0...v0.11.0
|
117
|
+
|
118
|
+
|
119
|
+
---
|
120
|
+
|
121
|
+
|
40
122
|
## [0.10.0] - 2020-09-11
|
41
123
|
|
42
124
|
### Added
|
@@ -46,11 +128,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
46
128
|
- Fixed initial options in multi select blocks (#46 by @caalberts)
|
47
129
|
|
48
130
|
|
49
|
-
|
131
|
+
[0.10.0]: https://github.com/CGA1123/slack-ruby-block-kit/compare/v0.9.0...v0.10.0
|
50
132
|
|
51
133
|
|
52
|
-
|
53
|
-
|
54
|
-
[
|
134
|
+
---
|
135
|
+
|
136
|
+
See [releases] for previous changes.
|
137
|
+
|
55
138
|
|
56
139
|
[releases]: https://github.com/CGA1123/slack-ruby-block-kit/releases
|
data/Gemfile
CHANGED
@@ -3,3 +3,16 @@
|
|
3
3
|
source 'https://rubygems.org'
|
4
4
|
|
5
5
|
gemspec
|
6
|
+
|
7
|
+
gem 'dotenv', '~> 2'
|
8
|
+
gem 'faraday', '~> 1'
|
9
|
+
gem 'pry', '~> 0.14'
|
10
|
+
gem 'rake', '~> 13'
|
11
|
+
gem 'rspec', '~> 3'
|
12
|
+
gem 'rspec_junit_formatter', '~> 0.4'
|
13
|
+
|
14
|
+
gem 'codecov', '~> 0.5', require: false
|
15
|
+
gem 'rubocop', '~> 1', require: false
|
16
|
+
gem 'rubocop-rake', '~> 0.5', require: false
|
17
|
+
gem 'rubocop-rspec', '~> 2', require: false
|
18
|
+
gem 'simplecov', '~> 0.21', require: false
|
data/Gemfile.lock
CHANGED
@@ -1,76 +1,101 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
slack-ruby-block-kit (0.
|
4
|
+
slack-ruby-block-kit (0.15.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
ast (2.4.
|
10
|
-
|
11
|
-
|
9
|
+
ast (2.4.2)
|
10
|
+
codecov (0.5.2)
|
11
|
+
simplecov (>= 0.15, < 0.22)
|
12
|
+
coderay (1.1.3)
|
13
|
+
diff-lcs (1.4.4)
|
14
|
+
docile (1.3.5)
|
12
15
|
dotenv (2.7.6)
|
13
|
-
faraday (1.
|
16
|
+
faraday (1.4.2)
|
17
|
+
faraday-em_http (~> 1.0)
|
18
|
+
faraday-em_synchrony (~> 1.0)
|
19
|
+
faraday-excon (~> 1.1)
|
20
|
+
faraday-net_http (~> 1.0)
|
21
|
+
faraday-net_http_persistent (~> 1.1)
|
14
22
|
multipart-post (>= 1.2, < 3)
|
23
|
+
ruby2_keywords (>= 0.0.4)
|
24
|
+
faraday-em_http (1.0.0)
|
25
|
+
faraday-em_synchrony (1.0.0)
|
26
|
+
faraday-excon (1.1.0)
|
27
|
+
faraday-net_http (1.0.1)
|
28
|
+
faraday-net_http_persistent (1.1.0)
|
15
29
|
method_source (1.0.0)
|
16
30
|
multipart-post (2.1.1)
|
17
|
-
parallel (1.
|
18
|
-
parser (
|
31
|
+
parallel (1.20.1)
|
32
|
+
parser (3.0.1.1)
|
19
33
|
ast (~> 2.4.1)
|
20
|
-
pry (0.
|
34
|
+
pry (0.14.1)
|
21
35
|
coderay (~> 1.1)
|
22
36
|
method_source (~> 1.0)
|
23
37
|
rainbow (3.0.0)
|
24
|
-
rake (13.0.
|
25
|
-
regexp_parser (1.
|
26
|
-
rexml (3.2.
|
27
|
-
rspec (3.
|
28
|
-
rspec-core (~> 3.
|
29
|
-
rspec-expectations (~> 3.
|
30
|
-
rspec-mocks (~> 3.
|
31
|
-
rspec-core (3.
|
32
|
-
rspec-support (~> 3.
|
33
|
-
rspec-expectations (3.
|
38
|
+
rake (13.0.3)
|
39
|
+
regexp_parser (2.1.1)
|
40
|
+
rexml (3.2.5)
|
41
|
+
rspec (3.10.0)
|
42
|
+
rspec-core (~> 3.10.0)
|
43
|
+
rspec-expectations (~> 3.10.0)
|
44
|
+
rspec-mocks (~> 3.10.0)
|
45
|
+
rspec-core (3.10.1)
|
46
|
+
rspec-support (~> 3.10.0)
|
47
|
+
rspec-expectations (3.10.1)
|
34
48
|
diff-lcs (>= 1.2.0, < 2.0)
|
35
|
-
rspec-support (~> 3.
|
36
|
-
rspec-mocks (3.
|
49
|
+
rspec-support (~> 3.10.0)
|
50
|
+
rspec-mocks (3.10.2)
|
37
51
|
diff-lcs (>= 1.2.0, < 2.0)
|
38
|
-
rspec-support (~> 3.
|
39
|
-
rspec-support (3.
|
52
|
+
rspec-support (~> 3.10.0)
|
53
|
+
rspec-support (3.10.2)
|
40
54
|
rspec_junit_formatter (0.4.1)
|
41
55
|
rspec-core (>= 2, < 4, != 2.12.0)
|
42
|
-
rubocop (
|
56
|
+
rubocop (1.16.1)
|
43
57
|
parallel (~> 1.10)
|
44
|
-
parser (>=
|
58
|
+
parser (>= 3.0.0.0)
|
45
59
|
rainbow (>= 2.2.2, < 4.0)
|
46
|
-
regexp_parser (>= 1.
|
60
|
+
regexp_parser (>= 1.8, < 3.0)
|
47
61
|
rexml
|
48
|
-
rubocop-ast (>=
|
62
|
+
rubocop-ast (>= 1.7.0, < 2.0)
|
49
63
|
ruby-progressbar (~> 1.7)
|
50
|
-
unicode-display_width (>= 1.4.0, <
|
51
|
-
rubocop-ast (
|
52
|
-
parser (>=
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
64
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
65
|
+
rubocop-ast (1.7.0)
|
66
|
+
parser (>= 3.0.1.1)
|
67
|
+
rubocop-rake (0.5.1)
|
68
|
+
rubocop
|
69
|
+
rubocop-rspec (2.4.0)
|
70
|
+
rubocop (~> 1.0)
|
71
|
+
rubocop-ast (>= 1.1.0)
|
72
|
+
ruby-progressbar (1.11.0)
|
73
|
+
ruby2_keywords (0.0.4)
|
74
|
+
simplecov (0.21.2)
|
75
|
+
docile (~> 1.1)
|
76
|
+
simplecov-html (~> 0.11)
|
77
|
+
simplecov_json_formatter (~> 0.1)
|
78
|
+
simplecov-html (0.12.3)
|
79
|
+
simplecov_json_formatter (0.1.2)
|
80
|
+
unicode-display_width (2.0.0)
|
59
81
|
|
60
82
|
PLATFORMS
|
61
83
|
ruby
|
84
|
+
x86_64-darwin-19
|
62
85
|
|
63
86
|
DEPENDENCIES
|
64
|
-
|
65
|
-
dotenv
|
66
|
-
faraday
|
67
|
-
pry
|
68
|
-
rake
|
69
|
-
rspec
|
70
|
-
rspec_junit_formatter
|
71
|
-
rubocop
|
72
|
-
rubocop-
|
87
|
+
codecov (~> 0.5)
|
88
|
+
dotenv (~> 2)
|
89
|
+
faraday (~> 1)
|
90
|
+
pry (~> 0.14)
|
91
|
+
rake (~> 13)
|
92
|
+
rspec (~> 3)
|
93
|
+
rspec_junit_formatter (~> 0.4)
|
94
|
+
rubocop (~> 1)
|
95
|
+
rubocop-rake (~> 0.5)
|
96
|
+
rubocop-rspec (~> 2)
|
97
|
+
simplecov (~> 0.21)
|
73
98
|
slack-ruby-block-kit!
|
74
99
|
|
75
100
|
BUNDLED WITH
|
76
|
-
2.
|
101
|
+
2.2.3
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
[](https://circleci.com/gh/CGA1123/slack-ruby-block-kit/tree/master)
|
2
1
|
[](https://badge.fury.io/rb/slack-ruby-block-kit)
|
2
|
+
[](https://codecov.io/gh/CGA1123/slack-ruby-block-kit)
|
3
|
+
[](https://deepsource.io/gh/CGA1123/slack-ruby-block-kit/?ref=repository-badge)
|
4
|
+
[](https://deepsource.io/gh/CGA1123/slack-ruby-block-kit/?ref=repository-badge)
|
3
5
|
|
4
6
|
# Slack::BlockKit
|
5
7
|
|
data/lib/slack/block_kit.rb
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
module Slack
|
4
4
|
module BlockKit
|
5
5
|
module Composition; end
|
6
|
+
|
6
7
|
module Element; end
|
7
|
-
module Layout; end
|
8
8
|
|
9
|
-
|
9
|
+
module Layout; end
|
10
10
|
|
11
11
|
Dir[File.join(__dir__, 'block_kit', 'composition', '*.rb')].sort.each { |file| require file }
|
12
12
|
Dir[File.join(__dir__, 'block_kit', 'element', '*.rb')].sort.each { |file| require file }
|
@@ -37,6 +37,12 @@ module Slack
|
|
37
37
|
append(block)
|
38
38
|
end
|
39
39
|
|
40
|
+
def header(text:, block_id: nil, emoji: nil)
|
41
|
+
block = Layout::Header.new(text: text, block_id: block_id, emoji: emoji)
|
42
|
+
|
43
|
+
append(block)
|
44
|
+
end
|
45
|
+
|
40
46
|
def image(url:, alt_text:, title: nil, block_id: nil, emoji: nil)
|
41
47
|
block = Layout::Image.new(
|
42
48
|
url: url,
|
@@ -57,6 +63,19 @@ module Slack
|
|
57
63
|
append(block)
|
58
64
|
end
|
59
65
|
|
66
|
+
def input(label:, hint: nil, block_id: nil, dispatch_action: nil)
|
67
|
+
block = Layout::Input.new(
|
68
|
+
label: label,
|
69
|
+
hint: hint,
|
70
|
+
block_id: block_id,
|
71
|
+
dispatch_action: dispatch_action
|
72
|
+
)
|
73
|
+
|
74
|
+
yield(block) if block_given?
|
75
|
+
|
76
|
+
append(block)
|
77
|
+
end
|
78
|
+
|
60
79
|
def append(block)
|
61
80
|
@blocks << block
|
62
81
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Slack
|
4
|
+
module BlockKit
|
5
|
+
module Composition
|
6
|
+
# Determines when a plain-text input element will return a block_actions
|
7
|
+
# interaction payload.
|
8
|
+
#
|
9
|
+
# @param [Array] triggers - values for the `trigger_actions_on` array
|
10
|
+
#
|
11
|
+
# https://api.slack.com/reference/block-kit/composition-objects#dispatch_action_config
|
12
|
+
# https://api.slack.com/reference/block-kit/block-elements#input
|
13
|
+
class DispatchActionConfiguration
|
14
|
+
def initialize(triggers: nil)
|
15
|
+
@triggers = triggers || []
|
16
|
+
end
|
17
|
+
|
18
|
+
def trigger_on_enter_pressed
|
19
|
+
@triggers << :on_enter_pressed
|
20
|
+
end
|
21
|
+
|
22
|
+
def trigger_on_character_entered
|
23
|
+
@triggers << :on_character_entered
|
24
|
+
end
|
25
|
+
|
26
|
+
def as_json(*)
|
27
|
+
{
|
28
|
+
trigger_actions_on: @triggers.uniq
|
29
|
+
}.compact
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|