mysql ruby erb mod ruby cgi
Download
Skip this Video
Download Presentation
MySQL/Ruby, ERB, mod_ruby を使った CGI の実例

Loading in 2 Seconds...

play fullscreen
1 / 18

MySQL/Ruby, ERB, mod_ruby を使った CGI の実例 - PowerPoint PPT Presentation


  • 100 Views
  • Uploaded on

MySQL/Ruby, ERB, mod_ruby を使った CGI の実例. Kazuhiro Yoshida [email protected] KANSAI OPEN SOURCE+FREEWARE 2003. Ruby 活用事例. 実務で使えるツールを Ruby で作成 Web ブラウザや携帯電話からアクセス. わははネットの携帯サイト. 妊婦さんから小学校入学前までのお子さんを持つ親を対象に 地域別のイベント情報・子育て情報を配信 メールで URL を返して携帯端末で開いてもらう. (株)岩佐佛喜堂のツール. 勤務表 ( 出欠表 ) 在庫・販売管理

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' MySQL/Ruby, ERB, mod_ruby を使った CGI の実例' - gannon-winters


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
mysql ruby erb mod ruby cgi

MySQL/Ruby, ERB, mod_rubyを使ったCGIの実例

Kazuhiro Yoshida

[email protected]

KANSAI OPEN SOURCE+FREEWARE 2003

slide2
Ruby活用事例
  • 実務で使えるツールをRubyで作成
  • Webブラウザや携帯電話からアクセス
slide3
わははネットの携帯サイト
  • 妊婦さんから小学校入学前までのお子さんを持つ親を対象に
  • 地域別のイベント情報・子育て情報を配信
  • メールでURLを返して携帯端末で開いてもらう
slide4
(株)岩佐佛喜堂のツール
  • 勤務表(出欠表)
  • 在庫・販売管理
  • 配達予定表
slide5
使用するライブラリ
  • MySQL/Ruby
  • ERB
  • mod_ruby
mysql ruby
MySQL/Ruby
  • by とみたさん
  • Ruby/MySQL
  • (Ruby/DBI)
  • デフォルトcharsetをShift JISに
  • メッセージカタログもShift JISで用意
slide7
ERB
  • eRuby 前田さん↓使いやすさ
  • ERB 咳さん↓速度
  • erbscanmoonwolfさん
mod ruby
mod_ruby
  • 仕組み apache/ruby-run.rb
  • 結果として速度とメモリに影響
  • グローバル変数の奇妙な振る舞い [実例]
slide9

apache/ruby-run.rb:

Apache.chdir_file(filename)

load(filename, true)

slide10

app1.rbx:

$gv = 0

def inc_gv

$gv += 1

end

5.times{inc_gv}

print $gv

slide11

app2.rbx:

require \'./lib2.rb\'

5.times{inc_gv}

print gv

lib2.rb:

$gv = 0

def inc_gv

$gv += 1

end

def gv

$gv

end

slide12

app3.rbx:

require \'./lib3.rb\'

foo = Foo.new

5.times{foo.inc_iv}

print foo.iv

lib3.rb:

class Foo

def initialize

@iv = 0

end

def inc_iv

@iv += 1

end

attr :iv

end

slide13
半角カナ
  • 上手に付き合えば問題ない
  • どこで化ける?→ nkfライブラリとの相性 [実例]
slide14

require \'erb\'

class Foo

include ERB::Util

include ERB::DefMethod

dir = File.dirname( __FILE__ )

def_erb_method( :output,

File.join(dir, \'foo.erb\') )

end

slide15

require \'cgi\'

cgi = CGI.new

header = {

\'type\' => \'text/html\',

# \'charset\' => \'shift_jis\',

\'Cache-Control\' => \'no-cache\',

}

foo = Foo.new

cgi.out( header ){

foo.output

}

slide16

cgi.rb:

def out(options = "text/html")

case options["charset"]

when /shift_jis/ni

content = NKF::nkf(\'-s\', content)

slide17
絵文字
  • 単純な置換で済む
  • 各キャリアに対応 → HTTP_USER_AGENT
  • cgi.user_agent
  • httpd.conf: RewriteConf %{HTTP_USER_AGENT} (J-PHONE|UP\.Browser)
slide18
まとめ
  • Rubyで実務アプリを作れる
  • Rubyで携帯サイトを作れる
  • Ruby以前に文字コード, MySQL, apacheについて調べることが大切
  • 効率は後から考えればよい
ad