moosan63の日記、技術メモ

日記とか、技術メモとか

sinatraを使ってwebアプリ作成

かずー氏アイコンジェネレーター
http://kazooshi.moosan.org/
身内ネタ的なwebアプリをsinatraを使って開発したのでそのメモなど。

sinatrarailsより圧倒的に簡単にwebアプリを作成できた。
何より圧倒的にrailsより楽だなと感じたのはデプロイ作業だった。
sinatraの基礎的な書き方とかはいろんな人が何かしら書いてると思うので、躓いたところとかだけをピックアップ。

  • public/以下のファイルへのアクセス

viewからpublic/以下に置いたファイルへのアクセスどうするのかなーと思ったら
public/images/hoge.pngとかならば

<img src="images/hoge.png">

とかで普通にアクセスできた・・・。

  • セッションの使い方
#app.rb
#== sinatra session                                                                                                                                                                              
enable :sessions
configure do
    use Rack::Session::Cookie,
    #:key => 'rack.session',  
    #:domain => 'foo.com',  
    #:path => '/', 
    :expire_after => 3600,
    :secret => 'change'
end

こんな感じで書いておくと
session[:hoge]が使用出来るので

session[:hoge] = "hoge"

という感じでやるとセッションに情報を入れられる。

rspecでテスト書いてていちいちコマンド打つのめんどくさい(というかコマンド忘れちゃう・・・)ので、Rakefileを書いてみたのだけれど、イマイチうまくうごかなくて結局どこかのブログにあったのを使わせてもらうと動いた

 coding: utf-8
require "rspec/core/rake_task"

desc "run spec"
task :default => [:spec]

RSpec::Core::RakeTask.new(:spec) do |spec|
  # - (Object) pattern
  # default:   'spec/**/*_spec.rb'

  # - (Object) rspec_opts=(opts)
  # default : nil
  spec.pattern = 'spec/*_spec.rb'
  spec.rspec_opts = %w(-c -fs)
end