class GEPUB::Bindings
Public Class Methods
new() { |self| ... }
click to toggle source
# File lib/gepub/bindings.rb, line 17 def initialize @media_types = [] @handler_by_media_type = {} yield self if block_given? end
parse(bindings_xml)
click to toggle source
# File lib/gepub/bindings.rb, line 23 def self.parse(bindings_xml) Bindings.new { |bindings| bindings.instance_eval { if !bindings_xml.nil? @xml = bindings_xml @namespaces = @xml.namespaces @attributes = attr_to_hash(@xml.attributes) @xml.xpath("//#{ns_prefix(OPF_NS)}:bindings/#{ns_prefix(OPF_NS)}:mediaType", @namespaces).map { |mediaType| @media_types << MediaType.new(mediaType['handler'], mediaType['media-type']) @handler_by_media_type[mediaType['media-type']] = mediaType['handler'] } end } } end
Public Instance Methods
add(id, media_type)
click to toggle source
# File lib/gepub/bindings.rb, line 49 def add(id, media_type) @media_types << MediaType.new(id, media_type) @handler_by_media_type[media_type] = id end
handler_by_media_type()
click to toggle source
# File lib/gepub/bindings.rb, line 45 def handler_by_media_type return @handler_by_media_type.dup end
media_types()
click to toggle source
# File lib/gepub/bindings.rb, line 41 def media_types return @media_types.dup end
to_xml(builder)
click to toggle source
# File lib/gepub/bindings.rb, line 54 def to_xml(builder) if (media_types.size > 0) builder.bindings { @media_types.each { |mediaType| mediaType.to_xml(builder) } } end end