class Qwik::Pages

Constants

FIRST_PAGE_ID

Attributes

backupdb[R]
db[R]
index[R]

Public Class Methods

new(config, dir) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 18
def initialize(config, dir)
  @config = nil     # FIXME: This is not used.

  dir = dir.path
  spath = config.super_dir.path

  if config.db == 'fsdb'
    @db = FileSystemDB.new(dir, spath)
  elsif config.db == 'bdb'  # Notice: This setting is experimental.
    require 'qwik/db-berkeley'
    @db = BerkeleyDB.new(dir, spath)
  else
    raise 'Unknown database type.'
  end

  @backupdb = BackupDB.new(dir)
  @db.register_observer(@backupdb)

  # Register Senna indexer  # Notice: This setting is experimental.
  if config[:use_senna] == 'true'
    @index = DBIndexer.new(dir)
    @db.register_observer(@index)
  end
end

Public Instance Methods

[](k) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 74
def [](k)
  return get(k)
end
baseexist?(k) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 60
def baseexist?(k)
  return @db.baseexist?(k)
end
close() click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 46
def close
  @db.close
end
create(k) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 50
def create(k)       # Create a new page.
  raise PageExistError if baseexist?(k)
  page = Page.new(@config, self, k)
  return page
end
create_new() click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 56
def create_new
  return create(get_new_id)
end
date_list() click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 134
def date_list
  return to_a.sort_by {|page|
    page.mtime
  }
end
date_list_keys() click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 140
def date_list_keys
  ar = []
  list.each {|key|
    page = get(key)
    time = page.mtime.to_i
    ar << [time, key]
  }
  return ar.sort
end
delete(k) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 78
def delete(k)
  page = get(k)
  page.delete
end
each(all = false, with_super = false) { |page| ... } click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 100
def each(all = false, with_super = false)
  list(all, with_super).each {|key|
    page = self[key]
    next if page.nil?      # What?
    yield(page)
  }
end
each_all(&b) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 108
def each_all(&b)
  each(true, &b)
end
erase_all() click to toggle source
# File vendor/qwik/lib/qwik/test-module-path.rb, line 16
def erase_all
  @db.erase_all
  @pages = {}
end
exist?(k) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 64
def exist?(k)
  return @db.exist?(k)
end
find_title(title) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 150
def find_title(title)
  self.each(true, true) {|page|
    if page.get_title == title
      return page
    end
  }
  return nil
end
get(k) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 68
def get(k)
  return nil if ! exist?(k)
  page = Page.new(@config, self, k) 
  return page
end
get_by_title(title) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 174
def get_by_title(title)
  page = self[title] rescue nil
  return page if page

  page = self.find_title(title)
  return page if page

  return nil
end
get_new_id() click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 159
def get_new_id
  numkeys = keys.map {|k| /\A\d+\z/ =~ k ? k.to_i : 0 }
  return (numkeys.max + 1).to_s if numkeys.max
  return FIRST_PAGE_ID
end
keys() click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 112
def keys
  ks = []
  self.each {|page| ks << page.key }
  return ks
end
last_article_time() click to toggle source

QuickML support

# File vendor/qwik/lib/qwik/pages.rb, line 170
def last_article_time
  return @db.last_article_time
end
last_page_time() click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 165
def last_page_time
  return @db.last_page_time
end
list(all = false, with_super = false) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 91
def list(all = false, with_super = false)
  ar = []
  @db.list(with_super).each {|key|
    next if ! all && /\A_/ =~ key
    ar << key
  }
  ar
end
title_list() click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 118
def title_list
  return to_a.sort_by {|page|
    page.get_title.downcase
  }
end
title_list_keys() click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 124
def title_list_keys
  ar = []
  list.each {|key|
    page = get(key)
    title = page.get_title.downcase
    ar << [title, key]
  }
  return ar.sort
end
to_a(all=nil) click to toggle source
# File vendor/qwik/lib/qwik/pages.rb, line 83
def to_a(all=nil)
  ar = []
  each(all) {|page|
    ar << page
  }
  return ar
end