Guest User

Untitled

a guest
Dec 16th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. require 'sinatra'
  2. require 'dm-core'
  3. # setting up DataMapper to store in db folder in a yaml file
  4. DataMapper::setup(:default, {:adapter => 'yaml', :path => 'db'})
  5.  
  6. class Visitor
  7. include DataMapper::Resource
  8. # unique id, required
  9. property :id, Serial
  10. # optional properties you want to store
  11. property :firstname, String
  12. property :lastname, String
  13. property :gender, String
  14. end
  15.  
  16. # tells DataMapper we are finished setting up
  17. DataMapper.finalize
  18.  
  19. # storing the information
  20. post '/store_info' do
  21. # create a new Visitor class object
  22. user = Visitor.new
  23. # store various params (url or form)
  24. user.firstname = params[:firstname]
  25. user.lastname = params[:lastname]
  26. user.gender = params[:gender]
  27. #save entries
  28. user.save
  29.  
  30. html_out ="<ul>"
  31. for user in Visitor.all
  32. # every time we go through the loop,
  33. # add a snippet that looks like: Barack, Obama;
  34. html_out += <<-HTML
  35. <li>#{user.firstname}, #{user.lastname} </li>
  36. HTML
  37. end
  38.  
  39. html_out +="</ul>"
  40.  
  41. <<-HTML
  42. User name #{params[:firstname]} #{params[:lastname]} saved.
  43.  
  44. So far you've saved #{html_out}
  45. HTML
  46. end
  47.  
  48. # reading back all the information we've saved
  49. get '/visitors' do
  50. # create a variable to keep track of the information
  51. html_out = ""
  52. # loop through all the entries in the yml file
  53. for user in Visitor.all
  54. # every time we go through the loop,
  55. # add a snippet that looks like: Barack, Obama;
  56. html_out += <<-HTML
  57. #{user.firstname}, #{user.lastname};
  58. HTML
  59. end
  60. # after we put all the names together, show the result
  61. html_out
  62. end
  63.  
  64. # reading back a certain entry
  65. get "/visitor/:id" do
  66. user = Visitor.get(params[:id])
  67. "#{user.firstname} #{user.lastname}"
  68. end
  69.  
  70. # updating an entry
  71. get "/update_visitor/:id" do
  72. user = Visitor.get(params[:id])
  73. user.update(:firstname => "First")
  74. "New name is #{user.firstname} #{user.lastname}"
  75. end
  76.  
  77. # deleting an entry
  78. get "/delete_visitor/:id" do
  79. user = Visitor.get(params[:id])
  80. user.destroy
  81. "User #{params[:id]} deleted!"
  82. end
  83.  
  84. # deleting an entry
  85. get "/delete_all" do
  86. for user in Visitor.all
  87. user.destroy
  88. end
  89.  
  90. "Users deleted!"
  91. end
  92.  
  93. get '/test' do
  94. output = ""
  95. for user in Visitor.all(:firstname.like => 'johann')
  96. output += "#{user.firstname};"
  97. end
  98.  
  99. output
  100. end
Add Comment
Please, Sign In to add comment