<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>里克的自习室 &#187; blog</title>
	<atom:link href="http://railser.cn/blog/tag/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://railser.cn</link>
	<description>关注Ruby和Rails的学习与开发</description>
	<lastBuildDate>Tue, 20 Dec 2011 11:47:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>MephistoBlog使用的插件和第三方代码介绍</title>
		<link>http://railser.cn/blog/mephistoblog-vender-and-plugins</link>
		<comments>http://railser.cn/blog/mephistoblog-vender-and-plugins#comments</comments>
		<pubDate>Tue, 18 Dec 2007 02:15:37 +0000</pubDate>
		<dc:creator>里克</dc:creator>
				<category><![CDATA[default]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://railser.cn/archives/mephistoblog-vender-and-plugins</guid>
		<description><![CDATA[本篇是在 开发笔记：rails分页和acts_as_taggable插件的应用 一文的后半部分基础上再整理的。内容上是连贯的。 在 Rails开发中，会用到很多有帮助的插件，A taxonomy of Rails plugins【中文翻译】 里讲到了如何制作插件，并引用了acts_as_taggable的例子进行讲解。 Top 11 Rails Plugins 里面更是讲了很多有帮助的插件。不过我更想细看一下mephisto-0.7.3里面的插件。 MephistoBlog用了哪些插件 看图： 说话： vender中： BlueCloth：BlueCloth是一个Markdown的Ruby实现，一个提供给网页文字撰写者将文本转成HTML的工具。Markdown令你可以写出容易阅读、容易撰写的文本格式，然后将它转换成结构化的XHTML（或者HTML）。 RedCloth：RedCloth是一个令你可以在Ruby中使用Textile的模块。Textile是一个文本格式，一个非常简单的文本格式。可以将一个可读的文本转成HTML。 RubyPants：是Ruby实现的“smart-quotes library SmartyPants”。RubyPants使用不同的APIs，它兼容上面两个的APIs，将ASCII的标点转换成 “smart” typographic punctuation HTML entities。参考：RubyPants RubyZip：rubyzip是一个ruby读写zip文件的类库。RDOC TZInfo：TZInfo是一个标准tz数据库提供不同时区的daylight savings的Ruby类库。 plugins中： a_gems：小巧的Ruby Gem管理工具，它在启动时会自动的将gem/lib的路径加载到$LOAD_PATH 中。 它不用介绍，就几行代码。 &#160; standard_dirs = &#91;'rails', 'plugins'&#93; gems = Dir&#91;File.join&#40;RAILS_ROOT, &#34;vendor/**&#34;&#41;&#93; if gems.any? gems.each do &#124;dir&#124; next if standard_dirs.include?&#40;File.basename&#40;dir&#41;&#41; lib [...]]]></description>
			<content:encoded><![CDATA[<pre>
<script type="text/javascript"><!--
google_ad_client = "pub-7545275883969710";
//468x60, 创建于 07-12-3
google_ad_slot = "2874464732";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script></pre>
<p>本篇是在 <a href="http://railser.cn/archives/development-log-rails-pagnate-and-acts-as-taggable">开发笔记：rails分页和acts_as_taggable插件的应用</a> 一文的后半部分基础上再整理的。内容上是连贯的。</p>
<p>在 Rails开发中，会用到很多有帮助的插件，<a href="http://alexyoung.org/articles/show/40/a_taxonomy_of_rails_plugins">A taxonomy of Rails plugins</a>【<a href="http://www.javaeye.com/topic/113929">中文翻译</a>】 里讲到了如何制作插件，并引用了acts_as_taggable的例子进行讲解。</p>
<p><a href="http://www.juixe.com/techknow/index.php/2006/07/05/top-11-rails-plugins/">Top 11 Rails Plugins</a> 里面更是讲了很多有帮助的插件。不过我更想细看一下<a href="http://www.mephistoblog.com/">mephisto-0.7.3</a>里面的插件。</p>
<h3>MephistoBlog用了哪些插件</h3>
<p>看图：<br />
<img src="http://railser.cn/wp-content/uploads/2007/12/vender.jpg" alt="vender" /></p>
<p><img src="http://railser.cn/wp-content/uploads/2007/12/plugins.jpg" alt="plugins" /></p>
<p>说话：<br />
<strong>vender中：</strong><br />
BlueCloth：<a href="http://www.deveiate.org/projects/BlueCloth">BlueCloth</a>是一个Markdown的Ruby实现，一个提供给网页文字撰写者将文本转成HTML的工具。Markdown令你可以写出容易阅读、容易撰写的文本格式，然后将它转换成结构化的XHTML（或者HTML）。</p>
<p>RedCloth：<a href="http://code.whytheluckystiff.net/redcloth/">RedCloth</a>是一个令你可以在Ruby中使用Textile的模块。Textile是一个文本格式，一个非常简单的文本格式。可以将一个可读的文本转成HTML。</p>
<p>RubyPants：是Ruby实现的“smart-quotes library SmartyPants”。RubyPants使用不同的APIs，它兼容上面两个的APIs，将ASCII的标点转换成 “smart” typographic punctuation HTML entities。参考：<a href="http://chneukirchen.org/blog/static/projects/rubypants.html">RubyPants</a></p>
<p>RubyZip：rubyzip是一个ruby读写zip文件的类库。<a href="http://rubyzip.sourceforge.net/">RDOC</a></p>
<p>TZInfo：<a href="http://tzinfo.rubyforge.org/">TZInfo</a>是一个标准tz数据库提供不同时区的daylight savings的Ruby类库。</p>
<p><strong>plugins中：</strong></p>
<p>a_gems：小巧的Ruby Gem管理工具，它在启动时会自动的将gem/lib的路径加载到$LOAD_PATH 中。<br />
它不用介绍，就几行代码。</p>
<blockquote>
<pre class="ruby">&nbsp;
standard_dirs = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'rails'</span>, <span style="color:#996600;">'plugins'</span><span style="color:#006600; font-weight:bold;">&#93;</span>
gems          = <span style="color:#CC00FF; font-weight:bold;">Dir</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">join</span><span style="color:#006600; font-weight:bold;">&#40;</span>RAILS_ROOT, <span style="color:#996600;">&quot;vendor/**&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#93;</span>
<span style="color:#9966CC; font-weight:bold;">if</span> gems.<span style="color:#9900CC;">any</span>?
  gems.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> |dir|
    <span style="color:#9966CC; font-weight:bold;">next</span> <span style="color:#9966CC; font-weight:bold;">if</span> standard_dirs.<span style="color:#9966CC; font-weight:bold;">include</span>?<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">basename</span><span style="color:#006600; font-weight:bold;">&#40;</span>dir<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    lib = <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">join</span><span style="color:#006600; font-weight:bold;">&#40;</span>dir, <span style="color:#996600;">'lib'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#ff6633; font-weight:bold;">$LOAD_PATH</span>.<span style="color:#9900CC;">unshift</span><span style="color:#006600; font-weight:bold;">&#40;</span>lib<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">directory</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>lib<span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre>
</blockquote>
<p><a href="http://technoweenie.stikipad.com/plugins/show/Acts+as+Attachment">acts_as_attachment</a>：保存附件文件到数据库或文件系统的插件。</p>
<p><a href="http://ar-paranoid.rubyforge.org/">acts_as_paranoid</a>：重写当前model的一些基础方法。当执行destroy时，设置deleted_at为当前时间。里克：意思是说它并不真正删除数据，只是加上了一个删除日期，证明该记录被删除了。它可以使你重新看到已删除的记录。对数据要求高的应用很有帮助。</p>
<p><a href="http://ar-versioned.rubyforge.org/">acts_as_versioned</a>：对一个ActiveRecord  module 进行简单的版本标注。可实现值的回滚操作。因为它为每一个create出来的记录都做了版本记录。</p>
<p><a href="http://weblog.techno-weenie.net/projects/dialog">dialog_helper</a>：一个简单的脚本，对浏览器的弹出窗口进行“装修”。</p>
<p>filtered_column：README里啥也没写！！看文件里面，是在做格式化文本，可能是在对BlueCloth和RedCloth的一个功能进行改进。代码很多，有用过的朋友请留言。</p>
<p>filtered_column_code_macro：增强ruby代码的高亮显示，使用了<a href="http://coderay.rubychan.de/">CodeRay</a>库，Ruby写的做语法高亮显示的库。</p>
<p>filtered_column_flickr_macro：flickr转换，文本编辑的加强功能。（Author::Scott Raymond）</p>
<p>labeled_form_helper：为表单元素增加label标签。readme里有示例。</p>
<p><a href="http://wiki.rubyonrails.org/rails/pages/Liquid+Plugin">Liquid</a>：一个模板引擎。特点：可以编辑应用的外观，而且不会被执行危险代码。直接从数据库渲染模板。里克：看上去有点像django的模板语言。</p>
<p>mephisto_converters：博客搬家程序，将<a href="http://www.textpattern.com/">Textpattern</a>，<a href="http://typo3.com/">Typo</a>和<a href="http://wordpress.org/">WordPress</a>转换成mephistoblog。</p>
<p><a href="http://mocha.rubyforge.org/">mocha</a>：Rails的一个测试套件，可以模拟和替换代码中的方法和实例，比如，你可以替换掉ActiveRecord重的实例方法，而避免在单元测试的环节操作数据库。毕竟操作数据库还是慢一些的。</p>
<p><a href="http://weblog.techno-weenie.net/2006/10/14/simply_bdd-update">simply_bdd</a>：可以在创建测试用例的时候使用上下文和代码块。</p>
<p><a href="http://matthewman.net/2006/09/04/new-rails-feature-simply_helpful/">simply_helpful</a>：新增的一些helper。加强功能。 <a href="http://www.juixe.com/techknow/index.php/2007/04/03/simply-helpful-rails-plugin/">Simply Helpful Rails Plugin</a>里介绍的比较详细，不过一些功能已经放到2.0里面了，对于老版本，尤其是博客里提到的1.2.2的应用，可以考虑安装的。</p>
<p><a href="http://weblog.techno-weenie.net/2006/9/3/white-listing-plugin-for-rails">white_list</a>：一个html安全增强工具，可以过滤掉一些hack代码，是html更安全。</p>
<p>er...<br />
到这里，mephisto blog的第三方代码和插件都写完了。</p>
<p>广告一下：狂喜欢的 <a href="http://www.footballmanager.net/">Football Manager 2008</a> 已经发了。狂好玩。我的曼城还在煎熬中，不过上个赛季最后一场比赛，客场对阿森纳，竟然无比顽强的2：1获胜。挤掉了曼联排名第四。哇哈哈哈！</p>
<p><img src="http://railser.cn/wp-content/uploads/2007/12/679.png" alt="man city" /></p>
<p>参考资料：<br />
<a href="http://www.mephistoblog.com/">MephistoBlog</a><br />
<a href="http://rubylib.cn/">Ruby Lib中文站</a><br />
<a href="http://baike.baidu.com/view/15482.htm">ASCII</a><br />
<a href="http://lgn21st.javaeye.com/blog/135502">用mocha测试rails，mock HTTPResponse</a></p>
]]></content:encoded>
			<wfw:commentRss>http://railser.cn/blog/mephistoblog-vender-and-plugins/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

