目的:Hamlの基本中の基本的な使い方とRubyコード埋め込みをテストする。
以下の環境にて実施
OS:Windows8.1
Ruby: v2.2.2 x64
Sinatra:v1.4.6
Sinatra-contrib:v1.4.2
haml:v4.0.6
ディレクトリ構造:
作業ディレクトリ(名称は何でもいい)
|-sinatraTest.rb
|-views(名称は左記の通りにディレクトリを作成)
|-view.haml
前提条件
Sinatra:v1.4.6
Sinatra-contrib:v1.4.2
haml:v4.0.6
ディレクトリ構造:
作業ディレクトリ(名称は何でもいい)
|-sinatraTest.rb
|-views(名称は左記の通りにディレクトリを作成)
|-view.haml
前提条件
- 上記に準ずる環境が構築されていること
以下の流れにて実施
- Hamlインストール
- Ruby側のソースコード作成
- Haml側のソースコード作成
- 説明&テスト
1.Hamlインストール
1.1
Rubyコマンドプロンプトを起動する。
1.2
以下のコマンドを実行する。
コマンド:gem install haml
1.3
インストール完了後、以下のコマンドでhamlを確認する。
コマンド:gem list または haml -v
以下の通りにソースコード作成する。
以前、以下の記事を見て頂いた方はソースを改造&追加する形で行うと楽です。
erbを使ってみた。
ソース1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# encoding: utf-8 | |
# File Name: sinatraTest.rb | |
# Create Day is 2015/05/08 | |
# Last Update Day is 2015/05/08 | |
# Gem List | |
gem 'tilt', '1.4.1' | |
# Require List | |
require 'sinatra' | |
# sinatra reloader is classic type | |
require 'sinatra/reloader' if development? | |
require 'haml' | |
require 'tilt' | |
get '/' do | |
@title = "Hello world!!" | |
@text = "erb Test!!" | |
haml :view | |
end |
再アップするのが面倒なのでこのままで...
2.Haml側のソースコード作成
以下の通りにソースコード作成する。
ソース2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
!!! | |
-# %TagName(html)で記述 | |
%html{:lang => "ja"} | |
%head | |
-# 「%TagName= @EmmbeddingName」で出力 | |
%title= @title | |
%body | |
-# 「%TagName #{@EmmbeddingName}で出力」 | |
%h1 #{@title} | |
%p= @text |
3.説明&テスト
3.1
Rubyソース側
「require haml」、hamlを使うためにrequireしている。(なくても警告が出るが動作する。)
「haml :view」、でviews/view.hamlを指定。
Hamlソース側
「%タグ名(htmlタグ)」で、タグの記述ができる。(閉じのタグは不要)
「%タグ名= @埋め込み名」でRubyコードで定義した内容を埋め込める。
または「%タグ名 #{@埋め込み名}」でもよい。
「-#」でhaml内だけのコメントとして扱える。
3.2
Rubyコマンドプロンプトから
sinatraTest.rbのディレクトリへ移動し、以下のコマンドを実行する。
コマンド:ruby sinatraTest.rb
3.3
「localhost:4567」へアクセスし、Rubyソース側で記述してある文言が表示されれば問題ない。
3.4
この項目はやらなくてもいいです。
hamlで記述しているファイルから、html記述のファイルを出力する。
Rubyコマンドプロンプトを起動して、viewsのディレクトリから実行する。
以下のコマンドを実行する。
コマンド:haml -q -E UTF-8 view.haml view.html
「-q」は、区切りをダブルクォーテーションにしてくれる。(デフォルトだとシングルになるため)
「-E UTF-8」は、文字コード指定。(ないとエラーが発生する)
今回のファイルでは、@titleや@textの部分はRubyソースに記述されているので、
htmlで出力しても何も記述されていない。
適当な文言を入れて出力すれば出てくる。
試してみて下さい。
erbよりもhamlの方が記述が少なくなりますね。
今回は、基本中の基本レベルなので、大した実感は出ませんが、
これから大きくなっていけば実感できるかと...
他にも色々と記述できることがあるのですが、、、それはその内...
閑話休題...(まったく関係のない話題)
さて今回なのですが、
github(gist)にてソースコードをいつものごとくアップロードしました。
しかし、あまりにも同じ名前を続けていたため、スパム扱いされてしまいました。
エラー(?)、警告(?)のようなものが出ますので、ちょっと焦りました。
対応としては、サポートの方へメールを出せば、対応してくれます。
ちなみにメールは一応英語で書きました。
管理人はまったくもって英語が苦手なのですよ。
なのでネットで調べた結果、固い英語になってしまいましたね...
GitHub Stuffの対応して下さった方、
拙い英語にもかかわらず、迅速な対応ありがとうございます!
みなさんも私と同じことにならないよう、気を付けて下さい。
以上!!
以下、参考にさせて頂いたサイト
Haml - REFERENCE(本家のドキュメント)