[
ruby]
[
rails]
[
plugin]
[
graph]
[
ruby_library]
Sparklinesは、rubyで、グラフを書くライブラリです。
railsで使えるgenelatorが提供されているので試しに使ってみました。
RMagickに依存しているので、先にgem等を使ってインストールしておく必要があります。
sudo gem install RMagick
sudo gem install sparklines
railsのアプリケーションのルートディレクトリに移動し、プラグインをインストールします。
さらに ./script/generate を使って、コントローラーを作成します。
./script/plugin install http://topfunky.net/svn/plugins/sparklines
# Generate the SparklinesController and functional test
./script/generate sparklines
これで、とりあえずrailsから利用可能な状態になります。
続きを読む "rubyでグラフ!(with Sparklines)" »
[
ruby]
[
gruff]
[
graph]
[
ruby_library]
rubyでグラフを描こう企画第二段。
今回はGruffを使用。
まずはgemを使ってインストール。
RMagickに依存してるので、それのインストールも忘れずに。
gem install gruff
参考サイト
続きを読む "rubyでグラフ!(with Gruff)" »
[
ruby]
[
gruff]
[
graph]
[
ruby_library]
rubyでグラフ!(with Gruff)の続き。
色を変えてみよう。と言うことでGruffの中身を見てみる。
def theme_37signals
@green = '#339933'
@purple = '#cc99cc'
@blue = '#336699'
@yellow = '#FFF804'
@red = '#ff0000'
@orange = '#cf5910'
@black = 'black'
@colors = [@yellow, @blue, @green, @red, @purple, @orange, @black]
self.theme = {
:colors => @colors,
:marker_color => 'black',
:font_color => 'black',
:background_colors => ['#d1edf5', 'white']
}
end
ここんな感じで自由に設定できるみたい。
続きを読む "rubyでグラフ!(with Gruff)(2)" »
[
rails]
[
migration]
migration を用いて、mysql の timestamp 型のカラムを含むテーブルを作ろうと下記のようなコードを書きました。
class MigTests < ActiveRecord::Migration
def self.up
create_table :migtests do |t|
t.column :last_update, :timestamp
end
end
def self.down
drop_table :migtests
end
end
で、実行してみるがここで問題発生。
作成されるテーブルの last_update カラムがDATETIME型になる。
で、少し調べてみると、
activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb
にある、native_database_types というメソッド内に定義されたHashで、型名をシンボルからデータベースのカラムタイプ名に変換しているようです。
こんな感じ。
{
:timestamp => { :name => "datetime" },
}
なんであえて timestamp 型を使ってないんだろう・・・
なにか事情があるのだろうか。
続きを読む "migration における mysql の timestamp型" »
[
ruby]
[
rails]
[
rails_plugin]
[
plugin]
[
ActiveRecord]
acts_as_paranoid
このプラグインを導入すると、削除する際に、実際に行を消すのではなく、その行の deleted_at カラムに、削除の時間が記録されるようになります。
検索時にも、findで生成されるSQLのWHERE節に、以下のような条件が自動的に付加されます。
(users.deleted_at IS NULL OR users.deleted_at > '2007-01-21 12:27:07')
この条件を見ればわかりますが、削除予約といった使い方もできます。
フラグを条件に加えるのって、ついつい忘れてしまいがちなので便利です。
find_with_deleted メソッドで削除されたものも検索対象になります。
続きを読む "ActiveRecord 削除フラグで削除するプラグイン" »
[
ruby]
[
rails]
[
config]
[
fastcgi]
最近は lighttpd + fastcgi が流行のようですが、やっぱり apache + fastcgi を使わざるを得ない人向け。
fastcgiを導入するとき、毎回同じ事に引っかかってる気がするのでまとめておきます。
1. mod_fastcgiと、The Development Kit のインストール
公式サイトから入手できます。
http://www.fastcgi.com/
2. apache の設定を編集
参考例。バーチャルホストの設定は各自の環境に合わせて行う。
LoadModule fastcgi_module libexec/httpd/mod_fastcgi.so
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
</IfModule>
<VirtualHost *:80>
ServerName rails
DocumentRoot /path/to/application/public/
ErrorLog /path/to/application/log/apache.log
<Directory /path/to/application/public/>
Options ExecCGI FollowSymLinks
AddHandler fastcgi-script .fcgi
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
続きを読む "rails で apache + fastcgi" »
[
ruby]
[
amazon]
amazon-ecs-0.5.0
AmazonのWEBサービスを利用するためのrubyのライブラリ。
gemで提供されているので入れてみる。
gem install amazon-ecs
設定はこんな感じ。とりあえずASINコードで検索してみる。
Amazon::Ecs.options = {:aWS_access_key_id => ["your developer token"], :AssociateTag => "associate_id", :country => :jp}
res = Amazon::Ecs.item_lookup("4088762096")
以下READMEから抜粋。
Amazon::Ecs.options = {:aWS_access_key_id => [your developer token]}
res = Amazon::Ecs.item_search('ruby', {:response_group => 'Medium', :sort => 'salesrank'})
res.is_valid_request?
res.has_error?
res.error
res.total_pages
res.total_results
res.item_page
res.items.each do |item|
item.get('asin')
item.get('itemattributes/title')
atts = item.get('itemattributes')
atts.get('title')
atts.get('author')
atts.get_array('author')
item.get_hash('smallimage')
reviews = item/'editorialreview'
reviews.each do |review|
Amazon::Element.get_hash(review)
Amazon::Element.get(review, 'source')
Amazon::Element.get(review, 'content')
end
end
参考URL
続きを読む "ruby で amazon WEBサービス" »
[
rails]
[
capistrano]
[
deploy]
システムメンテナンスのため、一時サービスを停止したいとき、Capistranoで簡単にメンテナンス画面を表示させる事ができます。
まずは、.htaccessを編集して、
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /system/maintenance.html [L]
1 : %{DOCUMENT_ROOT}/system/maintenance.html が存在し、
2 : 且つ、自分自身(実行ファイル自身)が maintenance.html でなければ、
3 : URLを/system/maintenance.html に書き換える。
という設定をします。(※番号は設定ファイルの行に対応)
rake remote:disable_web \
UNTIL="14:00 MST" \
REASON="a database upgrade"
上記のコマンドを実行すると、本番サーバー上の、CAPROOT/current/public/system (CAPROOT/shared/system へのシンボリックリンク) に、maintenance.html というファイルが生成されます。これで完了。
続きを読む "Capistrano で簡単にメンテナンス画面表示" »
[
capistrano]
[
rails]
[
deploy]
Capistrano のタスクはフックできます。
hoge というタスクがあれば、その前後で、before_hoge と after_hoge が呼ばれます。
それを検証されているエントリ。
http://d.hatena.ne.jp/Rommy/20061021/1161440420
続きを読む "Capistrano のタスクをフックする" »
[
ruby]
[
senna]
[
mecab]
[
全文検索]
Sennaをインストールしてみた。
インストールの流れ
- MeCab 0.81以降のインストール
- Sennaのインストール
- ruby バインディングのインストール
MeCabのインストール
http://mecab.sourceforge.net/#download
ここから、mecab本体のソースコードと、辞書をダウンロード。
デフォルトでEUCが使われるので、configureの際に以下のようにオプションを設定する。
./configure --with-charset=utf8
辞書のインストールの際も同様。
続きを読む "Sennaとrubyで全文検索(インストール編)" »