slack-notification 0.1.5 → 0.1.9

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
  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
  - - ">="