Module: Lydown::Rendering::Movement
- Defined in:
- lib/lydown/rendering/movement.rb
Constant Summary collapse
- PAGE_BREAKS =
{ 'before' => {before: true}, 'after' => {after: true}, 'before and after' => {before: true, after: true}, 'blank page before' => {blank_page_before: true}, 'bookpart before' => {bookpart_before: true} }
Class Method Summary collapse
-
.bookparts(context, opts) ⇒ Object
Groups movements by bookparts.
- .hide_bar_numbers?(context, opts) ⇒ Boolean
- .movement_title(context, name) ⇒ Object
- .page_breaks(context, opts) ⇒ Object
- .tacet?(context, name) ⇒ Boolean
Class Method Details
.bookparts(context, opts) ⇒ Object
Groups movements by bookparts. Whenever a movement requires a page break before, a new group is created
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/lydown/rendering/movement.rb', line 51 def self.bookparts(context, opts) groups = []; current_group = [] context[:movements].keys.each do |movement| breaks = page_breaks(context, opts.merge(movement: movement)) if breaks[:before] || breaks[:blank_page_before] groups << current_group unless current_group.empty? current_group = [] end current_group << movement end groups << current_group unless current_group.empty? groups end |
.hide_bar_numbers?(context, opts) ⇒ Boolean
66 67 68 |
# File 'lib/lydown/rendering/movement.rb', line 66 def self.(context, opts) context.get_setting(:bar_numbers, opts) == 'hide' end |
.movement_title(context, name) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/lydown/rendering/movement.rb', line 3 def self.movement_title(context, name) return nil if name.nil? || name.empty? if t = context.get_setting('movement_title', movement: name) title = t elsif name =~ /^(?:([0-9]+)([a-z]*))\-(.+)$/ title = "#{$1.to_i}#{$2}. #{$3.capitalize}" else title = name end if context["movements/#{name}/parts"].empty? title += " - tacet" end title end |
.page_breaks(context, opts) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/lydown/rendering/movement.rb', line 33 def self.page_breaks(context, opts) setting = case context.render_mode when :score context.get_setting('score/page_break', opts) when :part part = opts[:part] || context[:part] || context['render_opts/parts'] context.get_setting(:page_break, opts.merge(part: part)) || context.get_setting('parts/page_break', opts) else {} end PAGE_BREAKS[setting] || {} end |
.tacet?(context, name) ⇒ Boolean
21 22 23 |
# File 'lib/lydown/rendering/movement.rb', line 21 def self.tacet?(context, name) context["movements/#{name}/parts"].empty? end |