require 'rubygems'
require 'sequel'
require 'logger'
# on memory DB
DB = Sequel.connect('sqlite:///', {:logger => Logger.new('test.log')})
DB.create_table :users do
primary_key :id
string :name
string :profile
datetime :created_at, :default => Time.now
end
こんな感じで出来て大変便利!
これまたsinatraというよりもrackの、なんだけども
参考:Sinatra と OAuth を使って Twitter のタイムラインを取得してみた – まちゅダイアリー(2009-08-18)
こちらにあった例を試すと
use :sessions, true # 0.9.4 & Mongrelで動かず
enable :sessions # 試してない; 動くかも
# でもこんな感じでやらないと改ざんされて涙目になるかも
use Rack::Session::Cookie, :secret => Digest::SHA1.hexdigest(rand.to_s)
こんな感じでした
デフォルトで使えないというのにちょっとびっくり
URI.escape(url)でやっていたのですが、色々と問題が浮上してきたので調べたところ、
Ruby On Rails ピチカート街道 – rubyでURLエンコード -
CGI.escapeを使うのが良いようです
URI.escapeはデフォルトで&をエンコードしてくれないのが今回の問題の原因でした
※現在はjpegにしか対応してないようです
最初はRMagick(ImageMagickのrubyライブラリ)を使おうと思ったけど、
高速にサムネイル画像を生成するRubyライブラリ、Speedpetalを公開しました。 – kaeruspoon
こちらの方が手軽そうだったので入れてみることに
1.libjpegをインストール
sudo aptitude install libjpeg-dev
2.speedpetalのインストール
sudo gem sources -a http://gems.github.com
sudo gem install tsukasaoishi-speedpetal
使い方は
require ‘rubygems’
require ‘speedpetal’
Speedpetal::resize(100, “in.jpg”, “out.jpg”)
Speedpetal::resize_square(100, “in.jpg”, “out_square.jpg”)
以上です
Sinatraというか、Rackのparamsを用いたアップロードの仕方ですね
rubyではいつもファイルのアップロードの仕方を忘れてしまうのでメモメモ
post '/upload' do
if params[:file]
new_filename = DateTime.now.strftime('%s') + File.extname(params[:file][:filename])
save_file = './public/files/' + new_filename
File.open(save_file, 'wb'){ |f| f.write(params[:file][:tempfile].read) }
@mes = 'upload completed!'
end
end
普通に:tempfileを移動するだけでもいい気がする…
Sinatra簡単でいいですね
久々のプログラミング楽しい
@iMRC 文化祭向けには(出来れば面白い)画像のアップローダーでも作ろうかと思ってます…皆写真撮るよね?