class Remedy::Size
Attributes
dimensions[RW]
Public Class Methods
new(*new_dimensions)
click to toggle source
# File lib/remedy/size.rb, line 3 def initialize *new_dimensions new_dimensions.flatten! if new_dimensions.first.is_a? Range then new_dimensions.map! do |range| range.to_a.length end end @dimensions = new_dimensions end
Public Instance Methods
-(other_size)
click to toggle source
# File lib/remedy/size.rb, line 14 def - other_size if other_size.respond_to? :length then self.class.new subtract(other_size) else self.class.new deduct(other_size) end end
/(value)
click to toggle source
# File lib/remedy/size.rb, line 22 def / value dimensions.map do |dimension| dimension / value end end
<<(value)
click to toggle source
# File lib/remedy/size.rb, line 28 def << value self.dimensions << value end
[](index)
click to toggle source
# File lib/remedy/size.rb, line 50 def [] index dimensions[index] end
cols()
click to toggle source
# File lib/remedy/size.rb, line 45 def cols dimensions[1] end
Also aliased as: columns
fits_into?(size_to_fit_into)
click to toggle source
# File lib/remedy/size.rb, line 33 def fits_into? size_to_fit_into other_size = Size(size_to_fit_into) length.times.each do |index| return false if self[index] > other_size[index] end true end
inspect()
click to toggle source
# File lib/remedy/size.rb, line 70 def inspect "#<#{self.class}:#{to_s}>" end
length()
click to toggle source
# File lib/remedy/size.rb, line 54 def length dimensions.length end
rows()
click to toggle source
# File lib/remedy/size.rb, line 41 def rows dimensions[0] end
to_a()
click to toggle source
# File lib/remedy/size.rb, line 58 def to_a dimensions.dup end
to_ary()
click to toggle source
# File lib/remedy/size.rb, line 62 def to_ary dimensions end
to_s()
click to toggle source
# File lib/remedy/size.rb, line 66 def to_s "(#{dimensions.join('x')})" end
Protected Instance Methods
deduct(amount)
click to toggle source
# File lib/remedy/size.rb, line 76 def deduct amount dimensions.map do |dimension| dimension - amount end end
sizesame?(other_size)
click to toggle source
# File lib/remedy/size.rb, line 90 def sizesame? other_size raise "Different numbers of dimensions!" unless length == other_size.length end
subtract(other_size)
click to toggle source
# File lib/remedy/size.rb, line 82 def subtract other_size sizesame? other_size length.times.inject Size.new do |difference, index| difference << self[index] - other_size[index] end end