From 01222ad0f377350f3ea1b644ecad36abf6ff8466 Mon Sep 17 00:00:00 2001 From: Frederik Fix Date: Fri, 20 Mar 2015 22:01:59 +0100 Subject: [PATCH] plumbing for rendering --- Gemfile | 1 + bin/kingpin | 2 ++ lib/kingpin/render_helper.rb | 11 +++++++++++ lib/kingpin/resources/home.rb | 7 +++++++ lib/kingpin/resources/task.rb | 5 +++++ lib/kingpin/resources/tasks.rb | 9 ++++++++- lib/kingpin/views/home.haml | 2 ++ lib/kingpin/views/layout.haml | 4 ++++ lib/kingpin/views/task.haml | 2 ++ lib/kingpin/views/tasks.haml | 2 ++ 10 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 lib/kingpin/render_helper.rb create mode 100644 lib/kingpin/views/home.haml create mode 100644 lib/kingpin/views/layout.haml create mode 100644 lib/kingpin/views/task.haml create mode 100644 lib/kingpin/views/tasks.haml diff --git a/Gemfile b/Gemfile index f941d1e..4ec2db1 100644 --- a/Gemfile +++ b/Gemfile @@ -4,3 +4,4 @@ gem 'celluloid' gem 'reel' gem 'webmachine' gem 'rspec' +gem 'haml' diff --git a/bin/kingpin b/bin/kingpin index 7617eb2..d86cd89 100755 --- a/bin/kingpin +++ b/bin/kingpin @@ -1,3 +1,5 @@ #!/usr/bin/env ruby + +$LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib' require 'kingpin' Kingpin::CommandLine.new(ARGV).run diff --git a/lib/kingpin/render_helper.rb b/lib/kingpin/render_helper.rb new file mode 100644 index 0000000..e6de7ad --- /dev/null +++ b/lib/kingpin/render_helper.rb @@ -0,0 +1,11 @@ +module Kingpin + module RenderHelper + def render(file) + template = Haml::Engine.new(File.read(File.join(File.dirname(__FILE__), "/views/", file))) + layout = Haml::Engine.new(File.read(File.join(File.dirname(__FILE__), "/views/layout.haml"))) + layout.render(self) do + template.render(self) + end + end + end +end diff --git a/lib/kingpin/resources/home.rb b/lib/kingpin/resources/home.rb index 2a1307a..6050e90 100644 --- a/lib/kingpin/resources/home.rb +++ b/lib/kingpin/resources/home.rb @@ -1,9 +1,16 @@ module Kingpin module Resources class Home < Webmachine::Resource + include Kingpin::RenderHelper + def allowed_methods ['GET','HEAD'] end + + private + def to_html + render 'home.haml' + end end end end diff --git a/lib/kingpin/resources/task.rb b/lib/kingpin/resources/task.rb index 9f2d305..9df5b65 100644 --- a/lib/kingpin/resources/task.rb +++ b/lib/kingpin/resources/task.rb @@ -1,7 +1,12 @@ module Kingpin module Resources class Task < Webmachine::Resource + include Kingpin::RenderHelper + private + def to_html + render 'task.haml' + end end end end diff --git a/lib/kingpin/resources/tasks.rb b/lib/kingpin/resources/tasks.rb index 4961b7d..3f656b9 100644 --- a/lib/kingpin/resources/tasks.rb +++ b/lib/kingpin/resources/tasks.rb @@ -1,9 +1,16 @@ module Kingpin module Resources class Tasks < Webmachine::Resource + include Kingpin::RenderHelper + def allowed_methods - ['GET','HEAD'] + ['GET','POST'] end + + private + def to_html + render 'tasks.haml' + end end end end diff --git a/lib/kingpin/views/home.haml b/lib/kingpin/views/home.haml new file mode 100644 index 0000000..a93e8a2 --- /dev/null +++ b/lib/kingpin/views/home.haml @@ -0,0 +1,2 @@ +%div + %h1 Kingpin diff --git a/lib/kingpin/views/layout.haml b/lib/kingpin/views/layout.haml new file mode 100644 index 0000000..461b986 --- /dev/null +++ b/lib/kingpin/views/layout.haml @@ -0,0 +1,4 @@ +%html + %head + %body + = yield diff --git a/lib/kingpin/views/task.haml b/lib/kingpin/views/task.haml new file mode 100644 index 0000000..a78b2ca --- /dev/null +++ b/lib/kingpin/views/task.haml @@ -0,0 +1,2 @@ +%div + %h1 Task diff --git a/lib/kingpin/views/tasks.haml b/lib/kingpin/views/tasks.haml new file mode 100644 index 0000000..4b4283e --- /dev/null +++ b/lib/kingpin/views/tasks.haml @@ -0,0 +1,2 @@ +%div + %h1 Tasks