Sabotenboy's *sigh*
今年こそ本業を変えたいなぁ...^^;




昨日、RPi Model B+にRuby 2.1.2をインストールするところまで終わったので、
今日は東京メトロから提供されているサンプルをRPi上で動かしてみます
(このサンプルへのリンクは開発者登録しないと見えないかも)

1. ホームディレクトリにSample1ディレクトリを作成
     mkdir sample1

2. sample1ディレクトリ内へ移動し、bundleを初期化してGemfileのテンプレ生成
     cd Sample1
     bundle init

3. sample1ディレクトリ内に出来たGemfileをnanoで開いて編集(...というかサンプルのページからコピペ)、
   これでは動かないがそれは後述
     nano Gemfile

4. Gemfileに基づき、Gem(s)をvendor/bundle以下にインストール
    bundle install --path=vendor/bundle

5. sample1ディレクトリ内にnanoでstationList.yamlを作成、内容は取り敢えずサンプルページからコピペ
     nano stationList.yaml

6. Sample1ディレクトリ内にviewsディレクトリ作成
     mkdir views

7. sample1/viewsディレクトリ内にindex.erbとshow.erbをnanoで作成、内容はサンプルページからコピペ
     nano index.erb
     nano show.erb

8. ようやくプログラム本体app.rbをSample1ディレクトリ内にnanoで作成、内容はサンプルページからコピペ
     nano app.rb

9. app.rbを起動し、Web serverでポート4567(追記 デフォルト?、変更はapp.rb内で set :port, xxxx)を監視させる
     bundle exec ruby app.rb

ところがこの段階で、app.rbの1行目でコケる^^;、"httpclient"が無いからload出来ないとのこと...
Rubyとbundleについては、これまで全く触ったことは無いですが、
ここまでの流れでいうと上記3.で指定したGemにこの"httpclient"が入っていなかったはず...、
取り敢えず足してみようか^^;

10. 上記3.で編集したGemfileを再度nanoで開き、一番下に1行追記
     nano Gemfile
     「gem 'httpclient'」を追記(「」は不要^^;)

11. 上記4.のステップを繰り返し、httpclientがvendor/bundle以下にインストールされるのを確認する
     bundle install --path=vendor/bundle

     下ではhttpclient以外は3.でインストール済となっている

12. おもむろにapp.rbを実行
     bundle exec ruby app.rb

     Thin web serverが起動した!(Back to the Future!!!)

13. ここでxstartして(実際はWindow7からXmingで窓を開いた)、Browserからhttp://127.0.0.1:4567/を開く、
検索画面が出る^^

14. stationList.yamlには大手町と東京しか記述されていないので、例題通り大手町でトライ、すると...

     同じ路線が2個ずつあるのは「上り/下り(都内ではどう判別?)」なのだが、
     行先が表示されていない(=東京メトロのサンプルページと表示が異なる)、ん?

     あとWindows機からこのRPiのIPアドレス叩いてもつながらない(?)、
     これはSinatraがデフォルトでlocalhostしか見に行かない設定になっているとのことで、
     app.rbの最初の方(必要なGemをloadした後)に、set :bind, '0.0.0.0'を追記したところ、
     Windows機のFireFoxからきっちり表示されました^^

IP直叩き

hostnameでも(念のため^^;)

 

ここまで全くコードを読まずに(Ruby経験ゼロなので)進めてきましたが、
「行先」が表示されない件は納得がいかないのでこれから調べてみます...
  追記: stationList.yamlに無い駅は表示されない!、自分でポチポチ駅を追加します^^;

取り敢えずここで出来たことは、

- RPiにRuby2.1.2を入れた
- 東京メトロの開発者登録をした(アクセストークンが無いとAPIを使えない?)
- sample1をRPi上で再現した
- Sinatra/Thinで宅内LANにWebserverを公開出来た

駄目だったのは

- httpclientを取り敢えずGemfileに追記したが、これでいいのか?
- stationList.yamlが寂しい^^;、ポチポチ足さねば...
- そもそも、Rubyの使い方を覚えねば...
- サンプルのままなのに、照会結果で「行先」表示が出来てない
     ---> stationList.yamlを埋める(下は荻窪だけ足してみた状態、表示出来てる、当たり前^^;)
    



 



コメント ( 0 ) | Trackback ( )


« チョコエッグ ... (1.5) 東京メ... »
 
コメント
 
コメントはありません。
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。