<?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>Wylie &#187; Ruby on Rails</title>
	<atom:link href="http://www.wyliethomas.com/blog/category/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wyliethomas.com/blog</link>
	<description>web consultant.developer.angler</description>
	<lastBuildDate>Wed, 07 Dec 2011 18:14:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>RVM, Rake and Cron on Ubuntu</title>
		<link>http://www.wyliethomas.com/blog/2011/08/24/rvm-rake-and-cron-on-ubuntu/</link>
		<comments>http://www.wyliethomas.com/blog/2011/08/24/rvm-rake-and-cron-on-ubuntu/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 20:43:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=175</guid>
		<description><![CDATA[Tennnngh! I read countless blog posts, tried numerous approaches that I found and rebuilt the server more than a couple times. And finally I found what the missing piece was for getting a rake command to run in cron with rvm.
Most of the results I found (on stackoverflow) flagged the solution as adding the path [...]]]></description>
			<content:encoded><![CDATA[<p>Tennnngh! I read countless blog posts, tried numerous approaches that I found and rebuilt the server more than a couple times. And finally I found what the missing piece was for getting a rake command to run in cron with rvm.</p>
<p>Most of the results I found (on stackoverflow) flagged the solution as adding the path to your rvm in your line item in crontab. Something like /home/username/.rvm/gems/rake my_awesome_task&#8230; etc. I tried every variation of that I could think of and got the same results.</p>
<p> I dont use cron every day so this was a revelation to me. I found out that you can set variables, environment variables in your crontab file.</p>
<p>So the solution was very simple. Edit the crontab like this.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">crontab -e</div>
</li>
</ol>
</div>
<p>Then at the top of the file (mine is the first line)</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">SHELL = /home/wylie/.<span class="me1">rvm</span>/bin/rvm-shell</div>
</li>
</ol>
</div>
<p>Then my commands:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">* <span class="nu0">4</span> * * * /bin/bash -l -c <span class="st0">&#8216;cd /path/to/app &amp;&amp; RAILS_ENV=production rake mytask &#8211;silent&#8217;</span></div>
</li>
</ol>
</div>
<p>Done.</p>
<p>Hope that saves someone some time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2011/08/24/rvm-rake-and-cron-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PayPal Recurring Payments with ActiveMerchant</title>
		<link>http://www.wyliethomas.com/blog/2011/02/22/paypal-recurring-payments-with-activemerchant/</link>
		<comments>http://www.wyliethomas.com/blog/2011/02/22/paypal-recurring-payments-with-activemerchant/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 08:38:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PayPal]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=164</guid>
		<description><![CDATA[I found several pieces to the puzzle but it took me a while to put it all together. After I got it working I thought I should write it down in case I needed to remember what I did or maybe someone else would find it useful.
The first thing you should know is that ActiveMerchant [...]]]></description>
			<content:encoded><![CDATA[<p>I found several pieces to the puzzle but it took me a while to put it all together. After I got it working I thought I should write it down in case I needed to remember what I did or maybe someone else would find it useful.</p>
<p>The first thing you should know is that ActiveMerchant does not support recurring payments with PayPal. But Raymond Law generously made a fork that fixes this. I couldnt get the fix as a gem so I just installed it as a plug in. <a href="https://github.com/rayvinly/active_merchant/">https://github.com/rayvinly/active_merchant/</a></p>
<p>Then I went to the Railscasts on PayPal with ActiveMerchant. <a href="http://railscasts.com/episodes/146-paypal-express-checkout">http://railscasts.com/episodes/146-paypal-express-checkout</a></p>
<p>In my config/environments I made a slight change from the Railscasts example:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">config.<span class="me1">after_initialize</span> <span class="kw1">do</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re2">ActiveMerchant::Billing::Base</span>.<span class="me1">mode</span> = <span class="re3">:test</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; paypal_options = <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re3">:login</span> =&gt; <span class="st0">&quot;mysandboxlogingoeshere&quot;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="re3">:password</span> =&gt; <span class="st0">&quot;MYSANDBOXAPIPASSWORD&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re3">:signature</span> =&gt; <span class="st0">&quot;SANDBOXAPI&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; ::STANDARD_GATEWAY = <span class="re2">ActiveMerchant::Billing::PaypalGateway</span>.<span class="me1">new</span><span class="br0">&#40;</span>paypal_options<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; ::EXPRESS_GATEWAY = <span class="re2">ActiveMerchant::Billing::PaypalExpressGateway</span>.<span class="me1">new</span><span class="br0">&#40;</span>paypal_options<span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">::EXPRESS_RECURRING_GATEWAY = <span class="re2">ActiveMerchant::Billing::PaypalExpressRecurringGateway</span>.<span class="me1">new</span><span class="br0">&#40;</span>paypal_options<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
</ol>
</div>
<p>I made a registration controller:<br />
rails g controller index new checkout complete</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">def</span> checkout</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;response = EXPRESS_RECURRING_GATEWAY.<span class="me1">setup_agreement</span><span class="br0">&#40;</span><span class="re3">:description</span> =&gt; description, return_url =&gt; registration_complete_url, <span class="re3">:cancel_return_url</span> =&gt; registration_new_url<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; redirect_to EXPRESS_RECURRING_GATEWAY.<span class="me1">redirect_url_for</span><span class="br0">&#40;</span>response.<span class="me1">token</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> complete</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;token = params<span class="br0">&#91;</span><span class="re3">:token</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;response = EXPRESS_RECURRING_GATEWAY.<span class="me1">create_profile</span><span class="br0">&#40;</span>token, <span class="re3">:description</span> =&gt; description, <span class="re3">:start_date</span> =&gt; start_date, <span class="re3">:frequency</span> =&gt; frequency_in_months, <span class="re3">:amount</span> =&gt; amount_in_dollars, <span class="re3">:auto_bill_outstanding</span> =&gt; <span class="kw2">true</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw1">if</span> response. <span class="me1">success</span>?</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">#handle success</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">#handle failure</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;<span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
</ol>
</div>
<p>You can figure out your own way to handle the values and details of the transaction. The Date format can be set with</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">start_date = <span class="kw4">Time</span>.<span class="me1">now</span></div>
</li>
</ol>
</div>
<p>The amount can be just a number. Dont put it in quotes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2011/02/22/paypal-recurring-payments-with-activemerchant/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>paginating multiple collections with will_paginate</title>
		<link>http://www.wyliethomas.com/blog/2010/10/13/paginating-multiple-collections-with-will_paginate/</link>
		<comments>http://www.wyliethomas.com/blog/2010/10/13/paginating-multiple-collections-with-will_paginate/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 17:01:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=150</guid>
		<description><![CDATA[Use case: I have a page with multiple post. Each post has multiple comments. I want to use the infinite_scroll jquery plugin to &#8220;paginate&#8221; through the comments and post. 
Admittedly, nested pagination makes little sense until you think about it in context of having multiple infinite scrolls on a page.
Here are the bare bones.
My Post [...]]]></description>
			<content:encoded><![CDATA[<p>Use case: I have a page with multiple post. Each post has multiple comments. I want to use the infinite_scroll jquery plugin to &#8220;paginate&#8221; through the comments and post. </p>
<p>Admittedly, nested pagination makes little sense until you think about it in context of having multiple infinite scrolls on a page.</p>
<p>Here are the bare bones.</p>
<p>My Post model:<br />
<code>def comment_pages(comment_page = 1)<br />
   self.comments.paginate( :page => comment_page, :per_page => 5 )<br />
end</code></p>
<p>My View (haml version):<br />
<code>#comment_pagination= will_paginate(comments, :param_name => "comment_page_#{post.id}")</code></p>
<p>Now i have unique list that infinite scroll can use to paginate through.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2010/10/13/paginating-multiple-collections-with-will_paginate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Emoticon Selector Plugin</title>
		<link>http://www.wyliethomas.com/blog/2010/03/02/jquery-emoticon-selector-plugin/</link>
		<comments>http://www.wyliethomas.com/blog/2010/03/02/jquery-emoticon-selector-plugin/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 23:15:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[emoticon]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=117</guid>
		<description><![CDATA[I couldn&#8217;t find an emoticon plugin for inserting an emoticon into a text area. I found plenty that converted the emoticon code into an image. So, I set out to write my first jQuery plugin.
If you choose to use this, keep in mind this was my first plugin and should be thoroughly tested before using [...]]]></description>
			<content:encoded><![CDATA[<p>I couldn&#8217;t find an emoticon plugin for inserting an emoticon into a text area. I found plenty that converted the emoticon code into an image. So, I set out to write my first jQuery plugin.</p>
<p>If you choose to use this, keep in mind this was my first plugin and should be thoroughly tested before using it. And if you make it better I would very much like to see what changes you made.</p>
<p>Lets check it out. </p>
<p>The view has two components. The jQuery call and the div with the necessary elements. (my examples are how i used this in Ruby)</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;% javascript_tag <span class="kw1">do</span> %&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; $<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;div#emodiv&quot;</span><span class="br0">&#41;</span>.<span class="me1">emoticate</span><span class="br0">&#40;</span><span class="br0">&#123;</span>icon: <span class="st0">&#8217;smiley-icon&#8217;</span>, replacediv: <span class="st0">&#8216;list&#8217;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt;% <span class="kw1">end</span> %&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Then the div that you identified in the jQuery call.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;div id=&quot;emodiv&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;img src=&quot;/images/emoticons/emoticon-0100-smile.png&quot; id=&quot;smiley-icon&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;div id=&quot;list&quot;&gt; &lt;/div&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &lt;select name=&quot;emoticons&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;:)&quot;&gt;emoticon-0100-smile.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;|-(&quot;&gt;emoticon-0106-crying.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;;)&quot;&gt;emoticon-0105-wink.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;:(&quot;&gt;emoticon-0106-crying.png&lt;/option&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &lt;option value=&quot;(pt)&quot;&gt;279.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;(ct)&quot;&gt;104.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;(au)&quot;&gt;342.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;(eg)&quot;&gt;emoticon-0116-evilgrin.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;:*&quot;&gt;emoticon-0109-kiss.png&lt;/option&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &lt;/select&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;p&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;textarea id=&quot;comment_1&quot;&gt;&lt;/textarea&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/p&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>What is going to happen is that the select and options will be changed to a UL list with the icon images. When an emoticon is clicked it will be inserted into the text area within the div. (The id for the textarea does need to be unique).</p>
<p>And here is the plugin. </p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>$<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; $.<span class="me1">fn</span>.<span class="me1">emoticate</span> = <span class="kw2">function</span><span class="br0">&#40;</span>options<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> defaults = <span class="br0">&#40;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; replacediv: &nbsp; <span class="st0">&#8216;replaceme&#8217;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; image_path: &nbsp; <span class="st0">&#8216;/images/emoticons/&#8217;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; speed: &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">500</span>, </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; icon: &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8217;smiley&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> options = $.<span class="me1">extend</span><span class="br0">&#40;</span>defaults, options<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">this</span>.<span class="me1">each</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> select = $<span class="br0">&#40;</span><span class="st0">&#8217;select&#8217;</span>, <span class="kw1">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> area = $<span class="br0">&#40;</span><span class="st0">&#8216;textarea&#8217;</span>, <span class="kw1">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> icon = $<span class="br0">&#40;</span><span class="st0">&quot;#&quot;</span> + defaults.<span class="me1">icon</span>, <span class="kw1">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> emo =<span class="st0">&#8216;&lt;div class=&quot;emoticon-box&quot;&gt;&lt;ul&gt;&#8217;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;option&#8217;</span>, select<span class="br0">&#41;</span>.<span class="me1">each</span><span class="br0">&#40;</span><span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> option &nbsp; &nbsp;= $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> emocode &nbsp; &nbsp; &nbsp; &nbsp;= option.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> title &nbsp; &nbsp;= option.<span class="me1">text</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> link = $.<span class="me1">fn</span>.<span class="me1">emoticate</span>.<span class="me1">emoticlick</span><span class="br0">&#40;</span>title, emocode, defaults.<span class="me1">image_path</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; emo += <span class="st0">&#8216;&lt;li&gt;&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + link</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + <span class="st0">&#8216;&lt;/li&gt;&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">//end option</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; emo += <span class="st0">&#8216;&lt;/ul&gt;&lt;/div&gt;&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; select.<span class="me1">remove</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//get rid of the select to make way for emotification</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#&quot;</span> + defaults.<span class="me1">replacediv</span>, <span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">html</span><span class="br0">&#40;</span>emo<span class="br0">&#41;</span>; <span class="co1">//put the emotification HTML in the right div</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#&quot;</span> + defaults.<span class="me1">replacediv</span>, <span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//hide the emoticons</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> listdiv = $<span class="br0">&#40;</span><span class="st0">&quot;#&quot;</span> + defaults.<span class="me1">replacediv</span>, <span class="kw1">this</span><span class="br0">&#41;</span>; <span class="co1">//reset the var so it will work in the icon click.. this probably could be done better</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1">//bind the link for every a tag that is in the replaced div</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;a&#8217;</span>, <span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">bind</span><span class="br0">&#40;</span><span class="st0">&#8216;click&#8217;</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">fn</span>.<span class="me1">emoticate</span>.<span class="me1">insertme</span><span class="br0">&#40;</span>area.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">&#8216;id&#8217;</span><span class="br0">&#41;</span>, $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">&#8216;id&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">//end bind</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1">//click the icon</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>icon, <span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">bind</span><span class="br0">&#40;</span><span class="st0">&#8216;click&#8217;</span>, <span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; listdiv.<span class="me1">show</span><span class="br0">&#40;</span>defaults.<span class="me1">speed</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1">//function to click anywhere to hide the emoticons</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>document.<span class="me1">body</span><span class="br0">&#41;</span>click<span class="br0">&#40;</span><span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; listdiv.<span class="me1">hide</span><span class="br0">&#40;</span>defaults.<span class="me1">speed</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">//end select</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span>; <span class="co1">//end function</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; $.<span class="me1">fn</span>.<span class="me1">emoticate</span>.<span class="me1">emoticlick</span> = <span class="kw2">function</span><span class="br0">&#40;</span>id,emocode, image_path<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="st0">&#8216;&lt;a href=&quot;#&quot; id=&quot;&#8217;</span> + emocode +<span class="st0">&#8216;&quot;&gt;&lt;img src=&quot;&#8217;</span> + image_path + id + <span class="st0">&#8216;&quot;&gt;&lt;/a&gt;&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; $.<span class="me1">fn</span>.<span class="me1">emoticate</span>.<span class="me1">insertme</span> = <span class="kw2">function</span><span class="br0">&#40;</span>areaId,text<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw2">var</span> txtarea = document.<span class="me1">getElementById</span><span class="br0">&#40;</span>areaId<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> scrollPos = txtarea.<span class="me1">scrollTop</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> strPos = <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> br = <span class="br0">&#40;</span><span class="br0">&#40;</span>txtarea.<span class="me1">selectionStart</span> || txtarea.<span class="me1">selectionStart</span> == <span class="st0">&#8216;0&#8242;</span><span class="br0">&#41;</span> ? </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;ff&quot;</span> : <span class="br0">&#40;</span>document.<span class="me1">selection</span> ? <span class="st0">&quot;ie&quot;</span> : <span class="kw2">false</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>br == <span class="st0">&quot;ie&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; txtarea.<span class="kw3">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="kw2">var</span> range = document.<span class="me1">selection</span>.<span class="me1">createRange</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; range.<span class="me1">moveStart</span> <span class="br0">&#40;</span><span class="st0">&#8216;character&#8217;</span>, -txtarea.<span class="me1">value</span>.<span class="me1">length</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; strPos = range.<span class="me1">text</span>.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">&#40;</span>br == <span class="st0">&quot;ff&quot;</span><span class="br0">&#41;</span> strPos = txtarea.<span class="me1">selectionStart</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> front = <span class="br0">&#40;</span>txtarea.<span class="me1">value</span><span class="br0">&#41;</span>.<span class="me1">substring</span><span class="br0">&#40;</span><span class="nu0">0</span>,strPos<span class="br0">&#41;</span>; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> <span class="kw3">back</span> = <span class="br0">&#40;</span>txtarea.<span class="me1">value</span><span class="br0">&#41;</span>.<span class="me1">substring</span><span class="br0">&#40;</span>strPos,txtarea.<span class="me1">value</span>.<span class="me1">length</span><span class="br0">&#41;</span>; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; txtarea.<span class="me1">value</span>=front+text+<span class="kw3">back</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; strPos = strPos + text.<span class="me1">length</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>br == <span class="st0">&quot;ie&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; txtarea.<span class="kw3">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> range = document.<span class="me1">selection</span>.<span class="me1">createRange</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; range.<span class="me1">moveStart</span> <span class="br0">&#40;</span><span class="st0">&#8216;character&#8217;</span>, -txtarea.<span class="me1">value</span>.<span class="me1">length</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; range.<span class="me1">moveStart</span> <span class="br0">&#40;</span><span class="st0">&#8216;character&#8217;</span>, strPos<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; range.<span class="me1">moveEnd</span> <span class="br0">&#40;</span><span class="st0">&#8216;character&#8217;</span>, <span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; range.<span class="me1">select</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">&#40;</span>br == <span class="st0">&quot;ff&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; txtarea.<span class="me1">selectionStart</span> = strPos;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; txtarea.<span class="me1">selectionEnd</span> = strPos;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; txtarea.<span class="kw3">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; txtarea.<span class="me1">scrollTop</span> = scrollPos;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="br0">&#40;</span>jQuery<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Or you can download it <a href="http://www.wyliethomas.com/blog/wp-content/uploads/2010/03/jquery.emotification.js">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2010/03/02/jquery-emoticon-selector-plugin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing passenger on ubuntu has some issues</title>
		<link>http://www.wyliethomas.com/blog/2009/12/20/installing-passenger-on-ubuntu-has-some-issues/</link>
		<comments>http://www.wyliethomas.com/blog/2009/12/20/installing-passenger-on-ubuntu-has-some-issues/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 07:46:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=115</guid>
		<description><![CDATA[I followed the instructions on the Ubuntu site and the modrails site and everything would install fine but I could never get passenger to serve pages to apache.
Passenger assumes the permissions of the default apache user. And if you don&#8217;t set up your default user as www-data when you install Ubuntu Passenger wont have permission [...]]]></description>
			<content:encoded><![CDATA[<p>I followed the instructions on the Ubuntu site and the modrails site and everything would install fine but I could never get passenger to serve pages to apache.</p>
<p>Passenger assumes the permissions of the default apache user. And if you don&#8217;t set up your default user as www-data when you install Ubuntu Passenger wont have permission to run the app.</p>
<p>Open up /etc/apache2/envvars and change the www-data user  and group to match your default user and group and you should be set.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2009/12/20/installing-passenger-on-ubuntu-has-some-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Watch the whitespace</title>
		<link>http://www.wyliethomas.com/blog/2009/10/30/watch-the-whitespace/</link>
		<comments>http://www.wyliethomas.com/blog/2009/10/30/watch-the-whitespace/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 04:51:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=112</guid>
		<description><![CDATA[I have been spending the last hour wondering why this doesnt work.
Post.find_by_sql["SELECT title FROM posts WHERE author = ? AND created > ?", author_id, start_date]
Its because it needed to be like this:
Post.find_by_sql ["SELECT title FROM posts WHERE author = ? AND created > ?", author_id, start_date]
yeah, you need that whitespace there.
]]></description>
			<content:encoded><![CDATA[<p>I have been spending the last hour wondering why this doesnt work.</p>
<p>Post.find_by_sql["SELECT title FROM posts WHERE author = ? AND created > ?", author_id, start_date]</p>
<p>Its because it needed to be like this:<br />
Post.find_by_sql ["SELECT title FROM posts WHERE author = ? AND created > ?", author_id, start_date]</p>
<p>yeah, you need that whitespace there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2009/10/30/watch-the-whitespace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making a sortable, dynamic grid</title>
		<link>http://www.wyliethomas.com/blog/2009/10/11/making-a-sortable-dynamic-grid/</link>
		<comments>http://www.wyliethomas.com/blog/2009/10/11/making-a-sortable-dynamic-grid/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 05:56:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=80</guid>
		<description><![CDATA[I came up against an interesting challenge on a current project. This was actually pretty fun to figure out. Here is what I came up with.
I needed to display a grid with columns and rows that had information in each cell. The information in the cells needed to be dynamic, or change based on a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-81" title="Grid" src="http://www.wyliethomas.com/blog/wp-content/uploads/2009/10/Picture-2-300x239.png" alt="Grid" width="300" height="239" />I came up against an interesting challenge on a current project. This was actually pretty fun to figure out. Here is what I came up with.</p>
<p>I needed to display a grid with columns and rows that had information in each cell. The information in the cells needed to be dynamic, or change based on a UI perspective.</p>
<p>Also, if there were more than 10 rows in a column, the remaining cells needed to wrap to the next column.</p>
<p>This is definitely a job for a helper so I wrote these methods for the helper to render this sortable, dynamic grid. So far it seems to be holding up when rendering grids of various columns and rows.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">def</span> my_grid</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@my_data</span> = <span class="st0">&#8221;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@my_data</span> += <span class="st0">&#8216;&lt;table&gt;&#8217;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="re1">@my_data</span> += <span class="st0">&#8216;&lt;tr&gt;&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; num = <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">#this starts a new column for each category</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@columns</span>.<span class="me1">each</span> <span class="kw1">do</span> |col|</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; cell = Cell.<span class="me1">find</span><span class="br0">&#40;</span><span class="re3">:all</span>, <span class="re3">:conditions</span> =&gt; <span class="br0">&#91;</span><span class="st0">&#8216;category_id = ?&#8217;</span>, col<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="kw1">rescue</span> <span class="kw2">nil</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; count = cell.<span class="me1">size</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; item = <span class="nu0">0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; itemtotal = <span class="nu0">1</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; cell.<span class="me1">each</span> <span class="kw1">do</span> |row|</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">#if this is the 0 item start a new column</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> item == <span class="nu0">0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">@my_data</span> += <span class="kw2">self</span>.<span class="me1">start_col</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">end</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; score = row.<span class="me1">get_my_score</span><span class="br0">&#40;</span>row.<span class="me1">id</span>, <span class="re1">@grid</span>, <span class="re1">@user</span><span class="br0">&#41;</span>.<span class="me1">to_s</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">@my_data</span> += <span class="kw2">self</span>.<span class="me1">list_item</span><span class="br0">&#40;</span>score, row, itemtotal<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">#if this is the 9th item, or is the last of the cells, close the column and reset count</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; item += <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> item == <span class="nu0">10</span> || itemtotal == count</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">@my_data</span> += <span class="kw2">self</span>.<span class="me1">end_col</span><span class="br0">&#40;</span>num<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; num = num.<span class="me1">to_i</span> + <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; item = <span class="nu0">0</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; itemtotal += <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@my_data</span> += <span class="st0">&#8216;&lt;/tr&gt;&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@my_data</span> += <span class="st0">&#8216;&lt;/table&gt;&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">#return @my_data</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> start_col</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@start</span> = <span class="st0">&#8216;&lt;td valign=&quot;bottom&quot;&gt;&lt;div style=&quot;position: relative; bottom: 0px; display: block;&quot;&gt;&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@start</span> += <span class="st0">&#8216;&lt;ul style=&quot;vertical-align: bottom&quot;&gt;&#8217;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw2">return</span> <span class="re1">@start</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> end_col<span class="br0">&#40;</span>num<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@end</span> = <span class="st0">&#8216;&lt;/ul&gt;&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@end</span> += num.<span class="me1">to_s</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="re1">@end</span> += <span class="st0">&#8216;&lt;/td&gt;&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">return</span> <span class="re1">@end</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> list_item<span class="br0">&#40;</span>score, row, item<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@list</span> = <span class="st0">&#8216;&lt;li class=key_&#8217;</span>+ score +<span class="st0">&#8216;&gt;&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">#some stuff here&#8230;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="re1">@list</span> += <span class="st0">&#8216;&lt;/li&gt;&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">return</span> <span class="re1">@list</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2009/10/11/making-a-sortable-dynamic-grid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upload CSV to multiple tables</title>
		<link>http://www.wyliethomas.com/blog/2009/09/23/upload-csv-to-multiple-tables/</link>
		<comments>http://www.wyliethomas.com/blog/2009/09/23/upload-csv-to-multiple-tables/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 06:44:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=50</guid>
		<description><![CDATA[Uploading a CSV to a single table is easy enough, but what if elements of your CSV go to separate tables and needed to be primary and foreign keys for each other?
I have two tables, Categories and Items. I have a CSV that looks like this:
Category One,Item One,Item one descriptions,,
,Item two,Item two descriptione,,
,Item three,Item three [...]]]></description>
			<content:encoded><![CDATA[<p>Uploading a CSV to a single table is easy enough, but what if elements of your CSV go to separate tables and needed to be primary and foreign keys for each other?</p>
<p>I have two tables, Categories and Items. I have a CSV that looks like this:<br />
<code>Category One,Item One,Item one descriptions,,<br />
,Item two,Item two descriptione,,<br />
,Item three,Item three description,,<br />
,Item four,Item four description,,<br />
Category Two,Item five,Item five description,,<br />
,Item six,Item six description,,<br />
,Item seven,Item seven description,,</code></p>
<p>My controller method looks like this:<br />
<code><br />
require 'csv'<br />
def csv_import<br />
  @parsed_file=CSV::Reader.parse(params[:csv][:file])<br />
  @parsed_file.each  do |row|<br />
  category = row[0]<br />
     if !category.nil?<br />
     	c = Category.new<br />
     	c.name = row[0]<br />
     	c.save<br />
     	@new_cat = c.id<br />
     end<br />
 </code><br />
 <code><br />
     i = Item.new<br />
     i.name = row[1]<br />
     i.description = row[2]<br />
     i.category_id = @new_cat<br />
     i.save<br />
     end<br />
     </code><br />
     <code><br />
     redirect_to :controller => 'category', :id => params[:csv][:item]<br />
     </code><br />
And my form looks like this:<br />
<code><% form_for :csv, :url=>{:controller=>"category", :action=>"csv_import"}, :html => { :multipart => true } do |f| -%></p>
<table">
<tr>
<td>
        Select a CSV File :
     </td>
<td >
       <%= f.file_field :file -%>
     </td>
</tr>
<tr>
<td colspan='2'>
       <%= submit_tag 'Submit' -%>
     </td>
</tr>
</table>
<p><% end -%></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2009/09/23/upload-csv-to-multiple-tables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hosting on AWS part 2</title>
		<link>http://www.wyliethomas.com/blog/2009/09/16/hosting-on-aws-part-2/</link>
		<comments>http://www.wyliethomas.com/blog/2009/09/16/hosting-on-aws-part-2/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 06:35:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloud Hosting]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=46</guid>
		<description><![CDATA[Now i just want to run my rails app in production mode through apache instead of mongrel. Here is what I did.
First I needed to install apache.
yum install httpd
Then kill the existing mongrel process
pkill -9 mongrel_rails -u root
With apache installed I now have the directories I need. I moved my rails app from my webuser [...]]]></description>
			<content:encoded><![CDATA[<p>Now i just want to run my rails app in production mode through apache instead of mongrel. Here is what I did.</p>
<p>First I needed to install apache.<br />
<code>yum install httpd</code></p>
<p>Then kill the existing mongrel process<br />
<code>pkill -9 mongrel_rails -u root</code></p>
<p>With apache installed I now have the directories I need. I moved my rails app from my webuser directory to my apache directory at /var/www/html.</p>
<p>Now i can start apache<br />
<code>apachectl start</code><br />
If you go to your primary dns in a browser you should see the default fedora apache page.</p>
<p>Next I installed passenger<br />
<code>gem install passenger</code></p>
<p>Then the apache mod<br />
<code>passenger-install-apache2-module</code></p>
<p>Since I was using one of the pre-set AMI&#8217;s I am promted to install a few things.<br />
 * To install GNU C++ compiler:<br />
   Please run <code>yum install gcc-c++</code> as root.</p>
<p> * To install Apache 2 development headers:<br />
   Please run<code> yum install httpd-devel</code> as root.</p>
<p> * To install Apache Portable Runtime (APR) development headers:<br />
   Please run <code>yum install apr-deve</code>l as root</p>
<p>Then add these to the httpd.conf file<br />
<code>LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so<br />
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5<br />
PassengerRuby /usr/bin/ruby</code></p>
<p>And add a virtual host to the conf file the way described in the apache mod install instructions.</p>
<p>Then restart apache<br />
<code>apachectl restart</code></p>
<p>That was it. My rails app is now running through apache.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2009/09/16/hosting-on-aws-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hosting on AWS</title>
		<link>http://www.wyliethomas.com/blog/2009/09/15/hosting-on-aws/</link>
		<comments>http://www.wyliethomas.com/blog/2009/09/15/hosting-on-aws/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 05:49:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloud Hosting]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=40</guid>
		<description><![CDATA[Just some notes from setting up a Ruby on Rails instance on AWS EC2.
During the set up process of the instance you will be able to download a private key. Put that private key in a safe directory and chmod it to 400.
Then after completing the setup of the instance and you can see that [...]]]></description>
			<content:encoded><![CDATA[<p>Just some notes from setting up a Ruby on Rails instance on AWS EC2.</p>
<p>During the set up process of the instance you will be able to download a private key. Put that private key in a safe directory and chmod it to 400.</p>
<p>Then after completing the setup of the instance and you can see that it is running, go to your command line and enter:</p>
<p><code>ssh -i /path/to/key/[name of key].pem root@[public DNS]</code></p>
<p>That will get you logged in. You will need to go to /home/[webuser] to checkout your web project from SVN. But first you need to install SVN:</p>
<p><code>yum -y install subversion</code></p>
<p>Now you can check out:</p>
<p><code>svn checkout http://address.of.your.repository/and/path projectname</code></p>
<p>cd in to config and nano the database.yml, make the needed changes, then nano the environment.rb and edit the rails version if needed. Then make the database:</p>
<p><code>mysql</code></p>
<p><code>create database [whatever]</code></p>
<p><code>exit</code></p>
<p>Then cd into the root of the new project you just checked out:<br />
<code><br />
rake db:migrate</code></p>
<p>And if you have fixtures to test with</p>
<p><code>rake db:fixtures:load</code></p>
<p>Amazon runs mogrel so to test your project you can add this shell script:</p>
<p><code>#!/bin/sh<br />
cd /home/webuser/[project name]/log &amp;&amp; rm mongrel.pid -f<br />
pkill -9 mongrel_rails -u root<br />
cd /home/webuser/[project name] &amp;&amp; /usr/bin/mongrel_rails start -e development -p 80 -d</code></p>
<p>chmod that to 755 and run ./restart.sh</p>
<p>Go to the public DNS address in your browser and you should see your project.</p>
<p>Next, I will be attempting to run Rails through Apache on AWS with passenger instead of mongrel. For now this got my project online.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2009/09/15/hosting-on-aws/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

