module EPUB::CFI

Constants

RE_ESCAPED_SPECIAL_CHARS
SPECIAL_CHARS
VERSION

epub-cfi version

Public Class Methods

escape(string) click to toggle source

Escapes special characters in string

@example

EPUB::CFI.escape("2[1]") #=> "2^[1^]"

@param string [String] Component string of EPUB CFI @return [String] Escaped comonent string

# File lib/epub/cfi.rb, line 16
def escape(string)
  string.gsub(/([#{RE_ESCAPED_SPECIAL_CHARS}])/o, '^\1')
end
unescape(string) click to toggle source

Unescape escaped characters in string

@example

EPUB::CFI.unescape("2^[1^]") #=> "2[1]"

@param string [String] Escape component string of EPUB CFI @return [String] Unescaped component string

# File lib/epub/cfi.rb, line 27
def unescape(string)
  string.gsub(/\^([#{RE_ESCAPED_SPECIAL_CHARS}])/o, '\1')
end

Public Instance Methods

parse(string) click to toggle source

Parses the given string, creates a new {CFI} object and return it.

@example Parses a URI fragment string

EPUB::CFI.parse("epubcfi(/6/14[chap05ref]!/4[body01]/10/2/1:3[2^[1^]])")
#=> #<EPUB::CFI::Location:/6/14[chap05ref]!/4[body01]/10/2/1:3[2^[1^]]>

@example Parses a path string

EPUB::CFI.parse("/6/14[chap05ref]!/4[body01]/10/2/1:3[2^[1^]]")
#=> #<EPUB::CFI::Location:/6/14[chap05ref]!/4[body01]/10/2/1:3[2^[1^]]>

@param string [String] @return [CFI] @raise [Racc::ParseError] if given string is invalid

# File lib/epub/cfi/parser.rb, line 90
def parse(string)
  EPUB::CFI::Parser.parse(string)
end