Browse Source

Upgrade Crystal/Kemal (#2212)

Serdar Dogruyol 9 years ago
parent
commit
9d38fde1e5

+ 4 - 27
frameworks/Crystal/kemal/server-postgres.cr

@@ -1,7 +1,6 @@
 require "kemal"
 require "kemal"
 require "pg"
 require "pg"
 require "pool/connection"
 require "pool/connection"
-require "html_builder"
 
 
 # Compose Objects (like Hash) to have a to_json method
 # Compose Objects (like Hash) to have a to_json method
 require "json/to_json"
 require "json/to_json"
@@ -92,40 +91,17 @@ end
 
 
 # Postgres Test 4: Fortunes
 # Postgres Test 4: Fortunes
 get "/fortunes" do |env|
 get "/fortunes" do |env|
+  env.response.content_type = CONTENT::HTML
   data = fortunes
   data = fortunes
-
   additional_fortune = {
   additional_fortune = {
     id:      0,
     id:      0,
     message: "Additional fortune added at request time.",
     message: "Additional fortune added at request time.",
   }
   }
   data.push(additional_fortune)
   data.push(additional_fortune)
 
 
-  data.sort_by! {|fortune| fortune[:message] }
+  data.sort_by! { |fortune| fortune[:message] }
 
 
-  env.response.content_type = CONTENT::HTML
-  # New builder for each request!
-  HTML::Builder.new.build do
-    doctype
-    html {
-      head {
-        title { html "Fortunes" }
-      }
-      body {
-        table {
-          tr {
-            th { html "id" }
-            th { html "message" }
-          }
-          data.each { |e|
-            tr {
-              td { html e[:id] }
-              td { text e[:message] }
-            }
-          }
-        }
-      }
-    }
-  end
+  render "views/fortunes.ecr"
 end
 end
 
 
 # Postgres Test 5: Database Updates
 # Postgres Test 5: Database Updates
@@ -138,4 +114,5 @@ get "/updates" do |env|
   updated.to_json
   updated.to_json
 end
 end
 
 
+logging false
 Kemal.run
 Kemal.run

+ 2 - 25
frameworks/Crystal/kemal/server-redis.cr

@@ -1,6 +1,5 @@
 require "kemal"
 require "kemal"
 require "redis"
 require "redis"
-require "html_builder"
 
 
 # Compose Objects (like Hash) to have a to_json method
 # Compose Objects (like Hash) to have a to_json method
 require "json/to_json"
 require "json/to_json"
@@ -96,30 +95,7 @@ get "/fortunes" do |env|
 
 
   data.sort_by! { |fortune| fortune[:message] }
   data.sort_by! { |fortune| fortune[:message] }
 
 
-  env.response.content_type = CONTENT::HTML
-  # New builder for each request!
-  HTML::Builder.new.build do
-    doctype
-    html {
-      head {
-        title { html "Fortunes" }
-      }
-      body {
-        table {
-          tr {
-            th { html "id" }
-            th { html "message" }
-          }
-          data.each { |e|
-            tr {
-              td { html e[:id] }
-              td { text e[:message] }
-            }
-          }
-        }
-      }
-    }
-  end
+  render "views/fortunes.ecr"
 end
 end
 
 
 # Redis Test 5: Database Updates
 # Redis Test 5: Database Updates
@@ -132,4 +108,5 @@ get "/updates" do |env|
   updated.to_json
   updated.to_json
 end
 end
 
 
+logging false
 Kemal.run
 Kemal.run

+ 2 - 2
frameworks/Crystal/kemal/setup-postgres.sh

@@ -2,8 +2,8 @@
 
 
 fw_depends crystal
 fw_depends crystal
 
 
-crystal deps install
+shards install
 
 
 crystal build --release server-postgres.cr
 crystal build --release server-postgres.cr
 
 
-KEMAL_ENV=production ./server-postgres &
+./server-postgres &

+ 2 - 2
frameworks/Crystal/kemal/setup-redis.sh

@@ -2,8 +2,8 @@
 
 
 fw_depends crystal
 fw_depends crystal
 
 
-crystal deps install
+shards install
 
 
 crystal build --release server-redis.cr
 crystal build --release server-redis.cr
 
 
-KEMAL_ENV=production ./server-redis &
+./server-redis &

+ 2 - 2
frameworks/Crystal/kemal/shard.lock

@@ -6,7 +6,7 @@ shards:
 
 
   kemal:
   kemal:
     github: sdogruyol/kemal
     github: sdogruyol/kemal
-    version: 0.14.1
+    version: 0.16.0
 
 
   kilt:
   kilt:
     github: jeromegn/kilt
     github: jeromegn/kilt
@@ -22,7 +22,7 @@ shards:
 
 
   radix:
   radix:
     github: luislavena/radix
     github: luislavena/radix
-    version: 0.3.0
+    version: 0.3.1
 
 
   redis:
   redis:
     github: stefanwille/crystal-redis
     github: stefanwille/crystal-redis

+ 3 - 5
frameworks/Crystal/kemal/shard.yml

@@ -10,11 +10,9 @@ dependencies:
     version: "0.2.3"
     version: "0.2.3"
   kemal:
   kemal:
     github: "sdogruyol/kemal"
     github: "sdogruyol/kemal"
-    version: "0.14.1"
+    version: "0.16.0"
   redis:
   redis:
     github: "stefanwille/crystal-redis"
     github: "stefanwille/crystal-redis"
-    version: "1.6.6"
-  html_builder:
-    github: "crystal-lang/html_builder"
-    version: "0.2.1"
+    version: "~> 1.6.6"
+
 license: "MIT"
 license: "MIT"

+ 20 - 0
frameworks/Crystal/kemal/views/fortunes.ecr

@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<title>Fortunes</title>
+</head>
+<body>
+	<table>
+		<tr>
+		<th>id</th>
+		<th>message</th>
+		</tr>
+		<% data.each do |fortune| %>
+			<tr>
+			<td><%= fortune[:id] %></td>
+			<td><%= HTML.escape(fortune[:message]) %></td>
+			</tr>
+		<% end %>
+	</table>
+</body>
+</html>