memer 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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