Class: CSSensible::VerticalGrid

Inherits:
Object
  • Object
show all
Defined in:
lib/cssensible/vertical_grid.rb

Instance Method Summary collapse

Constructor Details

#initialize(base_font_sizes, line_height, font_sizes_to_line_height) ⇒ VerticalGrid

Returns a new vertical grid.



5
6
7
8
9
# File 'lib/cssensible/vertical_grid.rb', line 5

def initialize(base_font_sizes, line_height, font_sizes_to_line_height)
  @base_font_sizes = base_font_sizes
  @line_height = line_height
  @font_sizes_to_line_height = font_sizes_to_line_height
end

Instance Method Details

#ten_pixelObject

Returns em-value to calculate 10px based on font_size or nil if the value is not usable (see EmValue.usable?)



13
14
15
# File 'lib/cssensible/vertical_grid.rb', line 13

def ten_pixel
  ten_pixel.usable? ? ten_pixel : nil
end

#to_sObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/cssensible/vertical_grid.rb', line 17

def to_s
  vertical_grid = "line-height: #{@line_height}px"
  vertical_grid += " (#{@font_sizes_to_line_height.size} font-sizes)\n"

  vertical_grid += "\n"

  vertical_grid += "font-size (px)".center(18)
  vertical_grid += "|"
  vertical_grid += "line-height (px)".center(20)
  vertical_grid += "|"
  vertical_grid += "line-height (em)".center(20)
  vertical_grid += "\n"
  vertical_grid += "------------------+--------------------+--------------------\n"

  @font_sizes_to_line_height.each do |font_size, line_height_em|
    vertical_grid += "  #{font_size}#{'*' if @base_font_sizes.include?(font_size)}".ljust(18)
    vertical_grid += "|"
    vertical_grid += "  #{(font_size * line_height_em).to_i}".ljust(20)
    vertical_grid += "|"
    vertical_grid += "  #{line_height_em}".ljust(20)
    vertical_grid += "\n"
  end

  vertical_grid
end