Sinatra

Sinatra, OmniAuth メモ

遅ればせながら OmniAuth を使ってみた。とても便利だったのでメモしておく。 サンプル https://github.com/ymmtmsys/sinatra_omniauth_sample Sinatra, Omniauth, Slim Twitter のアプリ登録では、Access level を Read and write にしておく必要あり。 手…

Sinatra で正規表現を使ったルートを使う場合に注意すること

Sinatra ではルートの設定に正規表現を使うことができる。例えば以下のような感じで。 get %r{/hello/([\w]+)} do |c| "Hello, #{c}!" end http://www.sinatrarb.com/intro.html 問題 上記の例は公式のページに載っているのだけれど、これをそのまま使おうと…

Chat on Pusher

Pusher を使ってチャットアプリを作った。コレ → http://chatto.heroku.com/。バックエンドは相変わらず Sinatra。Twitter のアカウントを使ってチャットができる。チャットの内容をツイートしたりする機能はなし。 Pusher 周りは Pusher のサイトに Demo と…

たてよみったー

「たてよみったー」を作った。 特徴 縦読み文章が簡単に作成できちゃう 使い方 テキストボックスに縦読みさせたい文字を入れます おわり お役立ち指数 0 構成 Ruby Sinatra JQuery Twitter Streaming API

Sinatraでファイルをアップロードさせる方法

このまえ Sinatra でファイルをダウンロードさせる方法を書いた。では逆、アップロードはどうだろう?試したところ、次のようになった。 require 'rubygems' require 'sinatra' require 'haml' get '/' do haml :index end # アップロードされたファイルを返…

Sinatraでファイルをダウンロードさせる方法

attachment を使うと簡単にファイルをダウンロードさせることができる。例えば、CSVファイルをダウンロードする場合は次のように書ける。 require 'rubygems' require 'sinatra' get '/test.csv' do content_type 'text/csv' attachment 'test.csv' <<-EOS f…

Sass to CSS.

Sinatra を使うようになって Haml も使うようになった。Haml を使うようになって Sass も使うようになった。Sass は CSS を記述するための DSL。今まで CSS を書くときは CSS を直接編集してたけど、Sass を知ってからは直接編集しようなんて思わなくなって…

hashtagleメモ

先日、hashtagle という、Twitter のハッシュタグを検索するサービスを公開したという記事を書いた。そこでは書かなかった、公開するまでに起こったこと、気付いたことに関して書き留めておく。 構成 Heroku の上に Sinatra で構築。 ハッシュタグのソースは…

hashtagle 公開

Twitter のハッシュタグを検索するサービスを公開しました。サイトはこちら hashtagle。 hashtagleって? ハッシュタグの検索ができる。 日本語のツイートに含まれるハッシュタグが検索対象になる。 テキストボックスに入力された文字に近いハッシュタグを表…

Sinatra 1.0 Released

3月23日に Sinatra の 1.0 がリリースされた。 個人で作る小さなサイトにはちょうどいいフレームワーク(DSL?)なのでよく使わせてもらっている。なので、このニュースを聞いたときにちょっと嬉しくかった。おめでと〜。 1.0 では Tilt っていうのに対応した…

Sinatra, CGI

先日 Sinatra を CGI で動かそうとしてエラー*1が発生したりして手こずっていた。が、やっとこさ動くようになったのでちょいまとめ。 やったこと ディレクトリ構成 ロジックやテンプレ部分は DocumentRoot 下には置かない方針で。 /home/***/www/ # => Docum…

don't require me

最悪だ。 Sinatra を CGI で動かそうとして、原因不明のエラーが発生し、原因を特定するまでに半日くらい要した。 ソース #! /usr/local/bin/ruby require 'rubygems' require 'sinatra' get '/' do 'Hello world!!' end 実行方法 % ruby sinatra.rb エラー…

Include haml

久しぶりに Sinatra をさわった。テンプレートには Haml を使った。 Haml を書いていて、外部ファイル (別のHamlファイル) の読み込みはどうやるんだろうと思った。 検索してみたが、これだと思うような記事は見つからなかった。 じゃあ、ということで適当に…

Sinatra で Logger

ロガーを使おうと思い use Rack::CommonLogger という行を追加すると、アクセスログが 2 つ出力された。Sinatra 内で Rack::CommonLogger が use されているようだ。 use Rack::CommonLogger, Logger.new('myapp.log') こんな風にすると myapp.log というフ…

続 Sinatra の MVC の M に Sequel を使ってみる

前回は DB の検索しか行わなかったので、登録、更新、削除機能を追加した。 コントローラ require 'rubygems' require 'sinatra' require 'sequel' Sequel::Model.plugin(:schema) Sequel.connect('sqlite://myapp.db') class Items < Sequel::Model unless …

Sinatra の MVC の M に Sequel を使ってみる

ライブラリの選択 Sinatra は MVC のモデルに関してのサポートはないので、DB を使ったアプリケーションを作成する場合は既存のO/Rマッピングライブラリを組み込むのがよさそう。サポートされていないことのメリットって、DBを使用しない場合は組み込まなく…

Sinatra を使って Haml で作成したテンプレートに変数を埋め込む

テンプレートに変数を埋め込む方法を調べてみた。 バージョン (2012/09/26 追記) Hamlのバージョンは 2.2.2 を使っています。 コントローラ require 'rubygems' require 'sinatra' get '/:id' do @id = params[:id] @items = ['red', 'green', 'yellow'] ham…

Sinatra の View に Haml を使ってみる

Haml というのを Sinatra を利用するようになってから始めて知った。Rails でも使えるんだね、知らなかった。考えもなしに erb を使ってた。 今回なぜ使おうかと思ったかというと、Sinatra の公式ページのテンプレートに関しての説明でまず始めに Haml が書…

shotgunで自動再読み込み

Sinatra でアプリを開発をしているときにソースを更新する度に アプリ終了→アプリ起動 を行っていて面倒だった。それを解決するのが shotgun。shotgun はソースを更新すると自動的に再読込みしてくれる。これでわざわざ手動でアプリを再起動させる手間がなく…