slack_messaging 1.2.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module SlackMessaging
2
- VERSION = "1.2.0"
2
+ VERSION = '2.0.0'
3
3
  end
@@ -1,44 +1,53 @@
1
1
  require 'spec_helper'
2
2
  require 'slack_messaging'
3
3
 
4
- module SlackMessaging
5
- describe Config do
4
+ describe SlackMessaging::Config do
5
+ context 'config key methods' do
6
+ it 'should return nil when not set' do
7
+ expect(SlackMessaging::Config.doesnt_exist).to eql(nil)
8
+ expect(SlackMessaging::Config.doesnt_exist?).to eql(false)
9
+ end
6
10
 
7
- context "config key methods" do
8
- it "should return nil when not set" do
9
- expect(SlackMessaging::Config.doesnt_exist).to eql(nil)
10
- expect(SlackMessaging::Config.doesnt_exist?).to eql(false)
11
- end
12
- it "should return the config value when set" do
13
- SlackMessaging::Config.new_value = "testing"
14
- expect(SlackMessaging::Config.new_value).to eql("testing")
15
- end
11
+ it 'should return the config value when set' do
12
+ config_value = Faker::Lorem.word
13
+ SlackMessaging::Config.new_value = config_value
14
+ expect(SlackMessaging::Config.new_value).to eql(config_value)
16
15
  end
16
+ end
17
17
 
18
- context "after loading a config file" do
19
- before do
20
- config_file = {"domain" => "example_domain",
21
- "slack" => {"slack_option" => true,
22
- "username" => "Rspec Tester",
23
- "icon_url" => "http://fake.url",
24
- "channel" => "#test-channel",
25
- "webhook" => "https://slack.web.hook"}}
26
- allow(YAML).to receive(:load_file).and_return(config_file)
27
- allow(File).to receive(:exist?).and_return(true)
28
- SlackMessaging::Config.load("dummy/path")
29
- end
18
+ context 'after loading a config file' do
19
+ let(:domain) { Faker::Internet.domain_name }
20
+ let(:sentence) { Faker::Lorem.sentence }
21
+
22
+ let(:config_file) do
23
+ {
24
+ 'domain': domain,
25
+ 'slack': {
26
+ 'slack_option': true,
27
+ 'username': Faker::Name.name,
28
+ 'icon_url': Faker::Internet.url,
29
+ 'channel': Faker::Lorem.word,
30
+ 'webhook': Faker::Internet.url
31
+ }
32
+ }
33
+ end
30
34
 
31
- it "calling a method corresponding to a key in the file should return the value" do
32
- expect(SlackMessaging::Config.domain).to eql("example_domain")
33
- expect(SlackMessaging::Config.slack).to be_kind_of(Hash)
34
- expect(SlackMessaging::Config.slack[:slack_option]).to eql(true)
35
- end
35
+ before do
36
+ allow(YAML).to receive(:load_file).and_return(config_file)
37
+ allow(File).to receive(:exist?).and_return(true)
38
+ SlackMessaging::Config.load(Faker::Lorem.word)
39
+ end
40
+
41
+ it 'calling a method corresponding to a key in the file should return the value' do
42
+ expect(SlackMessaging::Config.domain).to eql(domain)
43
+ expect(SlackMessaging::Config.slack).to be_kind_of(Hash)
44
+ expect(SlackMessaging::Config.slack[:slack_option]).to eql(true)
45
+ end
36
46
 
37
- it "overwriting values should work" do
38
- expect(SlackMessaging::Config.slack).to be_kind_of(Hash)
39
- SlackMessaging::Config.slack = "this is a string now"
40
- expect(SlackMessaging::Config.slack).to eql("this is a string now")
41
- end
47
+ it 'overwriting values should work' do
48
+ expect(SlackMessaging::Config.slack).to be_kind_of(Hash)
49
+ SlackMessaging::Config.slack = sentence
50
+ expect(SlackMessaging::Config.slack).to eql(sentence)
42
51
  end
43
52
  end
44
53
  end
@@ -1,34 +1,43 @@
1
- require "slack_messaging"
1
+ require 'spec_helper'
2
+ require 'slack_messaging'
2
3
 
3
- module SlackMessaging
4
- describe NotifySlack do
5
- before :each do
6
- config_file = {"slack" => {"channel" => "#random-test-channel",
7
- "username" => "Random User",
8
- "webhook_url" => "https://hooks.slack.com/services/totallyrandom/fakewebhookurl",
9
- "icon_emoji" => ":wine_glass:"}
10
- }
11
- allow(YAML).to receive(:load_file).and_return(config_file)
12
- allow(File).to receive(:exist?).and_return(true)
13
- SlackMessaging::Config.load("dummy/path")
14
- end
4
+ describe SlackMessaging::NotifySlack do
5
+ let(:sentence) { Faker::Lorem.sentence }
6
+ let(:channel) { Faker::Lorem.word }
7
+ let(:username) { Faker::Name.name }
8
+ let(:webhook) { Faker::Internet.url }
9
+ let(:emoji) { Faker::Internet.url }
15
10
 
16
- it 'should ping Slack Notifier' do
17
- notifier = double('notifier', ping: true)
18
- allow(Slack::Notifier).to receive(:new).and_return(notifier)
19
- expect(notifier).to receive(:ping).and_return(true)
20
- message = NotifySlack.new("Test message")
21
- message.perform
22
- end
11
+ let(:config_file) do
12
+ {
13
+ 'slack': {
14
+ 'slack_option': true,
15
+ 'username': username,
16
+ 'icon_emoji': emoji,
17
+ 'channel': channel,
18
+ 'webhook_url': webhook
19
+ }
20
+ }
21
+ end
22
+
23
+ before :each do
24
+ allow(YAML).to receive(:load_file).and_return(config_file)
25
+ allow(File).to receive(:exist?).and_return(true)
26
+ SlackMessaging::Config.load(Faker::Lorem.word)
27
+ end
28
+
29
+ it 'should call HTTParty' do
30
+ expect(HTTParty).to receive(:post)
31
+ message = SlackMessaging::NotifySlack.new(sentence)
32
+ message.perform
33
+ end
23
34
 
24
- it 'should define certain values' do
25
- message = NotifySlack.new("Test message")
26
- expect(message.text).to eq("Test message")
27
- expect(message.channel).to eq("#random-test-channel")
28
- expect(message.username).to eq("Random User")
29
- expect(message.webhook_url).to eq("https://hooks.slack.com/services/totallyrandom/fakewebhookurl")
30
- expect(message.icon_emoji).to eq(":wine_glass:")
31
- end
32
-
35
+ it 'should define certain values' do
36
+ message = SlackMessaging::NotifySlack.new(sentence)
37
+ expect(message.text).to eq(sentence)
38
+ expect(message.channel).to eq(channel)
39
+ expect(message.username).to eq(username)
40
+ expect(message.webhook_url).to eq(webhook)
41
+ expect(message.icon_emoji).to eq(emoji)
33
42
  end
34
43
  end
@@ -1,26 +1,43 @@
1
- require "slack_messaging"
2
-
3
- module SlackMessaging
4
- describe RandomMessage do
5
-
6
- it "should get a string message" do
7
- message = RandomMessage.new
8
- expect(message.get_text).to be_instance_of(String)
9
- end
10
-
11
- it "should get a message greater than 25 characters" do
12
- message = RandomMessage.new
13
- expect(message.get_text.length).to be >= 50
14
- end
15
-
16
- it "should get a message that includes a new line" do
17
- message = RandomMessage.new
18
- expect(message.get_text.include?("\n")).to eq(true)
19
- end
20
-
21
- it "should get a message that includes a '--'" do
22
- message = RandomMessage.new
23
- expect(message.get_text.include?("--")).to eq(true)
24
- end
1
+ require 'spec_helper'
2
+ require 'slack_messaging'
3
+
4
+ describe SlackMessaging::RandomMessage do
5
+ let(:quote_object) { double(:quote_object, body: quote_json) }
6
+
7
+ let(:quote_json) do
8
+ "{\"_id\":\"4MRaRRKq4Tcg\",
9
+ \"tags\":[\"famous-quotes\"],
10
+ \"content\":\"There are two ways of spreading light: to be the candle or the mirror that reflects it.\",
11
+ \"author\":\"Edith Wharton\",\"length\":87
12
+ }"
13
+ end
14
+
15
+ before do
16
+ allow(HTTParty).to receive(:get).and_return(quote_object)
17
+ end
18
+
19
+ it 'should get a string message' do
20
+ message = SlackMessaging::RandomMessage.acquire_random_quote
21
+ expect(message).to be_instance_of(String)
22
+ end
23
+
24
+ it 'should get a message that includes a newline' do
25
+ message = SlackMessaging::RandomMessage.acquire_random_quote
26
+ expect(message.include?("\n")).to eq(true)
27
+ end
28
+
29
+ it 'should get a message that includes a —' do
30
+ message = SlackMessaging::RandomMessage.acquire_random_quote
31
+ expect(message.include?('—')).to eq(true)
32
+ end
33
+
34
+ it 'should use HTTParty to ping an API' do
35
+ expect(HTTParty).to receive(:get)
36
+ SlackMessaging::RandomMessage.acquire_random_quote
37
+ end
38
+
39
+ it 'should have the JSON parse the response content twice' do
40
+ expect(JSON).to receive(:parse).at_least(2).times.and_return(JSON.parse(quote_json))
41
+ SlackMessaging::RandomMessage.acquire_random_quote
25
42
  end
26
43
  end
@@ -1,8 +1,5 @@
1
- require 'simplecov'
2
-
3
- SimpleCov.start do
4
- add_filter '/spec/'
5
- end
1
+ require 'faker'
2
+ require 'pry'
6
3
 
7
4
  # This file was generated by the `rspec --init` command. Conventionally, all
8
5
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
@@ -37,6 +34,9 @@ RSpec.configure do |config|
37
34
  expectations.include_chain_clauses_in_custom_matcher_descriptions = true
38
35
  end
39
36
 
37
+ config.filter_run :focus => true
38
+ config.run_all_when_everything_filtered = true
39
+
40
40
  # rspec-mocks config goes here. You can use an alternate test double
41
41
  # library (such as bogus or mocha) by changing the `mock_with` option here.
42
42
  config.mock_with :rspec do |mocks|
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack_messaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emma Sax
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-29 00:00:00.000000000 Z
11
+ date: 2020-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: hashie
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.3'
19
+ version: '6.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.3'
26
+ version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gli
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,105 +39,119 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.10'
41
41
  - !ruby/object:Gem::Dependency
42
- name: highline
42
+ name: hashie
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.6'
47
+ version: '4.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.6'
54
+ version: '4.1'
55
55
  - !ruby/object:Gem::Dependency
56
- name: slack-notifier
56
+ name: highline
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.5.1
61
+ version: '2.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.5.1
68
+ version: '2.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rack
70
+ name: httparty
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 1.6.12
75
+ version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 1.6.12
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: activesupport
84
+ name: json
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rack
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 4.1.11
103
+ version: '2.2'
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 4.1.11
110
+ version: '2.2'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: bundler
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '1.7'
117
+ version: '2.1'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '1.7'
124
+ version: '2.1'
111
125
  - !ruby/object:Gem::Dependency
112
- name: rake
126
+ name: faker
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - "~>"
129
+ - - ">="
116
130
  - !ruby/object:Gem::Version
117
- version: 12.3.3
131
+ version: '0'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - "~>"
136
+ - - ">="
123
137
  - !ruby/object:Gem::Version
124
- version: 12.3.3
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
- name: rspec
140
+ name: guard-rspec
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: 3.4.0
145
+ version: '4.3'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: 3.4.0
152
+ version: '4.3'
139
153
  - !ruby/object:Gem::Dependency
140
- name: simplecov
154
+ name: pry
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - ">="
@@ -150,7 +164,35 @@ dependencies:
150
164
  - - ">="
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
153
- description: Sending Personalized Slack Messages
167
+ - !ruby/object:Gem::Dependency
168
+ name: rake
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '13.0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '13.0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rspec
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '3.9'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '3.9'
195
+ description: Sending Personalized Slack Messages to a Slack channel of your choice.
154
196
  email:
155
197
  - emma.sax4@gmail.com
156
198
  executables:
@@ -158,43 +200,30 @@ executables:
158
200
  extensions: []
159
201
  extra_rdoc_files: []
160
202
  files:
161
- - ".codeclimate.yml"
162
- - ".github/ISSUE_TEMPLATE/bug_report.md"
163
- - ".github/ISSUE_TEMPLATE/feature_request.md"
164
- - ".gitignore"
165
- - ".octopolo.yml"
166
- - ".rspec"
167
- - ".ruby-gemset"
168
- - ".ruby-version"
169
- - ".soyuz.yml"
170
- - ".travis.yml"
171
- - CHANGELOG.markdown
172
- - CODE_OF_CONDUCT.md
173
- - CONTRIBUTING.md
174
203
  - Gemfile
175
- - LICENSE.txt
204
+ - Gemfile.lock
205
+ - Guardfile
206
+ - LICENSE
176
207
  - OutputFile.png
177
208
  - README.md
178
209
  - Rakefile
179
210
  - bin/slack-messaging
180
211
  - lib/slack_messaging.rb
181
- - lib/slack_messaging/commands/slack.rb
182
212
  - lib/slack_messaging/config.rb
213
+ - lib/slack_messaging/default_paths.rb
183
214
  - lib/slack_messaging/notify_slack.rb
184
- - lib/slack_messaging/output.rb
185
215
  - lib/slack_messaging/random_message.rb
186
- - lib/slack_messaging/scripts/slack.rb
216
+ - lib/slack_messaging/slack.rb
187
217
  - lib/slack_messaging/version.rb
188
- - slack_messaging.gemspec
189
218
  - spec/slack_messaging/config_spec.rb
190
219
  - spec/slack_messaging/notify_slack_spec.rb
191
220
  - spec/slack_messaging/random_message_spec.rb
192
221
  - spec/spec_helper.rb
193
- homepage: https://github.com/emma-sax4/slack_messaging
222
+ homepage: https://github.com/emmasax4/slack_messaging
194
223
  licenses:
195
224
  - MIT
196
225
  metadata: {}
197
- post_install_message:
226
+ post_install_message:
198
227
  rdoc_options: []
199
228
  require_paths:
200
229
  - lib
@@ -209,12 +238,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
238
  - !ruby/object:Gem::Version
210
239
  version: '0'
211
240
  requirements: []
212
- rubygems_version: 3.0.2
213
- signing_key:
241
+ rubygems_version: 3.1.4
242
+ signing_key:
214
243
  specification_version: 4
215
- summary: Sending Personalized Slack Messages
244
+ summary: Personalized Slack Messages
216
245
  test_files:
246
+ - spec/spec_helper.rb
217
247
  - spec/slack_messaging/config_spec.rb
218
- - spec/slack_messaging/notify_slack_spec.rb
219
248
  - spec/slack_messaging/random_message_spec.rb
220
- - spec/spec_helper.rb
249
+ - spec/slack_messaging/notify_slack_spec.rb