Class: SequenceLogo::PredefinedLogo

Inherits:
Object
  • Object
show all
Defined in:
lib/sequence_logo/data_models/predefined_logo.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ PredefinedLogo

Returns a new instance of PredefinedLogo.



4
5
6
7
8
9
# File 'lib/sequence_logo/data_models/predefined_logo.rb', line 4

def initialize(options = {})
  @direct_image = options[:direct_image]
  @reverse_image = options[:reverse_image]
  @name = options[:name]
  @length = options[:length]
end

Instance Attribute Details

#direct_imageObject (readonly)

Returns the value of attribute direct_image.



3
4
5
# File 'lib/sequence_logo/data_models/predefined_logo.rb', line 3

def direct_image
  @direct_image
end

#reverse_imageObject (readonly)

Returns the value of attribute reverse_image.



3
4
5
# File 'lib/sequence_logo/data_models/predefined_logo.rb', line 3

def reverse_image
  @reverse_image
end

Instance Method Details

#lengthObject



11
12
13
14
# File 'lib/sequence_logo/data_models/predefined_logo.rb', line 11

def length
  raise 'Length not defined'  unless @length
  @length
end

#nameObject



16
17
18
19
# File 'lib/sequence_logo/data_models/predefined_logo.rb', line 16

def name
  raise 'Name not defined'  unless @name
  @name
end

#render(canvas_factory) ⇒ Object



25
26
27
28
29
30
# File 'lib/sequence_logo/data_models/predefined_logo.rb', line 25

def render(canvas_factory)
  layers = Magick::ImageList.new
  layers.put_image_at(@direct_image, 0, 0)
  layers.unshift Magick::Image.new(@direct_image.columns, @direct_image.rows, canvas_factory.background_fill)
  layers.flatten_images
end

#revcompObject



21
22
23
# File 'lib/sequence_logo/data_models/predefined_logo.rb', line 21

def revcomp
  PredefinedLogo.new(direct_image: @reverse_image, reverse_image: @direct_image, name: @name, length: @length)
end