用Ruby编写博客应用

52
Ruby编写博客应用 Powered by Rabbit 0.9.0 Ruby 编写博客应用 吴江

description

2010年10月23日shlug聚会上现场演示

Transcript of 用Ruby编写博客应用

Page 1: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

用Ruby编写博客应用

吴江

Page 2: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Ruby

1/51

Page 3: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

作者

2/51

Page 4: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

基础工具

3/51

Page 5: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

irbri

rdoc4/51

Page 6: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

演示5/51

Page 7: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

基本类型

i = 1 # Integerb = true # Booleanf = 1.0/3 # Floatn = nil # Null

str = "a string" # Stringsym = :"a string" # Symbol

6/51

Page 8: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

面向对象

i.class # => Integerb.class # => Booleanf.class # => Floatn.class # => NilClass

str.class # => Stringsym.class # => Symbol

7/51

Page 9: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

符号

str1 = "a string"str2 = "a string"str1 == str2 # truestr1.object_id == str2.object_id # false

sym1 = :"a string"sym2 = :"a string"sym1 == sym2 # truesym1.object_id == sym2.object_id # true

8/51

Page 10: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

数组操作

a = [1, 2, 3] a << 4 # a = [1, 2, 3, 4] a[0] # => 1 a[1..3] # => [2, 3, 4] a[1] = "a" # a = [1, "a", 3, 4] a[5] = [1,2] # a = [1, "a", 3, 4, nil, [1,2]]

9/51

Page 11: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

哈希表操作

a = { "a" => 1 } a["a"] # => 1 a["b"] # => nil a["b"] = 2 # a = { "a" => 1, "b" => 2}

10/51

Page 12: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

写博客11/51

Page 13: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

服务商12/51

Page 14: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

MSNSpace挂了

13/51

Page 15: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Wordpress

14/51

Page 16: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

满大街都是

15/51

Page 17: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

没脸和别人打招呼

16/51

Page 18: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

将要实现的特点

17/51

Page 19: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

不用DB鼓掌!!!

18/51

Page 20: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

没有SQL注入

19/51

Page 21: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

不用担心后台密码被盗

20/51

Page 22: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

文件格式

# 文件名: 2010-10-10-a-lucky-day.txttitle: "A Lucky Day"date: 10/10/2010

# 今天是我的幸运日

早上在地铁门将要关上的那一刻,我冲进了车厢,于是约会没有迟到...

中午提前了一点去港丽,居然只排了42分钟...

晚上又赶上了末班车...

到家数了数,钱包里面正好有42块钱...

21/51

Page 23: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

YAML22/51

Page 24: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

JSON兼容

23/51

Page 25: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Markdown

24/51

Page 26: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Markdown 不能传值

25/51

Page 27: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Haml模版

26/51

Page 28: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

SinatraDSL

27/51

Page 29: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

演示28/51

Page 30: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

安装Ruby

29/51

Page 31: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

RVM30/51

Page 32: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

安装Ruby库

31/51

Page 33: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Rubygems:包管理工具

32/51

Page 34: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Bundler33/51

Page 35: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

gem install

bundler34/51

Page 36: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Gemfile

source "http://rubygems.org"gem 'haml' # HAML模版gem 'rdiscount' # 渲染Markdowngem 'sinatra' # Sinatragem 'thin' # 应用服务器gem 'shotgun' # 负责重启服务器

35/51

Page 37: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

bundle install

36/51

Page 38: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Hello, world

get '/' do "Hello, world!"end

37/51

Page 39: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

get '/'38/51

Page 40: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

列出所有日志

39/51

Page 41: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

外部shell命令

`ls *.txt``find -name "*.txt"`

40/51

Page 42: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

使用Dir类

Dir["*.txt"]Dir["**/*.txt"]

41/51

Page 43: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

读取文件内容

42/51

Page 44: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

File.read

43/51

Page 45: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

/:year/:month/:day/:title列出文章内容

44/51

Page 46: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

评论45/51

Page 47: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Disqus

46/51

Page 48: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

部署47/51

Page 49: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Heroku

48/51

Page 50: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

Q & A49/51

Page 51: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

本项目地址

http://github.com/nouse/text-blog

50/51

Page 52: 用Ruby编写博客应用

用Ruby编写博客应用 Powered by Rabbit 0.9.0

谢谢!51/51