Guest User

Untitled

a guest
Jun 22nd, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. require 'rubygems'
  2. require 'sinatra'
  3. require 'dm-core'
  4. require 'dm-validations'
  5. require 'dm-timestamps'
  6. require 'syntaxi'
  7.  
  8. DataMapper.setup(:default, ENV['DATABASE_URL'] || 'sqlite3://my.db')
  9.  
  10. class Snippet
  11. include DataMapper::Resource
  12.  
  13. property :id, Integer, :serial => true # primary serial key
  14. property :body, Text, :nullable => false # cannot be null
  15. property :created_at, DateTime
  16. property :updated_at, DateTime
  17.  
  18. # validates_present :body
  19. # validates_length :body, :minimum => 1
  20.  
  21. Syntaxi.line_number_method = 'floating'
  22. Syntaxi.wrap_at_column = 80
  23.  
  24. def formatted_body
  25. replacer = Time.now.strftime('[code-%d]')
  26. html = Syntaxi.new("[code lang='ruby']#{self.body.gsub('[/code]', replacer)}[/code]").process
  27. "<div class=\"syntax syntax_ruby\">#{html.gsub(replacer, '[/code]')}</div>"
  28. end
  29. end
  30.  
  31. DataMapper.auto_upgrade!
  32.  
  33. # new
  34. get '/' do
  35. erb :new
  36. end
  37.  
  38. # create
  39. post '/' do
  40. @snippet = Snippet.new(:body => params[:snippet_body])
  41. if @snippet.save
  42. redirect "/#{@snippet.id}"
  43. else
  44. redirect '/'
  45. end
  46. end
  47.  
  48. # show
  49. get '/:id' do
  50. @snippet = Snippet.get(params[:id])
  51. if @snippet
  52. erb :show
  53. else
  54. redirect '/'
  55. end
  56. end
Add Comment
Please, Sign In to add comment