slack-notification 0.1.5 → 0.1.9

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: e7f1bd44be20c066b049ac06dac973ca51be3268d76bc16b2cbaa251005b1e6f
4
- data.tar.gz: 8119b8f53e5b394133211815800652ee4a3ab2bb7a331915b8ba42d34c7d5420
3
+ metadata.gz: f6fe53f5f1ea77a7ff88743d73f86b47b88ccb4e99e824bc4b989d5f5f83ca54
4
+ data.tar.gz: a9ad9991be8827fc775e59ebd516e7d7e56c5a6883fa62adf1e45284e81b1be6
5
5
  SHA512:
6
- metadata.gz: be7827ced270a14d9de91295af099c2899f7127a46128f70ab9cecf9221a158ed1f5ad293d9c46c736f42d3dcd099b18d20d806dc118c7cc0af7f737632b59aa
7
- data.tar.gz: 5787f5e547fce7dc6b47608009e6b94650ebc862d036d1dd255486ccbfe8c859e5f9087596a158e81b036b0c993b372daa9b3d26528642919c2ab7bcd722119b
6
+ metadata.gz: 0cb2ec78c87648d9fdc9303e1204df6bd1ceca36abc1a4306e7fa53493ab592a7ff8c782daa23bf9e5f29accd2bfbc95770a13b7a59365fa72dd9e207815d8ff
7
+ data.tar.gz: e44227ab03fc8f5cf8ba0fc9205ed4bcc3a928e526973be72e1f33e178ca8c2ddf4e68bcb142b3b7d7e5655d0aa6114b92e87bff398d7e800f1d03de246ec653
data/.rubocop.yml ADDED
@@ -0,0 +1,81 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.5
3
+ NewCops: enable
4
+ Exclude:
5
+ - bin/**/*
6
+ - config/**/*
7
+ - db/**/*
8
+ - vendor/**/*
9
+ - tmp/**/*
10
+
11
+ Layout/AccessModifierIndentation:
12
+ EnforcedStyle: outdent
13
+ Layout/ArrayAlignment:
14
+ Enabled: true
15
+ Layout/EmptyLineAfterGuardClause:
16
+ Enabled: true
17
+ Layout/EmptyLinesAroundAccessModifier:
18
+ Enabled: true
19
+ Layout/FirstHashElementIndentation:
20
+ EnforcedStyle: consistent
21
+ Layout/HashAlignment:
22
+ Enabled: true
23
+ Layout/LineLength:
24
+ Max: 100
25
+ Layout/SpaceInsideBlockBraces:
26
+ EnforcedStyle: space
27
+ EnforcedStyleForEmptyBraces: no_space
28
+ Layout/SpaceInsideHashLiteralBraces:
29
+ EnforcedStyle: space
30
+ EnforcedStyleForEmptyBraces: no_space
31
+ Layout/SpaceInsideArrayLiteralBrackets:
32
+ EnforcedStyle: no_space
33
+
34
+ Lint/UnusedMethodArgument:
35
+ Enabled: true
36
+ Lint/UselessAssignment:
37
+ Enabled: true
38
+
39
+ Metrics/MethodLength:
40
+ Enabled: true
41
+ Metrics/ClassLength:
42
+ Enabled: true
43
+ Max: 125
44
+ Metrics/ModuleLength:
45
+ Max: 125
46
+ Metrics/ParameterLists:
47
+ Enabled: true
48
+ Metrics/CyclomaticComplexity:
49
+ Enabled: true
50
+ Metrics/AbcSize:
51
+ Enabled: true
52
+
53
+ Naming/MemoizedInstanceVariableName:
54
+ Enabled: false
55
+ Naming/MethodParameterName:
56
+ Enabled: false
57
+
58
+ Style/AndOr:
59
+ Enabled: true
60
+ Style/ClassCheck:
61
+ Enabled: true
62
+ Style/Documentation:
63
+ Enabled: false
64
+ Style/FrozenStringLiteralComment:
65
+ Enabled: true
66
+ Style/GuardClause:
67
+ Enabled: true
68
+ Style/NumericLiterals:
69
+ Enabled: true
70
+ Style/StringLiterals:
71
+ Enabled: true
72
+ EnforcedStyle: single_quotes
73
+ Style/HashTransformKeys:
74
+ Enabled: false
75
+
76
+ Security/Eval:
77
+ Enabled: true
78
+ Security/JSONLoad:
79
+ Enabled: true
80
+ Security/YAMLLoad:
81
+ Enabled: true
data/.travis.yml ADDED
@@ -0,0 +1,19 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.5.1
4
+ branches:
5
+ except:
6
+ - "/^v[0-9]+\\.[0-9]+\\.[0-9]+(?:-.*)?/"
7
+ notifications:
8
+ email:
9
+ on_success: change
10
+ on_failure: always
11
+ before_script:
12
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter || (print "Will not report" && true)
13
+ - chmod +x ./cc-test-reporter || true
14
+ - ./cc-test-reporter before-build || true
15
+ script:
16
+ - bundle exec rspec
17
+ - bundle exec rubocop
18
+ after_script:
19
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT || true
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in slack-notification.gemspec
4
6
  gemspec
data/Gemfile.lock CHANGED
@@ -1,61 +1,64 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- slack-notification (0.1.5)
4
+ slack-notification (0.1.9)
5
5
  slack-notifier (~> 2.3)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- ast (2.4.0)
10
+ ast (2.4.2)
11
11
  diff-lcs (1.3)
12
12
  docile (1.3.2)
13
- jaro_winkler (1.5.3)
14
- json (2.2.0)
15
- parallel (1.18.0)
16
- parser (2.6.5.0)
17
- ast (~> 2.4.0)
13
+ parallel (1.20.1)
14
+ parser (3.0.0.0)
15
+ ast (~> 2.4.1)
18
16
  rainbow (3.0.0)
19
- rake (10.5.0)
17
+ rake (12.3.3)
18
+ regexp_parser (2.0.3)
19
+ rexml (3.2.5)
20
20
  rspec (3.9.0)
21
21
  rspec-core (~> 3.9.0)
22
22
  rspec-expectations (~> 3.9.0)
23
23
  rspec-mocks (~> 3.9.0)
24
- rspec-core (3.9.0)
25
- rspec-support (~> 3.9.0)
26
- rspec-expectations (3.9.0)
24
+ rspec-core (3.9.1)
25
+ rspec-support (~> 3.9.1)
26
+ rspec-expectations (3.9.1)
27
27
  diff-lcs (>= 1.2.0, < 2.0)
28
28
  rspec-support (~> 3.9.0)
29
- rspec-mocks (3.9.0)
29
+ rspec-mocks (3.9.1)
30
30
  diff-lcs (>= 1.2.0, < 2.0)
31
31
  rspec-support (~> 3.9.0)
32
- rspec-support (3.9.0)
33
- rubocop (0.75.1)
34
- jaro_winkler (~> 1.5.1)
32
+ rspec-support (3.9.2)
33
+ rubocop (0.93.1)
35
34
  parallel (~> 1.10)
36
- parser (>= 2.6)
35
+ parser (>= 2.7.1.5)
37
36
  rainbow (>= 2.2.2, < 4.0)
37
+ regexp_parser (>= 1.8)
38
+ rexml
39
+ rubocop-ast (>= 0.6.0)
38
40
  ruby-progressbar (~> 1.7)
39
- unicode-display_width (>= 1.4.0, < 1.7)
40
- ruby-progressbar (1.10.1)
41
- simplecov (0.17.1)
41
+ unicode-display_width (>= 1.4.0, < 2.0)
42
+ rubocop-ast (1.4.1)
43
+ parser (>= 2.7.1.5)
44
+ ruby-progressbar (1.11.0)
45
+ simplecov (0.18.5)
42
46
  docile (~> 1.1)
43
- json (>= 1.8, < 3)
44
- simplecov-html (~> 0.10.0)
45
- simplecov-html (0.10.2)
46
- slack-notifier (2.3.2)
47
- unicode-display_width (1.6.0)
47
+ simplecov-html (~> 0.11)
48
+ simplecov-html (0.12.2)
49
+ slack-notifier (2.4.0)
50
+ unicode-display_width (1.7.0)
48
51
 
49
52
  PLATFORMS
50
53
  ruby
51
54
 
52
55
  DEPENDENCIES
53
56
  bundler (~> 2.0)
54
- rake (~> 10.0)
57
+ rake (~> 12.3, >= 12.3.3)
55
58
  rspec (~> 3.8, >= 3.8.0)
56
- rubocop (~> 0.71, >= 0.71.0)
59
+ rubocop (~> 0.93, >= 0.93.1)
57
60
  simplecov (~> 0.16, >= 0.16.1)
58
61
  slack-notification!
59
62
 
60
63
  BUNDLED WITH
61
- 2.0.2
64
+ 2.1.2
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # SlackNotification
2
2
 
3
+ [![Gem Version](https://img.shields.io/gem/v/slack-notification.svg)](https://rubygems.org/gems/slack-notification)
4
+ [![Build Status](https://travis-ci.org/jfiander/slack-notification.svg)](https://travis-ci.org/jfiander/slack-notification)
5
+
3
6
  This is a simplified API for sending Slack messages from (e.g.) a Rails application.
4
7
 
5
8
  ## Installation
@@ -26,13 +29,13 @@ gem install slack-notification
26
29
 
27
30
  ```ruby
28
31
  SlackNotification.new(
29
- channel: 'channel-name-here', type: :success, title: 'Something Happened',
30
- fallback: "Plain-text version of the message.",
31
- fields: [
32
+ channel: 'channel-name-here', type: :success, title: 'Something Happened',
33
+ fallback: "Plain-text version of the message.",
34
+ fields: [
32
35
  { title: 'Field one', value: value_one, short: true },
33
36
  { title: 'Field two', value: value_two, short: true },
34
37
  { title: 'Longer field that needs more space.', value: value_three, short: false }
35
- ]
38
+ ]
36
39
  ).notify!
37
40
  ```
38
41
 
@@ -63,7 +66,7 @@ Fields can be formatted in several ways:
63
66
 
64
67
  Channels can be made available by setting ENV variables beginning with `SLACK_URL_`.
65
68
 
66
- If you are using Rails credentials, the `:slack` will take priority over ENV variables, if present.
69
+ If you are using Rails credentials, `.slack` will take priority over ENV variables, if present.
67
70
 
68
71
  The title field will default to `ENV['SLACK_DEFAULT_TITLE']`, if present.
69
72
 
data/Rakefile CHANGED
@@ -1,2 +1,4 @@
1
- require "bundler/gem_tasks"
2
- task :default => :spec
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ task default: :spec
@@ -20,7 +20,7 @@ class SlackNotification
20
20
  @data['fallback'] = @fallback || @data['title']
21
21
  @data['fields'] = @fields if @fields
22
22
  @data['color'] = slack_color
23
- @data['footer'] = Rails.env if defined?(Rails)
23
+ @data['footer'] = footer if footer
24
24
  @data
25
25
  end
26
26
 
@@ -31,9 +31,27 @@ class SlackNotification
31
31
  private
32
32
 
33
33
  def notifier
34
+ # :nocov:
34
35
  raise "Missing notifier url for #{@channel}." unless slack_urls[@channel]
35
36
 
36
37
  Slack::Notifier.new(slack_urls[@channel])
38
+ # :nocov:
39
+ end
40
+
41
+ def footer
42
+ return @footer unless @footer.nil?
43
+
44
+ # :nocov:
45
+ if ENV.key?('ASSET_ENVIRONMENT')
46
+ @footer = ENV['ASSET_ENVIRONMENT']
47
+ elsif defined?(Rails)
48
+ @footer = Rails.env
49
+ elsif ENV.key?('SLACK_FOOTER')
50
+ @footer = ENV['SLACK_FOOTER']
51
+ end
52
+ # :nocov:
53
+
54
+ @footer
37
55
  end
38
56
 
39
57
  def validated_fields(fields)
@@ -69,7 +87,7 @@ private
69
87
  unknown_channel(channel) unless slack_urls.keys.include?(channel)
70
88
 
71
89
  channel ||= 'notifications'
72
- channel = 'test' if defined?(Rails) && !Rails.env.production?
90
+ channel = 'test' if defined?(Rails) && !(Rails.env.production? || Rails.env.staging?)
73
91
  channel
74
92
  end
75
93
 
@@ -86,13 +104,15 @@ private
86
104
  end
87
105
 
88
106
  def credentials_urls?
89
- defined?(Rails) && Rails.application.credentials.respond_to?(:slack)
107
+ defined?(Rails) && !Rails.application.credentials.slack.nil?
90
108
  end
91
109
 
92
110
  def credentials_urls
93
- Rails.application.credentials.slack.each_with_object({}) do |(k, v), h|
94
- h[k.to_s.gsub('_', '-')] = v
111
+ # :nocov:
112
+ Rails.application.credentials.slack.transform_keys do |key|
113
+ key.to_s.gsub('_', '-')
95
114
  end
115
+ # :nocov:
96
116
  end
97
117
 
98
118
  def validated_type(type = nil)
@@ -5,7 +5,8 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'slack-notification'
8
- spec.version = '0.1.5'
8
+ spec.version = '0.1.9'
9
+ spec.date = '2021-08-26'
9
10
  spec.authors = ['Julian Fiander']
10
11
  spec.email = ['julian@fiander.one']
11
12
 
@@ -26,10 +27,12 @@ Gem::Specification.new do |spec|
26
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
28
  spec.require_paths = ['lib']
28
29
 
30
+ spec.required_ruby_version = '~> 2.5'
31
+
29
32
  spec.add_development_dependency 'bundler', '~> 2.0'
30
- spec.add_development_dependency 'rake', '~> 10.0'
33
+ spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
31
34
  spec.add_development_dependency 'rspec', '~> 3.8', '>= 3.8.0'
32
- spec.add_development_dependency 'rubocop', '~> 0.71', '>= 0.71.0'
35
+ spec.add_development_dependency 'rubocop', '~> 0.93', '>= 0.93.1'
33
36
  spec.add_development_dependency 'simplecov', '~> 0.16', '>= 0.16.1'
34
37
 
35
38
  spec.add_runtime_dependency 'slack-notifier', '~> 2.3'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack-notification
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Fiander
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-16 00:00:00.000000000 Z
11
+ date: 2021-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,20 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '12.3'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 12.3.3
34
37
  type: :development
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
- version: '10.0'
43
+ version: '12.3'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 12.3.3
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: rspec
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -64,20 +70,20 @@ dependencies:
64
70
  requirements:
65
71
  - - "~>"
66
72
  - !ruby/object:Gem::Version
67
- version: '0.71'
73
+ version: '0.93'
68
74
  - - ">="
69
75
  - !ruby/object:Gem::Version
70
- version: 0.71.0
76
+ version: 0.93.1
71
77
  type: :development
72
78
  prerelease: false
73
79
  version_requirements: !ruby/object:Gem::Requirement
74
80
  requirements:
75
81
  - - "~>"
76
82
  - !ruby/object:Gem::Version
77
- version: '0.71'
83
+ version: '0.93'
78
84
  - - ">="
79
85
  - !ruby/object:Gem::Version
80
- version: 0.71.0
86
+ version: 0.93.1
81
87
  - !ruby/object:Gem::Dependency
82
88
  name: simplecov
83
89
  requirement: !ruby/object:Gem::Requirement
@@ -120,6 +126,8 @@ extensions: []
120
126
  extra_rdoc_files: []
121
127
  files:
122
128
  - ".gitignore"
129
+ - ".rubocop.yml"
130
+ - ".travis.yml"
123
131
  - Gemfile
124
132
  - Gemfile.lock
125
133
  - LICENSE.txt
@@ -141,9 +149,9 @@ require_paths:
141
149
  - lib
142
150
  required_ruby_version: !ruby/object:Gem::Requirement
143
151
  requirements:
144
- - - ">="
152
+ - - "~>"
145
153
  - !ruby/object:Gem::Version
146
- version: '0'
154
+ version: '2.5'
147
155
  required_rubygems_version: !ruby/object:Gem::Requirement
148
156
  requirements:
149
157
  - - ">="