Class: AvatarGenerator::Avatar
- Inherits:
-
Object
- Object
- AvatarGenerator::Avatar
- Defined in:
- lib/avatar_generator/avatar.rb
Instance Method Summary collapse
- #base64 ⇒ Object
- #blob ⇒ Object
- #data_url ⇒ Object
- #filename ⇒ Object
- #image ⇒ Object
-
#initialize(image, identifier:) ⇒ Avatar
constructor
A new instance of Avatar.
- #io ⇒ Object
- #path ⇒ Object
- #save(filename = nil) ⇒ Object
- #url ⇒ Object
Constructor Details
#initialize(image, identifier:) ⇒ Avatar
Returns a new instance of Avatar.
5 6 7 8 |
# File 'lib/avatar_generator/avatar.rb', line 5 def initialize(image, identifier:) @image_data = image @identifier = identifier end |
Instance Method Details
#base64 ⇒ Object
58 59 60 |
# File 'lib/avatar_generator/avatar.rb', line 58 def base64 Base64.strict_encode64(blob) end |
#blob ⇒ Object
50 51 52 |
# File 'lib/avatar_generator/avatar.rb', line 50 def blob image.to_blob end |
#data_url ⇒ Object
62 63 64 |
# File 'lib/avatar_generator/avatar.rb', line 62 def data_url "data:image/png;base64,#{base64}" end |
#filename ⇒ Object
46 47 48 |
# File 'lib/avatar_generator/avatar.rb', line 46 def filename "#{identifier_hash}.png" end |
#image ⇒ Object
10 11 12 |
# File 'lib/avatar_generator/avatar.rb', line 10 def image @image ||= Renderer.render(@image_data) end |
#io ⇒ Object
54 55 56 |
# File 'lib/avatar_generator/avatar.rb', line 54 def io StringIO.new(blob) end |
#path ⇒ Object
32 33 34 35 36 37 |
# File 'lib/avatar_generator/avatar.rb', line 32 def path File.join( AvatarGenerator.configuration.storage_path, filename ) end |
#save(filename = nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/avatar_generator/avatar.rb', line 14 def save(filename = nil) filename ||= self.filename filename = sanitize_filename(filename) file_path = File.join( AvatarGenerator.configuration.storage_path, filename ) FileUtils.mkdir_p( File.dirname(file_path) ) image.save(file_path) file_path end |
#url ⇒ Object
39 40 41 42 43 44 |
# File 'lib/avatar_generator/avatar.rb', line 39 def url File.join( AvatarGenerator.configuration.public_path, filename ) end |