Class: Bookmarks::Document

Inherits:
Object
  • Object
show all
Defined in:
lib/bookmarks/document.rb

Overview

Public: Document is your main interface to the file of bookmarks (called «document»).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(format: :netscape) ⇒ Document

Public: Init a new Document.

format - The Symbol format of the document (Optional).

Examples

# The two following calls work the same way.
Document.new
Document.new format: :netscape


16
17
18
19
20
21
22
# File 'lib/bookmarks/document.rb', line 16

def initialize format: :netscape
  @bookmarks_format = format
  @document = ""
  @bookmarks = []
  @total = 0
  @h3_tags = []
end

Instance Attribute Details

#bookmarksObject (readonly)

Public: Returns an Array of NetscapeBookmark bookmarks.



32
33
34
# File 'lib/bookmarks/document.rb', line 32

def bookmarks
  @bookmarks
end

#bookmarks_formatObject (readonly)

Public: Returns the Symbol format of the document. Currently

there is only one format available: `:netscape`.


26
27
28
# File 'lib/bookmarks/document.rb', line 26

def bookmarks_format
  @bookmarks_format
end

#documentObject (readonly)

Public: Returns the String document.



29
30
31
# File 'lib/bookmarks/document.rb', line 29

def document
  @document
end

#totalObject (readonly)

Public: Returns the Integer numbers of bookmarks in the document.



35
36
37
# File 'lib/bookmarks/document.rb', line 35

def total
  @total
end

Instance Method Details

#build(&block) ⇒ Object

Public: Build a document, ie build a file of bookmarks.

block - A block that enumerate all NetscapeBookmark to put

into the document.

Examples

# ary is an array of NetscapeBookmark.
document.build do
  ary.each {|e| e }
end

Returns the String document.



50
51
52
53
54
55
56
57
# File 'lib/bookmarks/document.rb', line 50

def build &block
  @document += FIRST_PART
  block.call.each do |n|
    @document += n.to_s + "\n"
    @total += 1
  end
  @document += LAST_PART
end

#parse(file_path) ⇒ Object

Public: Parse a file of bookmarks (netscape format). Bookmarks could then be retrieved with #bookmarks.

file_path - Full String pathname of the file to parse.

Returns the String document (see also #document).



65
66
67
68
# File 'lib/bookmarks/document.rb', line 65

def parse file_path
  File.new(file_path).readlines.each {|line| parse_a_bookmark line }
  @total = @bookmarks.size
end