class Rabbit::Size
Attributes
logical_height[R]
logical_margin_bottom[R]
logical_margin_left[R]
logical_margin_right[R]
logical_margin_top[R]
logical_width[R]
ratio[R]
real_height[R]
real_width[R]
Public Class Methods
new(width, height, ratio)
click to toggle source
# File lib/rabbit/size.rb, line 12 def initialize(width, height, ratio) @real_width = width @real_height = height @ratio = ratio compute_logical_size end
Public Instance Methods
have_logical_margin?()
click to toggle source
# File lib/rabbit/size.rb, line 29 def have_logical_margin? have_logical_margin_x? or have_logical_margin_y? end
have_logical_margin_x?()
click to toggle source
# File lib/rabbit/size.rb, line 19 def have_logical_margin_x? @logical_margin_left > 0 or @logical_margin_right > 0 end
have_logical_margin_y?()
click to toggle source
# File lib/rabbit/size.rb, line 24 def have_logical_margin_y? @logical_margin_top > 0 or @logical_margin_bottom > 0 end
Private Instance Methods
compute_logical_size()
click to toggle source
# File lib/rabbit/size.rb, line 34 def compute_logical_size real_ratio = @real_width.to_f / @real_height.to_f if real_ratio == @ratio @logical_width = @real_width @logical_height = @real_height @logical_margin_left = 0 @logical_margin_right = 0 @logical_margin_top = 0 @logical_margin_bottom = 0 return end if real_ratio > @ratio @logical_width = @real_width * (@ratio / real_ratio) @logical_height = @real_height width_margin = @real_width - @logical_width @logical_margin_left = width_margin / 2 @logical_margin_right = width_margin / 2 @logical_margin_top = 0 @logical_margin_bottom = 0 else @logical_width = @real_width @logical_height = @real_height * (real_ratio / @ratio) height_margin = @real_height - @logical_height @logical_margin_left = 0 @logical_margin_right = 0 @logical_margin_top = height_margin / 2 @logical_margin_bottom = height_margin / 2 end end