Module: Makura

Defined in:
lib/makura.rb,
lib/makura.rb,
lib/makura/error.rb,
lib/makura/model.rb,
lib/makura/design.rb,
lib/makura/layout.rb,
lib/makura/server.rb,
lib/makura/database.rb,
lib/makura/uuid_cache.rb,
lib/makura/http_methods.rb,
lib/makura/plugin/pager.rb

Defined Under Namespace

Modules: HTTPMethods, Model, Plugin Classes: Database, Design, Error, Layout, Server, UUIDCache

Constant Summary collapse

VERSION =
'2008.01.15'
ROOT =
File.expand_path(File.dirname(__FILE__))
CHARS =
(48..128).map{|c| c.chr}.grep(/[[:alnum:]]/)
MOD =
CHARS.size

Class Method Summary collapse

Class Method Details

.escape(s) ⇒ Object

From Rack



37
38
39
40
41
# File 'lib/makura.rb', line 37

def escape(s)
  s.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/n) {
    '%'+$1.unpack('H2'*$1.size).join('%').upcase
  }.tr(' ', '+')
end

.pretty_from_md5(md5) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'lib/makura.rb', line 43

def pretty_from_md5(md5)
  id = md5.to_i(16)
  o = []
  while id > 0
    id, r = id.divmod(MOD)
    o.unshift CHARS[r]
  end
  o.join
end

.pretty_to_md5(id) ⇒ Object



53
54
55
56
57
58
59
# File 'lib/makura.rb', line 53

def pretty_to_md5(id)
  i = 0
  id.scan(/./) do |c|
    i = i * MOD + CHARS.index(c)
  end
  i.to_s(16)
end