memer 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/canhaz +0 -0
- data/lib/memer.rb +36 -24
- metadata +23 -6
data/bin/canhaz
CHANGED
File without changes
|
data/lib/memer.rb
CHANGED
@@ -1,43 +1,51 @@
|
|
1
1
|
class Memer
|
2
|
+
VERSION = '0.0.3'
|
3
|
+
|
2
4
|
ROOT_URL = "http://version1.api.memegenerator.net"
|
3
5
|
POST_URL = "#{ROOT_URL}/Instance_Create"
|
4
6
|
|
5
7
|
MEME_USER = ENV['MEME_USERNAME']
|
6
8
|
MEME_PASS = ENV['MEME_PASSWORD']
|
7
9
|
|
8
|
-
IDS =
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
10
|
+
IDS = Hash[
|
11
|
+
{
|
12
|
+
:joseph_ducreux => {:generator => 54, :image => 42},
|
13
|
+
:annoying_facebook_girl => {:generator => 839, :image => 876097},
|
14
|
+
:yo_dawg => {:generator => 79, :image => 108785},
|
15
|
+
:y_u_no => {:generator => 2, :image => 166088},
|
16
|
+
:socially_awkward_penguin => {:generator => 29, :image => 983},
|
17
|
+
:trollface => {:generator => 68, :image => 269},
|
18
|
+
:courage_wolf => {:generator => 303, :image => 24},
|
19
|
+
:insanity_wolf => {:generator => 45, :image => 20},
|
20
|
+
:vengeance_dad => {:generator => 283, :image => 73438},
|
21
|
+
:successful_black_man => {:generator => 350, :image => 1570},
|
22
|
+
:scumbag_steve => {:generator => 142, :image => 366130},
|
23
|
+
:all_the_things => {:generator => 318065, :image => 1985197},
|
24
|
+
:business_cat => {:generator => 308, :image => 332591},
|
25
|
+
:advice_dog => {:generator => 225, :image => 32},
|
26
|
+
:hipster_kitty => {:generator => 360, :image => 9351},
|
27
|
+
:conspiracy_keanu => {:generator => 318374, :image => 1986282},
|
28
|
+
:first_world_problems => {:generator => 340895, :image => 2055789},
|
29
|
+
:stoner_dog => {:generator => 475, :image => 1391},
|
30
|
+
:success_kid => {:generator => 121, :image => 1031},
|
31
|
+
:one_does_not_simply => {:generator => 689854, :image => 3291562}
|
32
|
+
}.sort
|
33
|
+
]
|
26
34
|
|
27
35
|
# fuzzy matching
|
28
36
|
def IDS.[](meme)
|
29
37
|
return super(meme.to_sym) if super(meme.to_sym)
|
30
38
|
|
31
|
-
regex = %r{
|
39
|
+
regex = %r{^#{meme}}i
|
32
40
|
if (result = keys.select {|k, _| k.to_s =~ regex}).size > 1
|
33
|
-
Memer.
|
41
|
+
Memer.suggest_meme(meme, result)
|
34
42
|
else
|
35
43
|
super(result.first)
|
36
44
|
end
|
37
45
|
end
|
38
46
|
|
39
47
|
class << self
|
40
|
-
def generate!(meme, line1, line2="")
|
48
|
+
def generate!(meme, line1="", line2="")
|
41
49
|
meme_ids = IDS[meme] || whine({:message => "No meme matches '#{meme}'", :list_memes => true})
|
42
50
|
generator_id = meme_ids[:generator]
|
43
51
|
image_id = meme_ids[:image]
|
@@ -95,11 +103,15 @@ class Memer
|
|
95
103
|
end
|
96
104
|
|
97
105
|
def pretty_memes_list
|
98
|
-
"Available memes:\n#{
|
106
|
+
"Available memes:\n#{IDS.keys.map { |meme| " #{meme.to_s}" }.join("\n")}"
|
99
107
|
end
|
100
108
|
|
101
109
|
def pretty_usage
|
102
|
-
"Usage:\n canhaz <meme>
|
110
|
+
"Usage:\n canhaz <meme> [first-line] [second-line]\n canhaz [list | memes]"
|
111
|
+
end
|
112
|
+
|
113
|
+
def suggest_meme(original, possibles)
|
114
|
+
whine({:message => "Did you mean:\n#{possibles.map {|p| " #{p}"}.join("\n")}"})
|
103
115
|
end
|
104
116
|
|
105
117
|
def whine(options={})
|
@@ -124,7 +136,7 @@ class Memer
|
|
124
136
|
assert_username_password
|
125
137
|
|
126
138
|
whine(:list_memes => true) if [/^meme/i, /^list/i].any? {|reg| args[0] =~ reg}
|
127
|
-
whine(:usage => true)
|
139
|
+
whine(:usage => true) if args.size == 0
|
128
140
|
|
129
141
|
meme, line1, line2 = *args
|
130
142
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: &2166106180 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2166106180
|
14
25
|
- !ruby/object:Gem::Dependency
|
15
26
|
name: rainbow
|
16
|
-
requirement: &
|
27
|
+
requirement: &2166105700 !ruby/object:Gem::Requirement
|
17
28
|
none: false
|
18
29
|
requirements:
|
19
30
|
- - ! '>='
|
@@ -21,10 +32,10 @@ dependencies:
|
|
21
32
|
version: '0'
|
22
33
|
type: :runtime
|
23
34
|
prerelease: false
|
24
|
-
version_requirements: *
|
35
|
+
version_requirements: *2166105700
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: clipboard
|
27
|
-
requirement: &
|
38
|
+
requirement: &2166105220 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
40
|
requirements:
|
30
41
|
- - ! '>='
|
@@ -32,7 +43,7 @@ dependencies:
|
|
32
43
|
version: '0'
|
33
44
|
type: :runtime
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *2166105220
|
36
47
|
description: A command line tool to easily create and share your own memes!
|
37
48
|
email: alexgenco@gmail.com
|
38
49
|
executables:
|
@@ -55,12 +66,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
55
66
|
- - ! '>='
|
56
67
|
- !ruby/object:Gem::Version
|
57
68
|
version: '0'
|
69
|
+
segments:
|
70
|
+
- 0
|
71
|
+
hash: 2939469710433445795
|
58
72
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
73
|
none: false
|
60
74
|
requirements:
|
61
75
|
- - ! '>='
|
62
76
|
- !ruby/object:Gem::Version
|
63
77
|
version: '0'
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
hash: 2939469710433445795
|
64
81
|
requirements: []
|
65
82
|
rubyforge_project:
|
66
83
|
rubygems_version: 1.8.17
|