Module: TeachingPrintables::Gridable
- Included in:
- Templatable
- Defined in:
- lib/teaching_printables/gridable.rb
Overview
Creates grid layouts for flashcards or math sheets. Delegates Prawn methods to Prawn::Document.
Instance Attribute Summary collapse
- #grid_column_width ⇒ Object
- #grid_columns ⇒ Object
- #grid_gutter ⇒ Object
- #grid_row_height ⇒ Object
- #grid_rows ⇒ Object
Instance Method Summary collapse
- #add_grid_content(content_array, options = {}) ⇒ Object
- #place_contents_in_gridbox(obj) ⇒ Object
- #update_grid_options(options) ⇒ Object
Instance Attribute Details
#grid_column_width ⇒ Object
22 23 24 |
# File 'lib/teaching_printables/gridable.rb', line 22 def grid_column_width @grid_column_width ||= 100 end |
#grid_columns ⇒ Object
16 17 18 |
# File 'lib/teaching_printables/gridable.rb', line 16 def grid_columns @grid_coluns ||= 2 end |
#grid_gutter ⇒ Object
19 20 21 |
# File 'lib/teaching_printables/gridable.rb', line 19 def grid_gutter @grid_gutter ||= 0 end |
#grid_row_height ⇒ Object
25 26 27 |
# File 'lib/teaching_printables/gridable.rb', line 25 def grid_row_height @grid_row_height ||= 100 end |
#grid_rows ⇒ Object
13 14 15 |
# File 'lib/teaching_printables/gridable.rb', line 13 def grid_rows @grid_rows ||= 2 end |
Instance Method Details
#add_grid_content(content_array, options = {}) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/teaching_printables/gridable.rb', line 36 def add_grid_content(content_array, ={}) font_size = [:font_size] || 60 if (page_number ==0) || ([:start_new_page] == true) start_new_page end @document.define_grid() content_array.each_with_index {|obj,ind| if ind%(grid_rows*grid_columns)==0 && ind > 0 @document.start_new_page end subs = ind2sub([grid_rows,grid_columns],ind%(grid_rows*grid_columns)) @document.grid(subs[0],subs[1]).bounding_box do #place_contents_in_gridbox(obj) @document.text_box obj.to_s, align: :center, valign: :center, size: font_size, overflow: :shrink_to_fit end } end |
#place_contents_in_gridbox(obj) ⇒ Object
62 63 64 |
# File 'lib/teaching_printables/gridable.rb', line 62 def place_contents_in_gridbox(obj) text obj.to_s, fit: [grid_column_width,grid_row_height] end |
#update_grid_options(options) ⇒ Object
30 31 32 33 34 |
# File 'lib/teaching_printables/gridable.rb', line 30 def () .each do |k,v| instance_variable_set("@grid_#{k}", [k]) unless [k].nil? end end |