slack_messaging 1.4.0 → 2.0.0

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: 3508ee5d59522e0a8d3c931e165bee408d707240fc4c3a1aadbabd2d5b6799f9
4
- data.tar.gz: 67bc57eb2943f0f9f801eac68e25988ee4b06ac20835dd2f46b24b4599d213d5
3
+ metadata.gz: db2a04a6f53bd5e7d0d1017fe6fd5f6c715cc89d108be3dad1eb3a433f944be0
4
+ data.tar.gz: 5487fbcfcf279a48911d773c928826b8f7b2e021710d457c0fa256fa1660562e
5
5
  SHA512:
6
- metadata.gz: 0aa1c61dcb454f5beef05a9ecc13da9e16a258812952013675d2bc5a4b3230d6f80f9b08d47d3de0168a6fb85a180fe1a9d2b78e6b68474c6ae615fdf7639081
7
- data.tar.gz: dd9967c7e2347435a1194961f03f7d5329f45cb839a47130cc1bb901cd324234e854a457a274cfccc54c9903cd322157f06dc0b61baa9e283d21daa549c7dc51
6
+ metadata.gz: 76485ac006bb26c047e57e06283ced474b36c5924229dbd58b83a3ea8e2e30e92e8ca916fb7fd24b538ad235a54f427f29e03e4f1dcff382b57eb69d7b71e578
7
+ data.tar.gz: fe229444fe0b9a050d29a6b8c2fc653f287b85d49f965efc76cc81b5f7f3eb677fd79376a0fff012460febc1cd61d4896e9b6f0cf2098557b7a34130de155c42
@@ -1,12 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- slack_messaging (1.4.0)
4
+ slack_messaging (2.0.0.pre.test)
5
5
  activesupport (~> 6.0)
6
6
  gli (~> 2.10)
7
7
  hashie (~> 4.1)
8
8
  highline (~> 2.0)
9
9
  httparty
10
+ json
10
11
  rack (~> 2.2)
11
12
 
12
13
  GEM
@@ -47,6 +48,7 @@ GEM
47
48
  multi_xml (>= 0.5.2)
48
49
  i18n (1.8.5)
49
50
  concurrent-ruby (~> 1.0)
51
+ json (2.3.1)
50
52
  listen (3.3.1)
51
53
  rb-fsevent (~> 0.10, >= 0.10.3)
52
54
  rb-inotify (~> 0.9, >= 0.9.10)
@@ -96,6 +98,7 @@ DEPENDENCIES
96
98
  bundler (~> 2.1)
97
99
  faker
98
100
  guard-rspec (~> 4.3)
101
+ pry
99
102
  rake (~> 13.0)
100
103
  rspec (~> 3.9)
101
104
  slack_messaging!
data/README.md CHANGED
@@ -50,7 +50,7 @@ To print a friendly message to Slack, run:
50
50
  slack-messaging slack
51
51
  ```
52
52
 
53
- from the main directory. Here, no specific message is being given to print to Slack, so slack_messaging will choose a random quote, which are all defined in [`lib/slack_messaging/random_message.rb`](https://github.com/emmasax4/slack_messaging/blob/main/lib/slack_messaging/random_message.rb). Feel free to change the messages or add more to cater what you'd like slack_messaging to say.
53
+ from the main directory. Here, no specific message is being given to print to Slack, so slack_messaging will choose a random quote. The random quotes are selected using the [Quotable API](http://api.quotable.io/).
54
54
 
55
55
  However, what if you wanted to print something specific? Well, you can! Just run:
56
56
 
@@ -2,6 +2,7 @@ require 'yaml'
2
2
  require 'hashie'
3
3
  require 'httparty'
4
4
  require 'highline'
5
+ require 'json'
5
6
 
6
7
  Dir[File.expand_path(File.join(File.dirname(File.absolute_path(__FILE__)), 'slack_messaging')) + '/**/*.rb'].each do |file|
7
8
  require_relative file
@@ -1,30 +1,10 @@
1
1
  module SlackMessaging
2
2
  class RandomMessage
3
- MESSAGE_ARRAY = [
4
- "A true friend is someone who thinks that you are a good egg even though he knows that you are slightly cracked.\n--Bernard Meltzer",
5
- "If you can't make it good, at least make it look good.\n--Bill Gates",
6
- "I'm convinced of this: Good done anywhere is good done everywhere.\n--Maya Angelou",
7
- "The real trouble with reality is that there's no background music.\n--Anonymous",
8
- "Whatever you are, be a good one.\n--Abraham Lincoln",
9
- "Good, better, best. Never let it rest. 'Til your good is better and your better is best.\n--St. Jerome",
10
- "Despite everything, I believe that people are really good at heart.\n--Anne Frank",
11
- "Life is 10% what happens to you and 90% how you react to it.\n--Charles R. Swindoll",
12
- "The way to get started is to quit talking and begin doing.\n--Walt Disney",
13
- "A creative man is motivated by the desire to achieve, not by the desire to beat others.\n--Ayn Rand",
14
- "Problems are not stop signs, they are guidelines.\n--Robert H. Schuller",
15
- "Correction does much, but encouragement does more.\n--Johann Wolfgang von Goethe",
16
- "Positive anything is better than negative nothing.\n--Elbert Hubbard",
17
- "To succeed, you need to find something to hold on to, something to motivate you, something to inspire you.\n--Joyce Meyer",
18
- "If you're not making mistakes, then you're not doing anything. I'm positive that a doer makes mistakes.\n--John Wooden",
19
- "The best way to deal with other people is to just let them be other people.\n--Anonymous",
20
- "Talk to yourself like you would to someone you love.\n--Brenee Brown",
21
- "Don't let small minds convince you that your dreams are too big.\n--Anonymous",
22
- ]
23
-
24
- attr_accessor :text
25
-
26
- def initialize
27
- self.text = MESSAGE_ARRAY[rand(MESSAGE_ARRAY.length)]
3
+ def self.acquire_random_quote
4
+ random_quote = HTTParty.get('http://api.quotable.io/random', headers: { 'Content-Type': 'application/json' }).body
5
+ quote_content = JSON.parse(random_quote)['content']
6
+ quote_author = JSON.parse(random_quote)['author']
7
+ return "\"#{quote_content}\"" + "\n" + "—#{quote_author}"
28
8
  end
29
9
  end
30
10
  end
@@ -4,8 +4,8 @@ module SlackMessaging
4
4
 
5
5
  def self.execute(args, options = nil)
6
6
  if args.empty?
7
- message = SlackMessaging::RandomMessage.new
8
- print_message(message.text)
7
+ message = SlackMessaging::RandomMessage.acquire_random_quote
8
+ print_message(message)
9
9
  else
10
10
  args.each do |message|
11
11
  print_message(message)
@@ -13,6 +13,8 @@ module SlackMessaging
13
13
  end
14
14
  end
15
15
 
16
+ private
17
+
16
18
  def self.print_message(message)
17
19
  SlackMessaging::NotifySlack.new(message).perform
18
20
  end
@@ -1,3 +1,3 @@
1
1
  module SlackMessaging
2
- VERSION = '1.4.0'
2
+ VERSION = '2.0.0'
3
3
  end
@@ -2,23 +2,42 @@ require 'spec_helper'
2
2
  require 'slack_messaging'
3
3
 
4
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
+
5
19
  it 'should get a string message' do
6
- message = SlackMessaging::RandomMessage.new
7
- expect(message.text).to be_instance_of(String)
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)
8
27
  end
9
28
 
10
- it 'should get a message greater than 25 characters' do
11
- message = SlackMessaging::RandomMessage.new
12
- expect(message.text.length).to be >= 50
29
+ it 'should get a message that includes a ' do
30
+ message = SlackMessaging::RandomMessage.acquire_random_quote
31
+ expect(message.include?('—')).to eq(true)
13
32
  end
14
33
 
15
- it 'should get a message that includes a new line' do
16
- message = SlackMessaging::RandomMessage.new
17
- expect(message.text.include?("\n")).to eq(true)
34
+ it 'should use HTTParty to ping an API' do
35
+ expect(HTTParty).to receive(:get)
36
+ SlackMessaging::RandomMessage.acquire_random_quote
18
37
  end
19
38
 
20
- it 'should get a message that includes a --' do
21
- message = SlackMessaging::RandomMessage.new
22
- expect(message.text.include?('--')).to eq(true)
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
23
42
  end
24
43
  end
@@ -1,4 +1,5 @@
1
1
  require 'faker'
2
+ require 'pry'
2
3
 
3
4
  # This file was generated by the `rspec --init` command. Conventionally, all
4
5
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack_messaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 2.0.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-11-19 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
14
  name: activesupport
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
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'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rack
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +150,20 @@ dependencies:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
152
  version: '4.3'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: rake
141
169
  requirement: !ruby/object:Gem::Requirement