Module: Vedeu::DSL::Text
Overview
Provides helper methods for building views.
Instance Method Summary collapse
- #stream_attributes(attrs) ⇒ Hash private
- #stream_builder(attrs) ⇒ Vedeu::Stream private
-
#text(value = '', options = {}) ⇒ String
(also: #align, #center, #centre, #left, #right)
right ‘This will be right aligned.’, width: 35, anchor: centre # => ‘ This will be right aligned.’.
Instance Method Details
#stream_attributes(attrs) ⇒ Hash (private)
94 95 96 97 98 99 100 |
# File 'lib/vedeu/dsl/shared/text.rb', line 94 def stream_attributes(attrs) { colour: model.colour, parent: model, style: model.style, }.merge!(attrs) end |
#stream_builder(attrs) ⇒ Vedeu::Stream (private)
88 89 90 |
# File 'lib/vedeu/dsl/shared/text.rb', line 88 def stream_builder(attrs) Vedeu::Stream.build(stream_attributes(attrs)) end |
#text(value = '', options = {}) ⇒ String Also known as: align, center, centre, left, right
right ‘This will be right aligned.’, width: 35, anchor: centre
# => ' This will be right aligned.'
text 'This will be truncated here. More text here.', width: 28
# => 'This will be truncated here.'
text 'Padded with hyphens.', width: 25, pad: '-', anchor: :right
# => '-----Padded with hyphens.'
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/vedeu/dsl/shared/text.rb', line 58 def text(value = '', = {}) output = Vedeu::Text.with(value, .merge!({ anchor: __callee__ })) content = if model.is_a?(Vedeu::Interface) stream = stream_builder({ value: output }) Vedeu::Line.build({ streams: [stream], parent: model }) elsif model.is_a?(Vedeu::Line) stream_builder({ value: output }) elsif model.is_a?(Vedeu::Stream) stream_builder({ value: output, parent: model.parent }) else # should never get here end model.add(content) end |