Sinatra
遅ればせながら OmniAuth を使ってみた。とても便利だったのでメモしておく。 サンプル https://github.com/ymmtmsys/sinatra_omniauth_sample Sinatra, Omniauth, Slim Twitter のアプリ登録では、Access level を Read and write にしておく必要あり。 手…
Sinatra ではルートの設定に正規表現を使うことができる。例えば以下のような感じで。 get %r{/hello/([\w]+)} do |c| "Hello, #{c}!" end http://www.sinatrarb.com/intro.html 問題 上記の例は公式のページに載っているのだけれど、これをそのまま使おうと…
Pusher を使ってチャットアプリを作った。コレ → http://chatto.heroku.com/。バックエンドは相変わらず Sinatra。Twitter のアカウントを使ってチャットができる。チャットの内容をツイートしたりする機能はなし。 Pusher 周りは Pusher のサイトに Demo と…
「たてよみったー」を作った。 特徴 縦読み文章が簡単に作成できちゃう 使い方 テキストボックスに縦読みさせたい文字を入れます おわり お役立ち指数 0 構成 Ruby Sinatra JQuery Twitter Streaming API
このまえ Sinatra でファイルをダウンロードさせる方法を書いた。では逆、アップロードはどうだろう?試したところ、次のようになった。 require 'rubygems' require 'sinatra' require 'haml' get '/' do haml :index end # アップロードされたファイルを返…
attachment を使うと簡単にファイルをダウンロードさせることができる。例えば、CSVファイルをダウンロードする場合は次のように書ける。 require 'rubygems' require 'sinatra' get '/test.csv' do content_type 'text/csv' attachment 'test.csv' <<-EOS f…
Sinatra を使うようになって Haml も使うようになった。Haml を使うようになって Sass も使うようになった。Sass は CSS を記述するための DSL。今まで CSS を書くときは CSS を直接編集してたけど、Sass を知ってからは直接編集しようなんて思わなくなって…
先日、hashtagle という、Twitter のハッシュタグを検索するサービスを公開したという記事を書いた。そこでは書かなかった、公開するまでに起こったこと、気付いたことに関して書き留めておく。 構成 Heroku の上に Sinatra で構築。 ハッシュタグのソースは…
Twitter のハッシュタグを検索するサービスを公開しました。サイトはこちら hashtagle。 hashtagleって? ハッシュタグの検索ができる。 日本語のツイートに含まれるハッシュタグが検索対象になる。 テキストボックスに入力された文字に近いハッシュタグを表…
3月23日に Sinatra の 1.0 がリリースされた。 個人で作る小さなサイトにはちょうどいいフレームワーク(DSL?)なのでよく使わせてもらっている。なので、このニュースを聞いたときにちょっと嬉しくかった。おめでと〜。 1.0 では Tilt っていうのに対応した…
先日 Sinatra を CGI で動かそうとしてエラー*1が発生したりして手こずっていた。が、やっとこさ動くようになったのでちょいまとめ。 やったこと ディレクトリ構成 ロジックやテンプレ部分は DocumentRoot 下には置かない方針で。 /home/***/www/ # => Docum…
最悪だ。 Sinatra を CGI で動かそうとして、原因不明のエラーが発生し、原因を特定するまでに半日くらい要した。 ソース #! /usr/local/bin/ruby require 'rubygems' require 'sinatra' get '/' do 'Hello world!!' end 実行方法 % ruby sinatra.rb エラー…
久しぶりに Sinatra をさわった。テンプレートには Haml を使った。 Haml を書いていて、外部ファイル (別のHamlファイル) の読み込みはどうやるんだろうと思った。 検索してみたが、これだと思うような記事は見つからなかった。 じゃあ、ということで適当に…
ロガーを使おうと思い use Rack::CommonLogger という行を追加すると、アクセスログが 2 つ出力された。Sinatra 内で Rack::CommonLogger が use されているようだ。 use Rack::CommonLogger, Logger.new('myapp.log') こんな風にすると myapp.log というフ…
前回は DB の検索しか行わなかったので、登録、更新、削除機能を追加した。 コントローラ require 'rubygems' require 'sinatra' require 'sequel' Sequel::Model.plugin(:schema) Sequel.connect('sqlite://myapp.db') class Items < Sequel::Model unless …
ライブラリの選択 Sinatra は MVC のモデルに関してのサポートはないので、DB を使ったアプリケーションを作成する場合は既存のO/Rマッピングライブラリを組み込むのがよさそう。サポートされていないことのメリットって、DBを使用しない場合は組み込まなく…
テンプレートに変数を埋め込む方法を調べてみた。 バージョン (2012/09/26 追記) Hamlのバージョンは 2.2.2 を使っています。 コントローラ require 'rubygems' require 'sinatra' get '/:id' do @id = params[:id] @items = ['red', 'green', 'yellow'] ham…
Haml というのを Sinatra を利用するようになってから始めて知った。Rails でも使えるんだね、知らなかった。考えもなしに erb を使ってた。 今回なぜ使おうかと思ったかというと、Sinatra の公式ページのテンプレートに関しての説明でまず始めに Haml が書…
Sinatra でアプリを開発をしているときにソースを更新する度に アプリ終了→アプリ起動 を行っていて面倒だった。それを解決するのが shotgun。shotgun はソースを更新すると自動的に再読込みしてくれる。これでわざわざ手動でアプリを再起動させる手間がなく…