slack_messaging 1.2.1 → 2.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.
@@ -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.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emma Sax
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-09 00:00:00.000000000 Z
11
+ date: 2021-01-06 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
@@ -38,119 +38,161 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.10'
41
+ - !ruby/object:Gem::Dependency
42
+ name: hashie
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '4.1'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: highline
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '1.6'
61
+ version: '2.0'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '1.6'
68
+ version: '2.0'
55
69
  - !ruby/object:Gem::Dependency
56
- name: slack-notifier
70
+ name: httparty
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: 1.5.1
75
+ version: '0.18'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: 1.5.1
82
+ version: '0.18'
69
83
  - !ruby/object:Gem::Dependency
70
- name: rack
84
+ name: json
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ">="
87
+ - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: 2.1.4
89
+ version: '2.5'
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ">="
94
+ - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: 2.1.4
96
+ version: '2.5'
83
97
  - !ruby/object:Gem::Dependency
84
- name: activesupport
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: '2.1'
117
+ version: '2.2'
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: '2.1'
124
+ version: '2.2'
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: '2.15'
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: '2.15'
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
+ - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '0'
159
+ version: '0.13'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - ">="
164
+ - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '0'
153
- description: Sending Personalized Slack Messages
166
+ version: '0.13'
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,36 +200,20 @@ executables:
158
200
  extensions: []
159
201
  extra_rdoc_files: []
160
202
  files:
161
- - ".codeclimate.yml"
162
- - ".github/code_of_conduct.md"
163
- - ".github/issue_template.md"
164
- - ".github/pull_request_template.md"
165
- - ".github/security.md"
166
- - ".github/workflows/develop.yml"
167
- - ".gitignore"
168
- - ".octopolo.yml"
169
- - ".rspec"
170
- - ".ruby-gemset"
171
- - ".ruby-version"
172
- - ".soyuz.yml"
173
- - CHANGELOG.markdown
174
- - CODE_OF_CONDUCT.md
175
- - CONTRIBUTING.md
176
203
  - Gemfile
177
- - LICENSE.txt
178
- - OutputFile.png
204
+ - Guardfile
205
+ - LICENSE
206
+ - QuoteExample.png
179
207
  - README.md
180
208
  - Rakefile
181
209
  - bin/slack-messaging
182
210
  - lib/slack_messaging.rb
183
- - lib/slack_messaging/commands/slack.rb
184
211
  - lib/slack_messaging/config.rb
212
+ - lib/slack_messaging/default_paths.rb
185
213
  - lib/slack_messaging/notify_slack.rb
186
- - lib/slack_messaging/output.rb
187
214
  - lib/slack_messaging/random_message.rb
188
- - lib/slack_messaging/scripts/slack.rb
215
+ - lib/slack_messaging/slack.rb
189
216
  - lib/slack_messaging/version.rb
190
- - slack_messaging.gemspec
191
217
  - spec/slack_messaging/config_spec.rb
192
218
  - spec/slack_messaging/notify_slack_spec.rb
193
219
  - spec/slack_messaging/random_message_spec.rb
@@ -211,12 +237,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
237
  - !ruby/object:Gem::Version
212
238
  version: '0'
213
239
  requirements: []
214
- rubygems_version: 3.1.2
240
+ rubygems_version: 3.2.3
215
241
  signing_key:
216
242
  specification_version: 4
217
- summary: Sending Personalized Slack Messages
243
+ summary: Personalized Slack Messages
218
244
  test_files:
245
+ - spec/spec_helper.rb
219
246
  - spec/slack_messaging/config_spec.rb
220
247
  - spec/slack_messaging/notify_slack_spec.rb
221
248
  - spec/slack_messaging/random_message_spec.rb
222
- - spec/spec_helper.rb
@@ -1,37 +0,0 @@
1
- version: "2"
2
- checks:
3
- argument-count:
4
- config:
5
- threshold: 4
6
- complex-logic:
7
- config:
8
- threshold: 4
9
- file-lines:
10
- config:
11
- threshold: 250
12
- method-complexity:
13
- config:
14
- threshold: 8
15
- method-count:
16
- config:
17
- threshold: 20
18
- method-lines:
19
- config:
20
- threshold: 25
21
- nested-control-flow:
22
- config:
23
- threshold: 4
24
- return-statements:
25
- config:
26
- threshold: 4
27
- similar-code:
28
- config:
29
- threshold: # language-specific defaults. an override will affect all languages.
30
- identical-code:
31
- config:
32
- threshold: # language-specific defaults. an override will affect all languages.
33
- exclude_patterns:
34
- - "**/spec/"
35
- - "**/test/"
36
- - "**/vendor/"
37
- - "**/*.js"
@@ -1,85 +0,0 @@
1
- # Contributor Covenant Code of Conduct
2
-
3
- ### Table of Contents
4
-
5
- * [Our Pledge](#our-pledge)
6
- * [Our Standards](#our-standards)
7
- * [Our Responsibilities](#our-responsibilities)
8
- * [Scope](#scope)
9
- * [Enforcement](#enforcement)
10
- * [Attribution](#attribution)
11
-
12
- ## Our Pledge
13
-
14
- In the interest of fostering an open and welcoming environment, we as
15
- contributors and maintainers pledge to making participation in our project and
16
- our community a harassment-free experience for everyone, regardless of age, body
17
- size, disability, ethnicity, sex characteristics, gender identity and expression,
18
- level of experience, education, socio-economic status, nationality, personal
19
- appearance, race, religion, or sexual identity and orientation.
20
-
21
- ## Our Standards
22
-
23
- Examples of behavior that contributes to creating a positive environment
24
- include:
25
-
26
- * Using welcoming and inclusive language
27
- * Being respectful of differing viewpoints and experiences
28
- * Gracefully accepting constructive criticism
29
- * Focusing on what is best for the community
30
- * Showing empathy towards other community members
31
-
32
- Examples of unacceptable behavior by participants include:
33
-
34
- * The use of sexualized language or imagery and unwelcome sexual attention or
35
- advances
36
- * Trolling, insulting/derogatory comments, and personal or political attacks
37
- * Public or private harassment
38
- * Publishing others' private information, such as a physical or electronic
39
- address, without explicit permission
40
- * Other conduct which could reasonably be considered inappropriate in a
41
- professional setting
42
-
43
- ## Our Responsibilities
44
-
45
- Project maintainers are responsible for clarifying the standards of acceptable
46
- behavior and are expected to take appropriate and fair corrective action in
47
- response to any instances of unacceptable behavior.
48
-
49
- Project maintainers have the right and responsibility to remove, edit, or
50
- reject comments, commits, code, wiki edits, issues, and other contributions
51
- that are not aligned to this Code of Conduct, or to ban temporarily or
52
- permanently any contributor for other behaviors that they deem inappropriate,
53
- threatening, offensive, or harmful.
54
-
55
- ## Scope
56
-
57
- This Code of Conduct applies both within project spaces and in public spaces
58
- when an individual is representing the project or its community. Examples of
59
- representing a project or community include using an official project e-mail
60
- address, posting via an official social media account, or acting as an appointed
61
- representative at an online or offline event. Representation of a project may be
62
- further defined and clarified by project maintainers.
63
-
64
- ## Enforcement
65
-
66
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
67
- reported by contacting the project team at emma.sax4@gmail.com. All
68
- complaints will be reviewed and investigated and will result in a response that
69
- is deemed necessary and appropriate to the circumstances. The project team is
70
- obligated to maintain confidentiality with regard to the reporter of an incident.
71
- Further details of specific enforcement policies may be posted separately.
72
-
73
- Project maintainers who do not follow or enforce the Code of Conduct in good
74
- faith may face temporary or permanent repercussions as determined by other
75
- members of the project's leadership.
76
-
77
- ## Attribution
78
-
79
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
80
- available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html).
81
-
82
- [homepage]: [https://www.contributor-covenant.org](https://www.contributor-covenant.org)
83
-
84
- For answers to common questions about this code of conduct, see
85
- [https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq).