Module: EPUB::Publication::FixedLayout::ItemrefMixin
- Extended by:
- Rendition
- Defined in:
- lib/epub/publication/fixed_layout.rb
Constant Summary collapse
- PAGE_SPREAD_PROPERTY =
'center'
- PAGE_SPREAD_PREFIX =
'rendition:page-spread-'
Class Method Summary collapse
Methods included from Rendition
def_rendition_layout_methods, def_rendition_methods
Class Method Details
.included(base) ⇒ Object
TODO:
Define using Module#prepend after Ruby 2.0 will become popular
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/epub/publication/fixed_layout.rb', line 118 def included(base) return if base.instance_methods.include? :page_spread_without_fixed_layout base.__send__ :alias_method, :page_spread_without_fixed_layout, :page_spread base.__send__ :alias_method, :page_spread_writer_without_fixed_layout, :page_spread= prefixed_page_spread_property = "#{PAGE_SPREAD_PREFIX}#{PAGE_SPREAD_PROPERTY}" base.__send__ :define_method, :page_spread do property = page_spread_without_fixed_layout return property if property properties.include?(prefixed_page_spread_property) ? PAGE_SPREAD_PROPERTY : nil end base.__send__ :define_method, :page_spread= do |new_value| if new_value == PAGE_SPREAD_PROPERTY page_spread_writer_without_fixed_layout nil properties << prefixed_page_spread_property else page_spread_writer_without_fixed_layout new_value end new_value end end |