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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94ff84cdc9315d1f808f61acb7da9f851885b39d
4
- data.tar.gz: dcfb594050199d054f32e5d2835e2e46967f85e1
3
+ metadata.gz: 850b263c6fd0b6c212b85f84d278e91337c5d268
4
+ data.tar.gz: 0ba7bc4292cf826fa1cbe74115a93e98cb40bc75
5
5
  SHA512:
6
- metadata.gz: f2fb792359c2f03167145ac76beaba9927e7927237716f3f4aaf3bd79988ffb1f83cc410100995de1c8b89be3a5dd1a208e78d083b8aed5ebf1d099ff1303d26
7
- data.tar.gz: 4c2279d2705ed75e5f387f3c1139c6c47a5ae4812b8d16c5be63fa3083e9bb6b55a69cd96a8aacfea7b865045bd92640e40d440b1c91b9fed9fb6008155a2d4e
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
- def generate_meme(response, generator_id, image_id, line1: nil, line2: nil)
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 "lita/handlers/memegen"
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"
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
- it { routes_command("Y U NO BLAH").to(:meme_y_u_no) }
5
- it { routes_command("i don't always fart but when i do, i do it loud").to(:meme_i_dont_always) }
6
- it { routes_command("blah o rly?").to(:meme_orly) }
7
- it { routes_command("khanify blah").to(:meme_khanify) }
8
-
9
- it "sets the username and password to nil by default" do
10
- expect(Lita.config.handlers.memegen.username).to be_nil
11
- expect(Lita.config.handlers.memegen.password).to be_nil
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
@@ -7,4 +7,6 @@ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
7
7
  SimpleCov.start { add_filter "/spec/" }
8
8
 
9
9
  require "lita-memegen"
10
- require "lita/rspec"
10
+ require "lita/rspec"
11
+
12
+ Lita.version_3_compatibility_mode = false
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
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: 2014-02-28 00:00:00.000000000 Z
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