controllers.rb 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. HelloWorld::App.controllers do
  2. get '/json', :provides => [:js] do
  3. {message: "Hello, World!"}.to_json
  4. end
  5. get '/db', :provides => [:js] do
  6. id = Random.rand(10000) + 1
  7. World.get(id).attributes.to_json
  8. end
  9. get '/queries', :provides => [:js] do
  10. queries = params['queries'].to_i
  11. queries = 1 if queries < 1
  12. queries = 500 if queries > 500
  13. results = (1..queries).map do
  14. World.get(Random.rand(10000) + 1).attributes
  15. end.to_json
  16. end
  17. get '/fortunes' do
  18. @fortunes = Fortune.all
  19. @fortunes << Fortune.new(:id => 0, :message => "Additional fortune added at request time.")
  20. @fortunes = @fortunes.sort_by { |x| x.message }
  21. render 'fortunes', layout: "layout"
  22. end
  23. get '/updates', :provides => [:js] do
  24. queries = params['queries'].to_i
  25. queries = 1 if queries < 1
  26. queries = 500 if queries > 500
  27. worlds = (1..queries).map do
  28. world = World.get(Random.rand(10000) + 1)
  29. world.update(:randomNumber => Random.rand(10000) + 1)
  30. world.attributes
  31. end
  32. #mass update
  33. values = worlds.map { |h| ['(', h[:id], ',' , h[:randomNumber], ')', ','] }.flatten[0..-2].join
  34. sql = "INSERT INTO `World` (`id`,`randomNumber`) VALUES #{values} ON DUPLICATE KEY UPDATE `World`.`randomNumber` = VALUES(`randomNumber`)"
  35. adapter = DataMapper.repository(:default).adapter
  36. adapter.execute(sql)
  37. worlds.to_json
  38. end
  39. get '/plaintext' do
  40. content_type 'text/plain'
  41. "Hello, World!"
  42. end
  43. end