Class: DotGrid::Page::Planner

Inherits:
Page
  • Object
show all
Defined in:
lib/dot_grid/page/planner.rb

Constant Summary collapse

HEADER_HEIGHT =

5.0 %

0.05
HEADER_LEFT_START =

5.0%

0.05
SQUARE_GRID_WIDTH =

32.0% - Basically, what looks good on 8.5 x 11

0.32
HEADER_GAP_WIDTH =

3.0%

0.03
FOOT_HEIGHT_RATIO =

Ratio of footer to header

2

Instance Attribute Summary collapse

Attributes inherited from Page

#patterns, #pdf

Instance Method Summary collapse

Methods inherited from Page

#add_pattern, #initialize

Constructor Details

This class inherits a constructor from DotGrid::Page::Page

Instance Attribute Details

#dot_weightObject

Returns the value of attribute dot_weight.



4
5
6
# File 'lib/dot_grid/page/planner.rb', line 4

def dot_weight
  @dot_weight
end

#grid_colorObject

Returns the value of attribute grid_color.



4
5
6
# File 'lib/dot_grid/page/planner.rb', line 4

def grid_color
  @grid_color
end

#planner_color_1Object

Returns the value of attribute planner_color_1.



4
5
6
# File 'lib/dot_grid/page/planner.rb', line 4

def planner_color_1
  @planner_color_1
end

#planner_color_2Object

Returns the value of attribute planner_color_2.



4
5
6
# File 'lib/dot_grid/page/planner.rb', line 4

def planner_color_2
  @planner_color_2
end

Instance Method Details

#dot_grid_boundsObject



32
33
34
# File 'lib/dot_grid/page/planner.rb', line 32

def dot_grid_bounds
  ::DotGrid::BoundingBox.new(upper_left: [header_right_start, grid_top], width: header_right_width, height: grid_height)
end


102
103
104
105
# File 'lib/dot_grid/page/planner.rb', line 102

def draw_footer(footer_color, footer_start, footer_height, footer_width)
  pdf.fill_color footer_color
  pdf.fill_rectangle [footer_start, footer_height], footer_width, footer_height
end

#draw_header(header_start, header_width, header_height, header_color) ⇒ Object



97
98
99
100
# File 'lib/dot_grid/page/planner.rb', line 97

def draw_header(header_start, header_width, header_height, header_color)
  pdf.fill_color header_color
  pdf.fill_rectangle [header_start, page_height], header_width, header_height
end


80
81
82
# File 'lib/dot_grid/page/planner.rb', line 80

def footer_height
  header_height * FOOT_HEIGHT_RATIO
end

#generateObject



84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/dot_grid/page/planner.rb', line 84

def generate
  super

  # Header left
  draw_header(header_left_start, header_left_width, header_height, header_left_color)

  # Header right
  draw_header(header_right_start, header_right_width, header_height, header_right_color)

  # Footer
  draw_footer(planner_color_1, header_left_start, footer_height, page_width-header_left_start)
end

#grid_heightObject



44
45
46
# File 'lib/dot_grid/page/planner.rb', line 44

def grid_height
  (grid_top - footer_height - spacing)
end

#grid_topObject



40
41
42
# File 'lib/dot_grid/page/planner.rb', line 40

def grid_top
  page_height - header_height - spacing
end

#header_gap_startObject



60
61
62
# File 'lib/dot_grid/page/planner.rb', line 60

def header_gap_start
  header_left_start + header_left_width
end

#header_gap_widthObject



64
65
66
# File 'lib/dot_grid/page/planner.rb', line 64

def header_gap_width
  page_width * HEADER_GAP_WIDTH
end

#header_heightObject



36
37
38
# File 'lib/dot_grid/page/planner.rb', line 36

def header_height
  HEADER_HEIGHT * page_height
end

#header_left_colorObject



48
49
50
# File 'lib/dot_grid/page/planner.rb', line 48

def header_left_color
  planner_color_1
end

#header_left_startObject



52
53
54
# File 'lib/dot_grid/page/planner.rb', line 52

def header_left_start
  HEADER_LEFT_START * page_width
end

#header_left_widthObject



56
57
58
# File 'lib/dot_grid/page/planner.rb', line 56

def header_left_width
  ((SQUARE_GRID_WIDTH * page_width) / spacing).floor * spacing
end

#header_right_colorObject



68
69
70
# File 'lib/dot_grid/page/planner.rb', line 68

def header_right_color
  planner_color_2
end

#header_right_startObject



72
73
74
# File 'lib/dot_grid/page/planner.rb', line 72

def header_right_start
  header_gap_start + header_gap_width
end

#header_right_widthObject



76
77
78
# File 'lib/dot_grid/page/planner.rb', line 76

def header_right_width
  page_width - header_right_start
end

#page_heightObject



111
112
113
# File 'lib/dot_grid/page/planner.rb', line 111

def page_height
  pdf.bounds.height
end

#page_widthObject



107
108
109
# File 'lib/dot_grid/page/planner.rb', line 107

def page_width
  pdf.bounds.width
end

#post_initialize(params) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/dot_grid/page/planner.rb', line 18

def post_initialize(params)
  @planner_color_1 = params[:planner_color_1] || "CCCCCC"
  @planner_color_2 = params[:planner_color_2] || "0099ff"
  @dot_weight = params[:dot_weight] || 1.5
  @grid_color = params[:grid_color] || "B3B3B3"
  @spacing = params[:spacing] ? params[:spacing].mm : 5.mm
  add_pattern(::DotGrid::Pattern::SquareGrid.new(params.merge!(:bounds => square_grid_bounds, grid_color: @planner_color_1)))
  add_pattern(::DotGrid::Pattern::DotGrid.new(params.merge!(:bounds => dot_grid_bounds)))
end

#square_grid_boundsObject



28
29
30
# File 'lib/dot_grid/page/planner.rb', line 28

def square_grid_bounds
  ::DotGrid::BoundingBox.new(upper_left: [header_left_start, grid_top], width: header_left_width, height: grid_height)
end