memer 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/bin/canhaz +0 -0
  2. data/lib/memer.rb +36 -24
  3. 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
- :joseph_ducreux => {:generator => 54, :image => 42},
10
- :annoying_facebook_girl => {:generator => 839, :image => 876097},
11
- :yo_dawg => {:generator => 79, :image => 108785},
12
- :courage_wolf => {:generator => 303, :image => 24},
13
- :insanity_wolf => {:generator => 45, :image => 20},
14
- :high_expectations_asian_father => {:generator => 111, :image => 1436},
15
- :successful_black_man => {:generator => 350, :image => 1570},
16
- :all_the_things => {:generator => 318065, :image => 1985197},
17
- :business_cat => {:generator => 308, :image => 332591},
18
- :advice_dog => {:generator => 225, :image => 32},
19
- :hipster_kitty => {:generator => 360, :image => 9351},
20
- :conspiracy_keanu => {:generator => 318374, :image => 1986282},
21
- :first_world_problems => {:generator => 24870, :image => 1176649},
22
- :stoner_dog => {:generator => 475, :image => 1391},
23
- :success_kid => {:generator => 121, :image => 1031},
24
- :one_does_not_simply => {:generator => 17304, :image => 1148734}
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{#{meme}}i
39
+ regex = %r{^#{meme}}i
32
40
  if (result = keys.select {|k, _| k.to_s =~ regex}).size > 1
33
- Memer.whine(:message => "Ambiguous name: #{meme}", :list_memes => true)
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#{list = IDS.keys.map { |meme| " #{meme.to_s}" }.join("\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> <first-line> [second-line]\n canhaz [list | memes]"
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) unless args.size == 3
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.2
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-21 00:00:00.000000000 Z
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: &2152540260 !ruby/object:Gem::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: *2152540260
35
+ version_requirements: *2166105700
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: clipboard
27
- requirement: &2152539500 !ruby/object:Gem::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: *2152539500
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