lita-memegen 1.0.4 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/lita/handlers/memegen.rb +19 -51
- data/lib/lita-memegen.rb +2 -1
- data/lib/meme_generator.rb +68 -0
- data/lita-memegen.gemspec +3 -3
- data/spec/lib/meme_generator_spec.rb +79 -0
- data/spec/lita/handlers/memegen_spec.rb +205 -8
- data/spec/spec_helper.rb +3 -1
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 850b263c6fd0b6c212b85f84d278e91337c5d268
|
4
|
+
data.tar.gz: 0ba7bc4292cf826fa1cbe74115a93e98cb40bc75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c416342fe3f0fc8459d2aa74c2a32c31ba7163cb3850f3af648e080bc5852a017b3f8300fd67dae87e32097349cecdf002e7487e8a0ca66c7fcaebeab5c5e79a
|
7
|
+
data.tar.gz: 2c08beb3167ecc53aca98cba1b38a79c6ae433ab16161a4058493efa1b8ffaf952ad373f01492e3506f864f752d4c1b7b19a052a7e2ccc51cd3a6e175c38007c
|
@@ -9,26 +9,26 @@ module Lita
|
|
9
9
|
config.username = nil
|
10
10
|
config.password = nil
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
route %r{(Y U NO) (.+)}i, :meme_y_u_no, help: { "Y U NO..." => "generates Y U NO meme"}
|
14
|
-
route %r{(I DON'?T ALWAYS .*) (BUT WHEN I DO,? .*)}i, :meme_i_dont_always, help: { "I DON'T ALWAYS .. BUT WHEN I DO, .." => "generates I DON'T ALWAY meme"}
|
15
|
-
route %r{(.*)(O\s?RLY\??.*)}i, :meme_orly, help: { "..O RLY.." => "generates O RLY meme" }
|
14
|
+
route %r{(I DON'?T ALWAYS .*) (BUT WHEN I DO,? .*)}i, :meme_i_dont_always, help: { "I DON'T ALWAYS .. BUT WHEN I DO, .." => "generates I DON'T ALWAY meme"}
|
15
|
+
route %r{(.*)(O\s?RLY\??.*)}i, :meme_orly, help: { "..O RLY.." => "generates O RLY meme" }
|
16
16
|
route %r{(.*)(SUCCESS|NAILED IT.*)}, :meme_success, help: { "..SUCCESS.." => "(case sensitive) generates SUCCESS meme", "..NAILED IT.." => "generates NAILED IT meme" }
|
17
17
|
route %r{(.*) (ALL the .*)}, :meme_all_the, help: { "ALL the.." => "(case sensitive) generates ALL the <things> meme" }
|
18
18
|
route %r{(.*) (\w+\sTOO DAMN .*)}i, :meme_too_damn, help: { "TOO DAMN.." => "generates TOO DAMN meme" }
|
19
|
-
route %r{(GOOD NEWS EVERYONE[,.!]?) (.*)}i, :meme_good_news, help: { "GOOD NEWS EVERYONE.." => "generates GOOD NEWS EVERYONE meme" }
|
19
|
+
route %r{(GOOD NEWS EVERYONE[,.!]?) (.*)}i, :meme_good_news, help: { "GOOD NEWS EVERYONE.." => "generates GOOD NEWS EVERYONE meme" }
|
20
20
|
route %r{(NOT SURE IF .*) (OR .*)}i, :meme_not_sure_if, help: { "NOT SURE IF.. OR.." => "generates NOT SURE IF .. OR meme" }
|
21
|
-
route %r{(YO DAWG .*) (SO .*)}i, :meme_yo_dawg, help: { "YO DAWG.." => "generates YO DAWG meme" }
|
22
|
-
route %r{(ALL YOUR .*) (ARE BELONG TO US)}i, :meme_are_belong, help: { "ALL YOUR.. ARE BELONG TO US" => "generates ALL YOUR.. ARE BELONG TO US meme" }
|
23
|
-
route %r{(.*) (FUCK YOU)}i, :meme_fuck_you, help: { "..FUCK YOU" => "generates ..FUCK YOU meme" }
|
24
|
-
route %r{(.*) (You'?re gonna have a bad time)}i, :meme_bad_time, help: { ".. You're going have a bad time" => "generates You're gonna have a bad time meme" }
|
25
|
-
route %r{(one does not simply) (.*)}i, :meme_simply, help: { "one does not simply.." => "generates one does not simply.. meme" }
|
26
|
-
route %r{(grumpy cat) (.*),(.*)}i, :meme_grumpy_cat, help: { "grumpy cat .. , .." => "generates grumpy cat .. , .. meme" }
|
27
|
-
route %r{(it looks like you're|it looks like you) (.*)}i, :meme_looks_like, help: { "it looks like you're .." => "generates it looks like you're .. meme", "it looks like you.." => "(case insensitive) generates it looks like you.. meme" }
|
28
|
-
route %r{(AM I THE ONLY ONE AROUND HERE) (.*)}i, :meme_am_i_only, help: { "AM I THE ONLY ONE AROUND HERE.." => "generates AM I THE ONLY ONE AROUND HERE.. meme" }
|
29
|
-
route %r{(.*)(NOT IMPRESSED*)}i, :meme_not_impressed, help: { "..NOT IMPRESSED" => "generates ..NOT IMPRESSED meme" }
|
30
|
-
route %r{(PREPARE YOURSELF) (.*)}i, :meme_prepare_yourself, help: { "PREPARE YOURSELF.." => "generates PREPARE YOURSELF.. meme" }
|
31
|
-
route %r{(WHAT IF I TOLD YOU) (.*)}i, :meme_what_if_i, help: { "WHAT IF I TOLD YOU.." => "generates WHAT IF I TOLD YOU.. meme" }
|
21
|
+
route %r{(YO DAWG .*) (SO .*)}i, :meme_yo_dawg, help: { "YO DAWG.." => "generates YO DAWG meme" }
|
22
|
+
route %r{(ALL YOUR .*) (ARE BELONG TO US)}i, :meme_are_belong, help: { "ALL YOUR.. ARE BELONG TO US" => "generates ALL YOUR.. ARE BELONG TO US meme" }
|
23
|
+
route %r{(.*) (FUCK YOU)}i, :meme_fuck_you, help: { "..FUCK YOU" => "generates ..FUCK YOU meme" }
|
24
|
+
route %r{(.*) (You'?re gonna have a bad time)}i, :meme_bad_time, help: { ".. You're going have a bad time" => "generates You're gonna have a bad time meme" }
|
25
|
+
route %r{(one does not simply) (.*)}i, :meme_simply, help: { "one does not simply.." => "generates one does not simply.. meme" }
|
26
|
+
route %r{(grumpy cat) (.*),(.*)}i, :meme_grumpy_cat, help: { "grumpy cat .. , .." => "generates grumpy cat .. , .. meme" }
|
27
|
+
route %r{(it looks like you'?re|it looks like you) (.*)}i, :meme_looks_like, help: { "it looks like you're .." => "generates it looks like you're .. meme", "it looks like you.." => "(case insensitive) generates it looks like you.. meme" }
|
28
|
+
route %r{(AM I THE ONLY ONE AROUND HERE) (.*)}i, :meme_am_i_only, help: { "AM I THE ONLY ONE AROUND HERE.." => "generates AM I THE ONLY ONE AROUND HERE.. meme" }
|
29
|
+
route %r{(.*)(NOT IMPRESSED*)}i, :meme_not_impressed, help: { "..NOT IMPRESSED" => "generates ..NOT IMPRESSED meme" }
|
30
|
+
route %r{(PREPARE YOURSELF) (.*)}i, :meme_prepare_yourself, help: { "PREPARE YOURSELF.." => "generates PREPARE YOURSELF.. meme" }
|
31
|
+
route %r{(WHAT IF I TOLD YOU) (.*)}i, :meme_what_if_i, help: { "WHAT IF I TOLD YOU.." => "generates WHAT IF I TOLD YOU.. meme" }
|
32
32
|
route %r{(.*) (BETTER DRINK MY OWN PISS)}i, :meme_better_drink, help: { "..BETTER DRINK MY OWN PISS" => "generates ..BETTER DRINK MY OWN PISS meme" }
|
33
33
|
route %r{^khanify (.*)}i, :meme_khanify, help: { "khanify ..." => "generates khan meme" }
|
34
34
|
|
@@ -117,49 +117,17 @@ module Lita
|
|
117
117
|
generate_meme(response, 6443, 1123022, line1: "", line2: khanify(response.matches[0][0]))
|
118
118
|
end
|
119
119
|
|
120
|
-
|
121
|
-
private
|
122
|
-
|
123
120
|
def khanify(phrase)
|
124
121
|
shouty_phrase = phrase.upcase
|
125
122
|
last_vowel_index = shouty_phrase.rindex(/[AEIOU]/) || -1 # default to final consonant
|
126
|
-
last_vowel = shouty_phrase[last_vowel_index]
|
123
|
+
last_vowel = shouty_phrase[last_vowel_index]
|
127
124
|
"#{shouty_phrase[0..last_vowel_index]}#{10.times.map{ last_vowel }.join}#{shouty_phrase[last_vowel_index..-1]}!!!!"
|
128
125
|
end
|
129
126
|
|
130
|
-
|
131
|
-
return if Lita.config.handlers.memegen.command_only && !response.message.command?
|
132
|
-
|
133
|
-
line1 ||= response.matches[0][0]
|
134
|
-
line2 ||= response.matches[0][1]
|
135
|
-
return if Lita.config.handlers.memegen.username.nil? || Lita.config.handlers.memegen.password.nil?
|
136
|
-
|
137
|
-
http_resp = http.get(
|
138
|
-
'http://version1.api.memegenerator.net/Instance_Create',
|
139
|
-
username: Lita.config.handlers.memegen.username,
|
140
|
-
password: Lita.config.handlers.memegen.password,
|
141
|
-
languageCode: 'en',
|
142
|
-
generatorID: generator_id,
|
143
|
-
imageID: image_id,
|
144
|
-
text0: line1,
|
145
|
-
text1: line2
|
146
|
-
)
|
147
|
-
|
148
|
-
if http_resp.status == 200
|
149
|
-
data = MultiJson.load(http_resp.body)
|
150
|
-
|
151
|
-
if data['success']
|
152
|
-
response.reply data['result']['instanceImageUrl']
|
153
|
-
else
|
154
|
-
Lita.logger.error "#{self.class}: Unable to generate a meme image: #{data.inspect}"
|
155
|
-
response.reply "Error: Unable to generate a meme image"
|
156
|
-
end
|
157
|
-
|
158
|
-
else
|
159
|
-
Lita.logger.error "#{self.class}: Unable to generate a meme image: #{http_resp.body}"
|
160
|
-
response.reply "Error: Unable to generate a meme image"
|
161
|
-
end
|
127
|
+
private
|
162
128
|
|
129
|
+
def generate_meme *args
|
130
|
+
MemeGenerator.generate_meme *args
|
163
131
|
end
|
164
132
|
|
165
133
|
end
|
data/lib/lita-memegen.rb
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
require "
|
1
|
+
require "meme_generator"
|
2
|
+
require "lita/handlers/memegen"
|
@@ -0,0 +1,68 @@
|
|
1
|
+
class MemeGenerator
|
2
|
+
|
3
|
+
def initialize response, generator_id, image_id, line1: nil, line2: nil
|
4
|
+
@response = response
|
5
|
+
@generator_id = generator_id
|
6
|
+
@image_id = image_id
|
7
|
+
@line1 = line1 || response.matches[0][0]
|
8
|
+
@line2 = line2 || response.matches[0][1]
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.generate_meme *args
|
12
|
+
new(*args).generate_meme
|
13
|
+
end
|
14
|
+
|
15
|
+
def generate_meme
|
16
|
+
return if ignore_non_command? || missing_credentials?
|
17
|
+
if meme_response && meme_response['success']
|
18
|
+
@response.reply meme_response['result']['instanceImageUrl']
|
19
|
+
else
|
20
|
+
reply_with_error meme_response
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def reply_with_error message='Unknown cause'
|
27
|
+
Lita.logger.error "#{self.class}: Unable to generate a meme image: #{message}"
|
28
|
+
@response.reply "Error: Unable to generate a meme image"
|
29
|
+
end
|
30
|
+
|
31
|
+
def meme_response
|
32
|
+
@meme_response ||= begin
|
33
|
+
response = http.get request_endpoint, request_options
|
34
|
+
MultiJson.load(response.body) if response.status == 200
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def missing_credentials?
|
39
|
+
Lita.config.handlers.memegen.username.nil? || Lita.config.handlers.memegen.password.nil?
|
40
|
+
end
|
41
|
+
|
42
|
+
def ignore_non_command?
|
43
|
+
Lita.config.handlers.memegen.command_only && !@response.message.command?
|
44
|
+
end
|
45
|
+
|
46
|
+
def http options={}
|
47
|
+
default_options = { headers: { "User-Agent" => "Lita v#{Lita::VERSION}" } }
|
48
|
+
options = default_options.merge options
|
49
|
+
Faraday::Connection.new nil, options
|
50
|
+
end
|
51
|
+
|
52
|
+
def request_endpoint
|
53
|
+
'http://version1.api.memegenerator.net/Instance_Create'
|
54
|
+
end
|
55
|
+
|
56
|
+
def request_options
|
57
|
+
{
|
58
|
+
username: Lita.config.handlers.memegen.username,
|
59
|
+
password: Lita.config.handlers.memegen.password,
|
60
|
+
languageCode: 'en',
|
61
|
+
generatorID: @generator_id,
|
62
|
+
imageID: @image_id,
|
63
|
+
text0: @line1,
|
64
|
+
text1: @line2
|
65
|
+
}
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
data/lita-memegen.gemspec
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-memegen"
|
3
|
-
spec.version = "1.0
|
4
|
-
spec.authors = ["Mitch Dempsey"]
|
5
|
-
spec.email = ["mitch@mitchdempsey.com"]
|
3
|
+
spec.version = "1.1.0"
|
4
|
+
spec.authors = ["Mitch Dempsey", "Adam Zaninovich"]
|
5
|
+
spec.email = ["mitch@mitchdempsey.com", "adam.zaninovich@gmail.com"]
|
6
6
|
spec.description = %q{A Lita handler for generating meme images.}
|
7
7
|
spec.summary = %q{A Lita handler for generating meme images.}
|
8
8
|
spec.homepage = "https://github.com/webdestroya/lita-memegen"
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MemeGenerator do
|
4
|
+
describe '.generate_meme' do
|
5
|
+
it 'calls generate_meme on a new instance of MemeGenerator' do
|
6
|
+
expect_any_instance_of(MemeGenerator).to receive :generate_meme
|
7
|
+
MemeGenerator.generate_meme double, 1, 1, line1:'', line2:''
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe '#generate_meme' do
|
12
|
+
subject(:generator) { MemeGenerator.new response, 1, 1, line1:'', line2:'' }
|
13
|
+
let(:message) { double command?: true }
|
14
|
+
let(:response) { double message: message, reply: nil }
|
15
|
+
before do
|
16
|
+
allow(Lita.config.handlers.memegen).to receive(:username) { 'user' }
|
17
|
+
allow(Lita.config.handlers.memegen).to receive(:password) { 'pass' }
|
18
|
+
allow(Lita.config.handlers.memegen).to receive(:command_only) { false }
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'when missing username' do
|
22
|
+
before { allow(Lita.config.handlers.memegen).to receive(:username) { nil } }
|
23
|
+
|
24
|
+
it 'is nil' do
|
25
|
+
expect(generator.generate_meme).to be_nil
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'when missing password' do
|
30
|
+
before { allow(Lita.config.handlers.memegen).to receive(:password) { nil } }
|
31
|
+
|
32
|
+
it 'is nil' do
|
33
|
+
expect(generator.generate_meme).to be_nil
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'when configured to respond to command only' do
|
38
|
+
before { allow(Lita.config.handlers.memegen).to receive(:command_only) { true } }
|
39
|
+
|
40
|
+
context 'when message is not a command' do
|
41
|
+
let(:message) { double command?: false }
|
42
|
+
it 'is nil' do
|
43
|
+
expect(generator.generate_meme).to be_nil
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'when configured correctly' do
|
49
|
+
let(:http_response) { double status: 200, body: http_body.to_json }
|
50
|
+
before do
|
51
|
+
allow_any_instance_of(Faraday::Connection).to receive(:get) { http_response }
|
52
|
+
allow(Lita.logger).to receive(:error)
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'when the response is successful' do
|
56
|
+
let(:http_body) { { success: true, result: { instanceImageUrl: 'url' } } }
|
57
|
+
|
58
|
+
it 'replies with the url' do
|
59
|
+
expect(response).to receive(:reply).with 'url'
|
60
|
+
generator.generate_meme
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context 'when the response is unsuccessful' do
|
65
|
+
let(:http_body) { { success: false } }
|
66
|
+
|
67
|
+
it 'logs an error' do
|
68
|
+
expect(Lita.logger).to receive(:error).with 'MemeGenerator: Unable to generate a meme image: {"success"=>false}'
|
69
|
+
generator.generate_meme
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'replies with the url' do
|
73
|
+
expect(response).to receive(:reply).with 'Error: Unable to generate a meme image'
|
74
|
+
generator.generate_meme
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -1,14 +1,211 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe Lita::Handlers::Memegen, lita_handler: true do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
4
|
+
|
5
|
+
describe 'default config' do
|
6
|
+
it "sets the username to nil by default" do
|
7
|
+
expect(Lita.config.handlers.memegen.username).to be_nil
|
8
|
+
end
|
9
|
+
it "sets the password to nil by default" do
|
10
|
+
expect(Lita.config.handlers.memegen.password).to be_nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'routes' do
|
15
|
+
ROUTES = {
|
16
|
+
meme_y_u_no: ["y u no blah"],
|
17
|
+
meme_i_dont_always: ["i don't always blah but when i do, blah", "I dont always blah but when I do blah"],
|
18
|
+
meme_orly: ["blah o rly?", "ORLY"],
|
19
|
+
meme_success: ["blah SUCCESS", "blah NAILED IT"],
|
20
|
+
meme_all_the: ["blah ALL the blah"],
|
21
|
+
meme_too_damn: ["blah is too damn blah"],
|
22
|
+
meme_good_news: ["good news everyone. blah", "good news everyone, blah", "good news everyone! blah", "good news everyone blah"], meme_not_sure_if: ["not sure if blah or blah"],
|
23
|
+
meme_yo_dawg: ["yo dawg blah so blah"],
|
24
|
+
meme_are_belong: ["all your blah are belong to us"],
|
25
|
+
meme_fuck_you: ["blah fuck you"],
|
26
|
+
meme_bad_time: ["blah you're gonna have a bad time", "blah youre gonna have a bad time"],
|
27
|
+
meme_simply: ["one does not simply blah"],
|
28
|
+
meme_grumpy_cat: ["grumpy cat blah, blah"],
|
29
|
+
meme_looks_like: ["it looks like you're blah", "it looks like youre blah", "it looks like you blah"], meme_am_i_only: ["am i the only one around here who blah"],
|
30
|
+
meme_not_impressed: ["blahnot impressedddd" "blah not impressed"],
|
31
|
+
meme_prepare_yourself: ["prepare yourself blah"],
|
32
|
+
meme_what_if_i: ["what if i told you blah"],
|
33
|
+
meme_better_drink: ["blah better drink my own piss"],
|
34
|
+
meme_khanify: ["khanify blah"]
|
35
|
+
}
|
36
|
+
|
37
|
+
ROUTES.each do |method, commands|
|
38
|
+
commands.each do |command|
|
39
|
+
it { is_expected.to route_command(command).to method }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '#khanify' do
|
45
|
+
it 'produces strings that are upcased' do
|
46
|
+
text = subject.khanify 'a'
|
47
|
+
expect(text).to eq text.upcase
|
48
|
+
end
|
49
|
+
it 'adds 11 more of the last vowel' do
|
50
|
+
expect(subject.khanify 'ae').to include 'E'*12
|
51
|
+
end
|
52
|
+
it 'adds 11 more of the last consonant if there are no vowels' do
|
53
|
+
expect(subject.khanify 'tw').to include 'W'*12
|
54
|
+
end
|
55
|
+
it 'adds !!!! to the end' do
|
56
|
+
expect(subject.khanify 'a').to end_with '!!!!'
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe 'route methods' do
|
61
|
+
let(:response) { double }
|
62
|
+
describe '#meme_y_u_no' do
|
63
|
+
it 'calls #generate_meme with the correct arguments' do
|
64
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 2, 166088
|
65
|
+
subject.meme_y_u_no response
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe '#meme_i_dont_always' do
|
70
|
+
it 'calls #generate_meme with the correct arguments' do
|
71
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 74, 2485
|
72
|
+
subject.meme_i_dont_always response
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe '#meme_orly' do
|
77
|
+
it 'calls #generate_meme with the correct arguments' do
|
78
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 920, 117049
|
79
|
+
subject.meme_orly response
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe '#meme_success' do
|
84
|
+
it 'calls #generate_meme with the correct arguments' do
|
85
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 121, 1031
|
86
|
+
subject.meme_success response
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe '#meme_all_the' do
|
91
|
+
it 'calls #generate_meme with the correct arguments' do
|
92
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 6013, 1121885
|
93
|
+
subject.meme_all_the response
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe '#meme_too_damn' do
|
98
|
+
it 'calls #generate_meme with the correct arguments' do
|
99
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 998, 203665
|
100
|
+
subject.meme_too_damn response
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe '#meme_good_news' do
|
105
|
+
it 'calls #generate_meme with the correct arguments' do
|
106
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 1591, 112464
|
107
|
+
subject.meme_good_news response
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe '#meme_not_sure_if' do
|
112
|
+
it 'calls #generate_meme with the correct arguments' do
|
113
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 305, 84688
|
114
|
+
subject.meme_not_sure_if response
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
describe '#meme_yo_dawg' do
|
119
|
+
it 'calls #generate_meme with the correct arguments' do
|
120
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 79, 108785
|
121
|
+
subject.meme_yo_dawg response
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
describe '#meme_are_belong' do
|
126
|
+
it 'calls #generate_meme with the correct arguments' do
|
127
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 349058, 2079825
|
128
|
+
subject.meme_are_belong response
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
describe '#meme_fuck_you' do
|
133
|
+
it 'calls #generate_meme with the correct arguments' do
|
134
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 1189472, 5044147
|
135
|
+
subject.meme_fuck_you response
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe '#meme_bad_time' do
|
140
|
+
it 'calls #generate_meme with the correct arguments' do
|
141
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 825296, 3786537
|
142
|
+
subject.meme_bad_time response
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
describe '#meme_simply' do
|
147
|
+
it 'calls #generate_meme with the correct arguments' do
|
148
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 274947, 1865027
|
149
|
+
subject.meme_simply response
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
describe '#meme_grumpy_cat' do
|
154
|
+
it 'calls #generate_meme with the correct arguments' do
|
155
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 1590955, 6541210
|
156
|
+
subject.meme_grumpy_cat response
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
describe '#meme_looks_like' do
|
161
|
+
it 'calls #generate_meme with the correct arguments' do
|
162
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 20469, 1159769
|
163
|
+
subject.meme_looks_like response
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
describe '#meme_am_i_only' do
|
168
|
+
it 'calls #generate_meme with the correct arguments' do
|
169
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 953639, 4240352
|
170
|
+
subject.meme_am_i_only response
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
describe '#meme_not_impressed' do
|
175
|
+
it 'calls #generate_meme with the correct arguments' do
|
176
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 1420809, 5883168
|
177
|
+
subject.meme_not_impressed response
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
describe '#meme_prepare_yourself' do
|
182
|
+
it 'calls #generate_meme with the correct arguments' do
|
183
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 414926, 2295701
|
184
|
+
subject.meme_prepare_yourself response
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
describe '#meme_what_if_i' do
|
189
|
+
it 'calls #generate_meme with the correct arguments' do
|
190
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 1118843, 4796874
|
191
|
+
subject.meme_what_if_i response
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
describe '#meme_better_drink' do
|
196
|
+
it 'calls #generate_meme with the correct arguments' do
|
197
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 92, 89714
|
198
|
+
subject.meme_better_drink response
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
describe '#meme_khanify' do
|
203
|
+
let(:response) { double matches: [['text']] }
|
204
|
+
it 'calls #generate_meme with the correct arguments' do
|
205
|
+
expect(MemeGenerator).to receive(:generate_meme).with response, 6443, 1123022, line1: '', line2: subject.khanify('text')
|
206
|
+
subject.meme_khanify response
|
207
|
+
end
|
208
|
+
end
|
12
209
|
end
|
13
210
|
|
14
211
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-memegen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mitch Dempsey
|
8
|
+
- Adam Zaninovich
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2015-03-02 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: lita
|
@@ -97,6 +98,7 @@ dependencies:
|
|
97
98
|
description: A Lita handler for generating meme images.
|
98
99
|
email:
|
99
100
|
- mitch@mitchdempsey.com
|
101
|
+
- adam.zaninovich@gmail.com
|
100
102
|
executables: []
|
101
103
|
extensions: []
|
102
104
|
extra_rdoc_files: []
|
@@ -110,7 +112,9 @@ files:
|
|
110
112
|
- Rakefile
|
111
113
|
- lib/lita-memegen.rb
|
112
114
|
- lib/lita/handlers/memegen.rb
|
115
|
+
- lib/meme_generator.rb
|
113
116
|
- lita-memegen.gemspec
|
117
|
+
- spec/lib/meme_generator_spec.rb
|
114
118
|
- spec/lita/handlers/memegen_spec.rb
|
115
119
|
- spec/spec_helper.rb
|
116
120
|
homepage: https://github.com/webdestroya/lita-memegen
|
@@ -139,5 +143,6 @@ signing_key:
|
|
139
143
|
specification_version: 4
|
140
144
|
summary: A Lita handler for generating meme images.
|
141
145
|
test_files:
|
146
|
+
- spec/lib/meme_generator_spec.rb
|
142
147
|
- spec/lita/handlers/memegen_spec.rb
|
143
148
|
- spec/spec_helper.rb
|