2012年07月24日

Roninの勉強(2)


−−−−−−−−−−−−−−−−−−−−−−−−−
■Controller And View Parameters
http://ronin-web.org/tutorial.html
−−−−−−−−−−−−−−−−−−−−−−−−−
・C:\aardvark-0.4\bin\my_app\src\controller\PostCx.gsを開き、viewPostの中身を変更

function viewPost(post : String) {
view.ViewPost.render(Writer, post)
}

・C:\aardvark-0.4\bin\my_app\src\view\ViewPost.gstを開き、以下の内容に変更

<%@ extends ronin.RoninTemplate %>
<%@ params (post : String) %>
<html>
<body>
${post}
</body>
</html>

・ブラウザを起動して、http://localhost:8080/PostCx/viewPost?post=Hello+worldにアクセス。
画面に「Hello world」と表示されれば成功です。

−−−−−−−−−−−−−−−−−−−−−−−−−
■Layout and Blocks・・・表示は上記のサンプルと同じ
書いてある通りに書くと動かない。(-_-;
http://ronin-web.org/tutorial.html
−−−−−−−−−−−−−−−−−−−−−−−−−
・C:\aardvark-0.4\bin\my_app\src\view\Layout.gstを作成

<%@ extends ronin.RoninTemplate %>
<%@ params(content()) %>
<html>
<head>
<title>Blog</title>
</head>
<body>
<div id="content"><% content() %></div>
</body>
</html>

・C:\aardvark-0.4\bin\my_app\src\controller\PostCx.gsを開き、viewPostの変更および宣言2つ追加

package controller

uses ronin.RoninController
uses view.Layout
uses view.ViewPost

class PostCx extends RoninController {

function viewPost(post : String) {
Layout.render(Writer,
\ -> ViewPost.render(Writer, post))
}
}

・C:\aardvark-0.4\bin\my_app\src\view\ViewPost.gstを開き、以下の内容に変更

<%@ extends ronin.RoninTemplate %>
<%@ params (post : String) %>
${post}

・ブラウザを起動して、http://localhost:8080/PostCx/viewPost?post=Hello+worldにアクセス。
画面に「Hello world」と表示されれば成功です。
posted by rururu at 00:10| Comment(0) | TrackBack(0) | Gosu

2012年07月23日

Roninの勉強(1)


Gosu の Webアプリケーションフレームワークで「Ronin」というらしい。
http://ronin-web.org/index.html

−−−−−−−−−−−−−−−−−−−
■インストール
varkの動かす方法間違えたかも
ホントは別の場所に移動して、
C:\aardvark-0.4\bin\vark -url http://ronin-web.org/init.vark init -name my_app and follow the prompts
をやるべきだったかも(-_-;
−−−−−−−−−−−−−−−−−−−
・JDK 6 または 7をインストール

・Aardvark(http://vark.github.com/) をダウンロードして、任意の場所に解凍
とりあえずzip形式のファイルをダウンロードして以下の場所に配置
C:\aardvark-0.4

・コマンドプロンプト起動
環境変数にvarkのある場所を登録していないのでcdで移動して、
以下のコマンドを実行
   > cd C:\aardvark-0.4\bin
> vark -url http://ronin-web.org/init.vark init -name my_app and follow the prompts
> cd my_app
> C:\aardvark-0.4\bin\vark server

・ブラウザを起動して、http://localhost:8080にアクセス。画面にroninと表示されたらOK
(database, tutorial, docsのリンクも)

−−−−−−−−−−−−−−−−−−−
■HelloWorld・・・英語読めないんで、何て書いてあるのかなんとなくしかわからん(-_-;
http://ronin-web.org/tutorial.html#hello_world
−−−−−−−−−−−−−−−−−−−
・C:\aardvark-0.4\bin\my_app\src\controller\PostCx.gsを作成し、以下のコード入力
package controller

uses ronin.RoninController

class PostCx extends RoninController {

function viewPost() : String {
return "<html><body>This is a post</body></html>"
}

}

・ブラウザを起動して、http://localhost:8080/PostCx/viewPostにアクセス。
画面に「This is a post」と表示されれば成功です。

・C:\aardvark-0.4\bin\my_app\src\view\ViewPost.gstを作成し、以下のコード入力

<%@ extends ronin.RoninTemplate %>
<html>
<body>
This is a post.
</body>
</html>

・C:\aardvark-0.4\bin\my_app\src\controller\PostCx.gsを開き、viewPostの中身を変更
<変更前>
function viewPost() : String {
return "<html><body>This is a post</body></html>"
}

<変更後>
function viewPost() {
view.ViewPost.render(Writer)
}

・ブラウザを起動して、http://localhost:8080/PostCx/viewPostにアクセス。
画面に「This is a post.」と表示されれば成功です。

・C:\aardvark-0.4\bin\my_app\src\view\ViewPost.gstを開き、以下の内容に変更

<%@ extends ronin.RoninTemplate %>
<% uses java.util.Date %>
<html>
<body>
The current time is ${new Date()}.
</body>
</html>

・ブラウザを起動して、http://localhost:8080/PostCx/viewPostにアクセス。
画面に以下のように現在の日時が表示されれば成功です。
<出力例>
The current time is Mon Jul 23 00:26:11 JST 2012.
posted by rururu at 00:29| Comment(0) | TrackBack(0) | Gosu

2012年07月22日

Gosuの勉強(10)


例外処理
http://gosu-lang.org/doc/wwhelp/wwhimpl/js/html/wwhelp.htm#href=Gosu%20Reference%20Guide/exceptionhandling.10.1.html
−−−−−−−−−−−−−−−−−−−−−−−−
■記述例
−−−−−−−−−−−−−−−−−−−−−−−−
uses java.lang.Integer
uses java.lang.ArithmeticException
uses java.lang.NumberFormatException

try {
var x : int = Integer.parseInt("どーだろ")
print("答えは" + (100/x))
} catch(e : ArithmeticException) {
print("ArithmeticExceptionをキャッチ")
} catch(e : NumberFormatException) {
print("NumberFormatExceptionをキャッチ")
} catch(e) {
print(e)
} finally {
print("This program was finished")
}
posted by rururu at 00:15| Comment(0) | TrackBack(0) | Gosu

2012年07月21日

Gosuの勉強(9)


継承は、Javaと同じ「extends」を使います。
親クラスのコンストラクタ呼び出しは、Javaと同じ「super」
親クラスのプロパティ呼び出しは「super.プロパティ名」
オーバーライドは「override」をつけます。

−−−−−−−−−−−−−−−−−−−−−−−−
■記述例
−−−−−−−−−−−−−−−−−−−−−−−−
package test

uses java.lang.Integer

// 割引商品クラス
class DiscountProduct extends Product {
private var _discount:int as Discount // 商品割引率

// 割引商品クラスのコンストラクター。
construct(dcode:String, dname:String, dprice:int, ddiscount:int) {
super(dcode, dname, dprice)
_discount = ddiscount
}

// 商品割引率に値を設定します。
property set Discount(discount:int) {
if (discount < 0 || discount > 100) {
_discount = 0
return
}
_discount = discount
}
override property get Price() : int {
return (super.Price * (1 - _discount / 100.0)) as Integer
}
}
posted by rururu at 23:18| Comment(0) | TrackBack(0) | Gosu

Gosuの勉強(8)


Gosuでは、プロパティというのが用意されています。
単純なゲッターやセッターは書く必要ないんです。

プロパティ
http://gosu-lang.org/doc/wwhelp/wwhimpl/js/html/wwhelp.htm#href=Gosu%20Reference%20Guide/classes.11.4.html

以下のように「as Code」と書くと内部的に
「Code」のゲッターとセッターが作られるっぽいです。

private var _code:String as Code // 商品コード

−−−−−−−−−−−−−−−−−−−−−−−−
■記述例
−−−−−−−−−−−−−−−−−−−−−−−−
package test
uses java.lang.Integer

// 商品クラス
class Product {

// フィールド
private var _code:String as Code // 商品コード
private var _name:String as Name // 商品名
private var _price:int as Price // 商品定価

// コンストラクタ

construct() {}

construct(pcode:String, pname:String, pprice:int) {
Code = pcode
Name = pname
Price = pprice
}

construct(pcode:String, pname:String, pprice:String) {
Code = pcode
Name = pname
setPrice(pprice)
}
// メソッド

// 商品定価に値を設定
property set Price(pprice:int) {
if ( pprice < 0 ) {
_price = 0
return
}
_price = pprice
}

function setPrice(pprice:String) {
_price = Integer.parseInt(pprice)
}

}
posted by rururu at 22:24| Comment(0) | TrackBack(0) | Gosu

Gosuの勉強(7)


いつのまにか、Eclipseのプラグインがなくなっていて、
IntelliJ IDEAのプラグインだけになってました。
今回は、開発ツールのインストールとHelloWorldまでを書きます。

■前提

JDK7がインストール済

■IntelliJ IDEA 11 Community Editionのインストール

(1). Webブラウザを起動して「http://www.jetbrains.com/idea/download/index.html
にアクセス。その後に「Download Now」ボタンをクリックします。
(2).「ファイルを保存」ボタンをクリックします。
(3). ダウンロードしたファイルをクリックします。
(4).「Next」ボタンをクリックします。
(5).インストール先を指定して「Next」ボタンをクリックします。
(6).「Next」ボタンをクリックします。
(7). 「Install」ボタンをクリックします。
(8).「Finish」ボタンをクリックします。
(9). デスクトップに作成されたIntelliJ IDEA 11 Community Edition
のショートカットをダブルクリックします。
(10). 何かダイアログが出ます。気にせず「OK」ボタンをクリックします。
(11). メニューバーの「File」−「Settings」を選択します。
(12).「Plugins」ー「Browse・・・」ボタンをクリックします。
(13).「Gosu」を選択して、右クリックメニューの「Download and Install」を
選択します。
(14).「Yes」ボタンをクリックします。
(15).「OK」ボタンをクリックします。
(16). Plugin画面に戻ったら「OK」ボタンをクリックします。
(17).「Restart」ボタンをクリックします。

■Hello World

(1). 再起動したら、メニューバーの「File」−「New Project」を選択します。
(2).「Next」ボタンをクリックします。
(3). Project nameに「Hello」、「Gosu Module」を選択して「Next」ボタンを
クリックします。
(4).「Next」ボタンをクリックします。
(5).「Configure」ボタンをクリックします。
(6). JDK7のインストールフォルダを指定して、「OK」ボタンをクリックします。
(7).「Finish」ボタンをクリックします。
(8).「Project」をクリックします。
(9).「src」を選択し、右クリックメニューの「New」−「Package」を選択します。
(10).「test」を入力し、「OK」ボタンを入力します。
(11).「test」を選択し、右クリックメニューの「New」−「Gosu Program」を選択します。
(12).「Helloword」と入力し、「OK」ボタンをクリックします。
その後に「print(“Hello World”)」を入力します。
(13).「Helloworld.gsp」を選択し、右クリックメニューの
「Run ’Helloworld.gsp」を選択します。
(14).「アクセス許可をする」ボタンをクリックします。(2回)
(15). 実行結果に「Hello World!」と表示されれば成功です。
posted by rururu at 19:29| Comment(0) | TrackBack(0) | Gosu