Sha256: 8487be2941a97529f91b99ce52dcd7471af84a996ef91cf4f55ffd52be6e816d

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

class Paste < Sequel::Model(:paste)
  set_schema do
    primary_key :id

    text :text, :null => false
    text :syntax, :null => false
    time :created
  end

  def text_fragment(style = STYLE)
    fragment = lines[0...10].join("\n")
    uv(fragment, style, lines = false)
  end

  def lines
    text.scan(/^.*?$/)
  end

  def view(format, style = STYLE)
    case format.downcase
    when /x?html/
      uv(text, style)
    when /txt/, /plain/
      text
    else
      raise "No such format: #{format}"
    end
  end

  def uv(text, style = STYLE, lines = true)
    Uv.parse(text, "xhtml", syntax, lines, style)
  end

  def syntax_name
    SYNTAX_LIST[syntax]
  end

  # Create prioritized and sorted list of syntaxes

  list = Ramaze::Dictionary.new

  syntaxes = Uv.instance_variable_get('@syntaxes')

  UV_PRIORITY_NAMES.each do |key|
    list[key] = syntaxes[key].name
  end

  (syntaxes.keys - UV_PRIORITY_NAMES).
    sort_by{|key| syntaxes[key].name}.
    each do |key|
    list[key] = syntaxes[key].name
  end

  SYNTAX_LIST = list
end

Paste.create_table! unless Paste.table_exists?

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ramaze-0.3.5 examples/rapaste/model/paste.rb