Class: Uniword::Builder::SectionBuilder
- Inherits:
-
BaseBuilder
- Object
- BaseBuilder
- Uniword::Builder::SectionBuilder
- Defined in:
- lib/uniword/builder/section_builder.rb
Overview
Builds and configures SectionProperties objects.
Instance Attribute Summary
Attributes inherited from BaseBuilder
Class Method Summary collapse
Instance Method Summary collapse
-
#columns(count: 1, spacing: 720) ⇒ self
Set number of columns.
-
#footer(type: "default") {|HeaderFooterBuilder| ... } ⇒ HeaderFooterBuilder
Configure a footer for this section.
-
#header(type: "default") {|HeaderFooterBuilder| ... } ⇒ HeaderFooterBuilder
Configure a header for this section.
-
#line_numbering(count_by: 1, start: 1, restart: "continuous") ⇒ self
Set line numbering.
-
#margins(top: 1440, bottom: 1440, left: 1440, right: 1440, header: 720, footer: 720, gutter: 0) ⇒ self
Set page margins.
- #page_borders(**_options) ⇒ Object
-
#page_numbering(start: nil, format: nil) ⇒ self
Set page numbering for this section.
-
#page_size(width: 12_240, height: 15_840, orientation: "portrait") ⇒ self
Set page size.
- #type=(value) ⇒ Object
Methods inherited from BaseBuilder
#build, from_model, #initialize
Constructor Details
This class inherits a constructor from Uniword::Builder::BaseBuilder
Class Method Details
.default_model_class ⇒ Object
20 21 22 |
# File 'lib/uniword/builder/section_builder.rb', line 20 def self.default_model_class Wordprocessingml::SectionProperties end |
Instance Method Details
#columns(count: 1, spacing: 720) ⇒ self
Set number of columns
71 72 73 74 75 76 |
# File 'lib/uniword/builder/section_builder.rb', line 71 def columns(count: 1, spacing: 720) @model.columns ||= Wordprocessingml::Columns.new @model.columns.num = count @model.columns.space = spacing self end |
#footer(type: "default") {|HeaderFooterBuilder| ... } ⇒ HeaderFooterBuilder
Configure a footer for this section
130 131 132 133 134 135 136 137 138 139 |
# File 'lib/uniword/builder/section_builder.rb', line 130 def (type: "default", &block) hf = HeaderFooterBuilder.new(:footer, type: type) yield(hf) if block ref = Wordprocessingml::FooterReference.new( type: type, r_id: "rIdFtr#{type}", ) @model. << ref hf end |
#header(type: "default") {|HeaderFooterBuilder| ... } ⇒ HeaderFooterBuilder
Configure a header for this section
114 115 116 117 118 119 120 121 122 123 |
# File 'lib/uniword/builder/section_builder.rb', line 114 def header(type: "default", &block) hf = HeaderFooterBuilder.new(:header, type: type) yield(hf) if block ref = Wordprocessingml::HeaderReference.new( type: type, r_id: "rIdHdr#{type}", ) @model.header_references << ref hf end |
#line_numbering(count_by: 1, start: 1, restart: "continuous") ⇒ self
Set line numbering
89 90 91 92 93 94 95 |
# File 'lib/uniword/builder/section_builder.rb', line 89 def line_numbering(count_by: 1, start: 1, restart: "continuous") @model.line_numbering ||= Wordprocessingml::LineNumbering.new @model.line_numbering.count_by = count_by @model.line_numbering.start = start @model.line_numbering.restart = restart self end |
#margins(top: 1440, bottom: 1440, left: 1440, right: 1440, header: 720, footer: 720, gutter: 0) ⇒ self
Set page margins
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/uniword/builder/section_builder.rb', line 53 def margins(top: 1440, bottom: 1440, left: 1440, right: 1440, header: 720, footer: 720, gutter: 0) @model.page_margins ||= Wordprocessingml::PageMargins.new @model.page_margins.top = top @model.page_margins.bottom = bottom @model.page_margins.left = left @model.page_margins.right = right @model.page_margins.header = header @model.page_margins. = @model.page_margins.gutter = gutter self end |
#page_borders(**_options) ⇒ Object
78 79 80 81 |
# File 'lib/uniword/builder/section_builder.rb', line 78 def page_borders(**) @model.page_borders ||= Wordprocessingml::PageBorders.new self end |
#page_numbering(start: nil, format: nil) ⇒ self
Set page numbering for this section
102 103 104 105 106 107 |
# File 'lib/uniword/builder/section_builder.rb', line 102 def page_numbering(start: nil, format: nil) @model.page_numbering ||= Wordprocessingml::PageNumbering.new @model.page_numbering.start = start if start @model.page_numbering.format = format if format self end |
#page_size(width: 12_240, height: 15_840, orientation: "portrait") ⇒ self
Set page size
35 36 37 38 39 40 41 |
# File 'lib/uniword/builder/section_builder.rb', line 35 def page_size(width: 12_240, height: 15_840, orientation: "portrait") @model.page_size ||= Wordprocessingml::PageSize.new @model.page_size.width = width @model.page_size.height = height @model.page_size.orientation = orientation self end |
#type=(value) ⇒ Object
24 25 26 27 |
# File 'lib/uniword/builder/section_builder.rb', line 24 def type=(value) @model.type = value self end |