Module: EPUB::Publication::FixedLayout::Rendition
- Included in:
- ContentDocumentMixin, ItemMixin, ItemrefMixin, MetadataMixin
- Defined in:
- lib/epub/publication/fixed_layout.rb
Instance Method Summary collapse
Instance Method Details
#def_rendition_layout_methods ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/epub/publication/fixed_layout.rb', line 39 def def_rendition_layout_methods property = 'layout' RENDITION_PROPERTIES[property].each do |value| method_name_base = value.gsub('-', '_') writer_name = "#{method_name_base}=" define_method writer_name do |new_value| new_prop = new_value ? value : values.find {|l| l != value} __send__ "rendition_#{property}=", new_prop end maker_name = "make_#{method_name_base}" define_method maker_name do __send__ "rendition_#{property}=", value end destructive_method_name = "#{method_name_base}!" alias_method destructive_method_name, maker_name predicate_name = "#{method_name_base}?" define_method predicate_name do __send__("rendition_#{property}") == value end end end |
#def_rendition_methods ⇒ Object
Note:
Call after defining #rendition_xxx and #renditionn_xxx=
31 32 33 34 35 36 37 |
# File 'lib/epub/publication/fixed_layout.rb', line 31 def def_rendition_methods RENDITION_PROPERTIES.each_key do |property| alias_method property, "rendition_#{property}" alias_method "#{property}=", "rendition_#{property}=" end def_rendition_layout_methods end |