root/docs/cho45/20080622-rubykaigi-rejectreject-future/lt.rb

Revision 14427, 3.0 kB (checked in by cho45, 7 months ago)

RubyKaigi?

  • Property svn:executable set to *
Line 
1#!/usr/bin/env ruby
2
3require "rubygems"
4require "hparser"
5require "pp"
6
7parsed   = HParser::Parser.new.parse(File.read(__FILE__)[/__END__\n([\s\S]+)/, 1])
8
9sections = parsed.inject([[]]) do |r,element|
10        element.instance_variable_set(:@level, element.level + 1) if element.kind_of?(HParser::Block::Head)
11        if element.kind_of?(HParser::Block::Head) && element.level == 2
12                r << [element]
13        else
14                r.last << element
15        end
16        r
17end
18
19require "erb"
20
21
22ERB.new(<<'EOS', $SAFE, "<>").run(binding)
23<% if ENV['REQUEST_METHOD'] %>
24Content-Type: text/html
25
26<% end %>
27<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
28<html xmlns="http://www.w3.org/1999/xhtml">
29        <head>
30                <title></title>
31
32                <link rel="stylesheet" type="text/css" href="lt.css" media="screen,tv"/>
33                <meta name="robots" content="noindex,nofollow"/>
34
35                <script type="text/javascript" src="lib/jquery-1.2.6.min.js"></script>
36                <script type="text/javascript" src="lib/jquery.blockUI.js"></script>
37                <script type="text/javascript" src="lib/keystring.js"></script>
38                <script type="text/javascript" src="lib/lt.js"></script>
39        </head>
40        <body>
41                <div id="whole">
42                        <h1 id="top"><a href="/"></a></h1>
43
44                        <div id="content">
45                        <% sections.each do |elements| next if elements.all? {|i| i.kind_of? HParser::Block::Empty } %>
46                                <div class="section">
47                                        <%= elements.map {|i| i.to_html }.join("\n") %>
48                                </div>
49
50                        <% end %>
51                        </div>
52
53                        <div id="footer">
54                                <address>&copy; 2008 cho45@lowreal.net</address>
55                        </div>
56                </div>
57        </body>
58</html>
59EOS
60
61__END__
62
63* __REJECT_REJECT__
64
65- cho45 / http://www.lowreal.net/
66
67
68*
69
70><div class="title-leaf"><
713:30秒間 ゆっくりしていってね!
72></div><
73
74* Resh
75
76- RDoc 用のテンプレート
77- デフォルトのテンプレートはフレームついてて検索しにくい
78- 割と頑張って RDoc に動的パッチ
79- CPAN ちっくな配色
80
81* Resh
82
83-http://coderepos.org/share/wiki/Resh
84-http://coderepos.org/share/wiki/Resh
85-http://coderepos.org/share/wiki/Resh
86-http://coderepos.org/share/wiki/Resh
87
88ぜひ使ってください!
89
90* Resh
91
92終了
93
94* require "future"
95
96お先まっくら……
97
98未来の見通しが欲しいです……
99
100
101* require "future"
102
103ノンノンノンノン
104
105
106* require "future"
107
108そんなどうでもいい話ではなくて
109
110
111* require "future"
112
113>||
114gem install future
115||<
116
117僕も未来を gem でインストールしたい
118
119
120* require "future"
121
122いやそんなどうでもいい話ではなくて
123
124
125* require "future"
126
127- Future をちょっと実装してみたもの
128- Future -> 未実行のものの代替オブジェクト
129- see wikipedia
130
131>||
132# 即座にかえる f はまだ計算されていない
133f = Kernel.async.sleep(2)
134
135# 計算結果が即座に必要になればブロックする
136p f
137||<
138
139* require "future"
140
141デモ
142
143* require "future"
144
145何かかっこくないですか!
146
147Fiber 版も実装して、制御できるようにもしたい
148
149
150* require "ruby"
151
152以上です。
153
154RubyKaigi 本当にありがとうございました!
155
156
157
Note: See TracBrowser for help on using the browser.