脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

Sinatra

sinatraでhashデータをJSONとして返す方法

方法 require 'json' return #{hash}.to_json 例 require 'sinatra' require 'json' get '/top' do hash = { "key1" => 1, "key2" => 2, "key3" => 3, } return hash.to_json end

sinatraをvhost上でpassengerを使ってサブディレクトリとして起動する場合

ディレクトリ構造 ①passenger.conf ・ ・ PassengerEnabled off <VirtualHost ${ipアドレス}:80> DocumentRoot ${vhostのドキュメントルート} ServerName ${vhost名} <Directory "${vhostのドキュメントルート}/${vhost名}/"> PassengerAppRoot ${sinatraのアプリのルート} RackEnv production RackBaseURI /${sinatraアプリのpublicディレクトリの</directory></virtualhost>…

sinatra + Apache + Passengerでサブディレクトリとしてアプリリリースする方法

sinatraアプリをApache + Passengerを使ってリリースする手順 Apacheのinstall まずはWebサーバとしてApacheをインストールします yum list installed | grep httpd yum install httpd httpd -v #Server version: Apache/2.2.15 (Unix) #Server built: Aug 2…

Sinatraでcssやjsファイルを読み込む方法

問題 sinatraで普通に外部ファイルにcssやjavaScriptを書いてそれを読み込もうとしたんだけど404エラーになって読み込めない <link rel="stylesheet" href="./test.css" /> <script type="text/jsx;harmony=true" src="./test.js"></script> ↓ 192.168.33.1 - - [05/Aug/2015:05:19:39 +0000] "GET /test.css HTTP/1.1" 404 38 0.001 192.168.33.1 - - [05/Aug/2015:05:1</link>…

[Ruby] sinatraでそれぞれのセッションに別々のexpiration timeを設定して、KVSみたく任意の時間で自動に消えるようにしたい

sinatraでセッションのデータにexpiration dateを持たせて、ある一定時間たったら自動で消えるっていう処理を書きたかった。 Session すごいはまって結構がんばったけど、思い通りの実装は出来なかった。。 sinatraのsessionにも、expiration dateはある get…

[html/css] httpのフォームでDELETEやPUTのメソッドを送る方法

sinatraでAPIを作っていてはまったのだが、現在のブラウザはGETとPOSTの通信方式にしか対応していないらしい。 失敗例 <form method="delete" action="/"> <input type="text" name="textArea"> <input type="submit" value="delete!!"> </form> ↓ 192.168.33.1 - - [22/Jul/2015:03:08:16 +0000] "GET /?textArea= HTTP/1.1" 200 198 0.0008 こうやってdeleteを指定したにも関わ…

[Ruby] Sinatra超入門

Sinatraで、入力した値を表示させるだけの超簡単なアプリをつくる方法を手順化して説明します。 1.環境作成 yum install openssl-devel httpd gem install sinatra gem install thin まずはApacheの設定やsinatraのインストールをします。 sinatraはそれだ…

[Ruby] sinatraがポート4567を指定しても繋がらない

ちょっとはまったのでメモに・・・ Sinatra: README (Japanese) このsinatraの日本語サイト通りに gem install sinatraして、 gem install thinして、 myapp.rbを作って、 # myapp.rb require 'sinatra' get '/' do 'Hello world!' end 起動して、 $ ruby my…

[著作権] DockerやChefやGitなどのロゴをプレゼンで使うときの注意点(trademark policy)

勉強会やカンファレンスなどでプレゼンを作る際に他社のロゴをppt等に載せることがあるかと思いますが、大抵はそれぞれの会社がtrademark policyという形で使用方法を決めています。各会社毎に注意点を簡単にまとめます。全てをここには載せきれませんので、…