<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Fabio Kung &#187; coding</title>
	<atom:link href="http://fabiokung.com/tag/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://fabiokung.com</link>
	<description>Deleting code. Better than writing good code.</description>
	<lastBuildDate>Wed, 28 Mar 2012 05:14:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='fabiokung.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/4774c20e8f8313df1d4528a77be5a951?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Fabio Kung &#187; coding</title>
		<link>http://fabiokung.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://fabiokung.com/osd.xml" title="Fabio Kung" />
	<atom:link rel='hub' href='http://fabiokung.com/?pushpress=hub'/>
		<item>
		<title>Rfactor: Ruby Refactoring for your loved editor</title>
		<link>http://fabiokung.com/2009/02/04/rfactor-ruby-refactoring-for-your-loved-editor/</link>
		<comments>http://fabiokung.com/2009/02/04/rfactor-ruby-refactoring-for-your-loved-editor/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 14:31:11 +0000</pubDate>
		<dc:creator>Fabio Kung</dc:creator>
				<category><![CDATA[bundle]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[intellij]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[refactor]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[textmate]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ast]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[gedit]]></category>
		<category><![CDATA[parsetree]]></category>
		<category><![CDATA[ruby_parser]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://fabiokung.com/?p=128</guid>
		<description><![CDATA[I know we all love Ruby, and doesn&#8217;t care that much about not having auto completion/IntelliSense available. I don&#8217;t care that much about auto completion, when coding in Ruby, myself. What I really like in Java IDEs is their refactoring support. Eclipse and IntelliJ IDEA are simply awesome in this space for Java. We still [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fabiokung.com&#038;blog=3424388&#038;post=128&#038;subd=fabiokung&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I know we all love Ruby, and doesn&#8217;t care that much about not having auto completion/IntelliSense available.</p>
<p>I don&#8217;t care that much about auto completion<del datetime="00">, when coding in Ruby,</del> myself. What I really like in Java IDEs is their refactoring support. <a href="http://eclipse.org">Eclipse</a> and <a href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a> are simply awesome in this space for Java. We still have <a href="http://www.jetbrains.com/resharper/">ReSharper</a> for Visual Studio and others, targeting other languages. Ruby has <a href="http://netbeans.org">NetBeans</a>, <a href="http://aptana.com/radrails">Aptana RadRails</a>, <a href="http://www.jetbrains.com/ruby/index.html">RubyMine</a> and <a href="http://www.codegear.com/products/3rdrail">TurboRuby/3rdRail</a> doing a great job in this area.</p>
<p>But, I have this feeling that most of Ruby developers do not use IDEs (including myself). We are using good text editors, such as TextMate, Vim, Emacs and GEdit. They are good enough. Why would I need something else?</p>
<p>I have to admit. I really miss some refactorings while programming in Ruby. Particularly, the lack of <em>&#8220;Extract Method&#8221;</em> and <em>&#8220;Extract Variable&#8221;</em> bothers me. They aren&#8217;t even complicated, why hasn&#8217;t someone already implemented them?</p>
<p>So, I would like to introduce <a href="http://github.com/fabiokung/rfactor">Rfactor</a>. It is a Ruby gem, which aims to provide common and simple refactorings for Ruby code. RubyParser from Ryan Davis is being used to analyze and manipulate the source code <a href="http://en.wikipedia.org/wiki/Abstract_syntax_tree">AST</a>, in the form of <a href="http://en.wikipedia.org/wiki/Sexp">Sexps</a>.</p>
<span style="text-align:center; display: block;"><a href="http://fabiokung.com/2009/02/04/rfactor-ruby-refactoring-for-your-loved-editor/"><img src="http://img.youtube.com/vi/2tx0_mCk9IQ/2.jpg" alt="" /></a></span>
<p>In theory, we should be able to use <a href="http://github.com/fabiokung/rfactor">Rfactor</a> to power any editor, adding refactoring capabilities to it. I&#8217;m targeting TextMate, but I would love to see contributions for others. The TextMate Bundle is hosted on github:</p>
<p align="center">
<a href="http://github.com/fabiokung/rfactor-tmbundle/tree/master">Rfactor TextMate Bundle, with installation instructions</a></p>
<p>This very first release has support only for basic &#8220;Extract Method&#8221;: inside methods and without trying to guess the method parameters and return.</p>
<p>Stay in touch, there is much more coming!</p>
<br />Posted in bundle, editor, intellij, rails, refactor, refactoring, ruby, textmate, Uncategorized Tagged: ast, bundle, code, coding, editor, emacs, gedit, parsetree, rails, refactor, refactoring, ruby, ruby_parser, textmate, vi, vim <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fabiokung.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fabiokung.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/fabiokung.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fabiokung.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/fabiokung.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fabiokung.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/fabiokung.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fabiokung.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/fabiokung.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fabiokung.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/fabiokung.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fabiokung.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/fabiokung.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fabiokung.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fabiokung.com&#038;blog=3424388&#038;post=128&#038;subd=fabiokung&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fabiokung.com/2009/02/04/rfactor-ruby-refactoring-for-your-loved-editor/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/251c190c5a8277a3bc6197491f32da51?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">Fabio Kung</media:title>
		</media:content>
	</item>
	</channel>
</rss>
