Class: IboIpsum::Meme

Inherits:
Object
  • Object
show all
Includes:
Magick
Defined in:
lib/ibo_ipsum/meme.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sentence, path = default_path) ⇒ Meme

Returns a new instance of Meme.



11
12
13
14
15
# File 'lib/ibo_ipsum/meme.rb', line 11

def initialize(sentence, path = default_path)
  @sentence = sentence
  @image = Image.read(path).first
  @name = "meme_#{SecureRandom::hex(3)}.jpg"
end

Instance Attribute Details

#imageObject (readonly)

Returns the value of attribute image.



9
10
11
# File 'lib/ibo_ipsum/meme.rb', line 9

def image
  @image
end

#nameObject (readonly)

Returns the value of attribute name.



9
10
11
# File 'lib/ibo_ipsum/meme.rb', line 9

def name
  @name
end

#sentenceObject (readonly)

Returns the value of attribute sentence.



9
10
11
# File 'lib/ibo_ipsum/meme.rb', line 9

def sentence
  @sentence
end

Instance Method Details

#default_pathObject



17
18
19
# File 'lib/ibo_ipsum/meme.rb', line 17

def default_path
  File.join(File.dirname(__FILE__), "../../img/ibo_1.jpg")
end

#generateObject



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/ibo_ipsum/meme.rb', line 25

def generate
  text = Draw.new
  text.annotate(image, 0,0,0,0, prepared_sentence) do
    self.gravity = Magick::SouthGravity
    self.pointsize = 35
    self.font_family = "Helvetica"
    self.font_weight = 900
    self.fill = "#FF1493"
    self.stroke = "#FFF"
    self.stroke_width = 1
  end
  save_and_open!
end

#prepared_sentenceObject



21
22
23
# File 'lib/ibo_ipsum/meme.rb', line 21

def prepared_sentence
  word_wrap(sentence) + "\n"
end

#save_and_open!Object



39
40
41
42
43
# File 'lib/ibo_ipsum/meme.rb', line 39

def save_and_open!
  puts "saved: #{name}"
  image.write name
  `open #{name}`
end