moxie-columbus 0.1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +5 -0
- data/Gemfile.lock +86 -0
- data/LICENSE +20 -0
- data/README.rdoc +18 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/examples/all.rb +4 -0
- data/examples/primary.rb +4 -0
- data/lib/columbus.rb +47 -0
- data/lib/columbus/feed.rb +17 -0
- data/lib/columbus/link.rb +19 -0
- data/lib/columbus/redirect_follower.rb +46 -0
- data/moxie-columbus.gemspec +71 -0
- data/test/columbus_test.rb +36 -0
- data/test/feed_test.rb +23 -0
- data/test/fixtures/railsquicktips.html +295 -0
- data/test/fixtures/railstips.html +1071 -0
- data/test/fixtures/railstips_feedburner.html +1397 -0
- data/test/fixtures/railstips_redirect +11 -0
- data/test/link_test.rb +40 -0
- data/test/test_helper.rb +17 -0
- metadata +150 -0
data/test/feed_test.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class FeedTest < Test::Unit::TestCase
|
4
|
+
context "Initialization" do
|
5
|
+
setup do
|
6
|
+
@body = fixture_file('railstips.html')
|
7
|
+
FakeWeb.register_uri(:get, "http://feeds.feedburner.com/railstips", :string => @body)
|
8
|
+
@feed = Columbus::Feed.new('http://feeds.feedburner.com/railstips', 'Railstips')
|
9
|
+
end
|
10
|
+
|
11
|
+
should "accept a url" do
|
12
|
+
@feed.url.should == 'http://feeds.feedburner.com/railstips'
|
13
|
+
end
|
14
|
+
|
15
|
+
should "accept a title" do
|
16
|
+
@feed.title = 'Railstips'
|
17
|
+
end
|
18
|
+
|
19
|
+
should "set body to feed endpoint response body" do
|
20
|
+
@feed.body.should == @body
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,295 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss1full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds2.feedburner.com/~d/styles/itemcontent.css"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
|
3
|
+
<channel rdf:about="http://feeds.delicious.com">
|
4
|
+
<title>Rails Quick Tips</title>
|
5
|
+
<link>http://delicious.com/jnunemaker/railstips</link>
|
6
|
+
<description>These are quick tips for anyone interested in Ruby on Rails.</description>
|
7
|
+
<items>
|
8
|
+
<rdf:Seq>
|
9
|
+
<rdf:li rdf:resource="http://github.com/jchupp/is_paranoid/tree/master" />
|
10
|
+
<rdf:li rdf:resource="http://voloko.ru/sdoc/rails/" />
|
11
|
+
<rdf:li rdf:resource="http://garrettdimon.com/archives/2009/3/11/independent_software_development/" />
|
12
|
+
<rdf:li rdf:resource="http://wonderfullyflawed.com/2009/02/17/rails-forms-microformat/" />
|
13
|
+
<rdf:li rdf:resource="http://github.com/benschwarz/passenger-stack/tree/master" />
|
14
|
+
<rdf:li rdf:resource="http://nextupdate.com/blog/archives/2009/03/implementing-search/" />
|
15
|
+
<rdf:li rdf:resource="http://hackd.thrivesmarthq.com/how-to-setup-a-linux-server-for-ruby-on-rails-with-github-and-phusion-passenger" />
|
16
|
+
<rdf:li rdf:resource="http://github.com/Fingertips/nap/tree/master" />
|
17
|
+
<rdf:li rdf:resource="http://onrails.org/articles/2009/03/06/integrating-ftp-with-rails" />
|
18
|
+
<rdf:li rdf:resource="http://opensource.plurk.com/LightCloud" />
|
19
|
+
<rdf:li rdf:resource="http://buddingrubyist.com/2009/02/14/how-to-speed-up-gem-installs-10x/" />
|
20
|
+
<rdf:li rdf:resource="http://push.cx/2008/deploying-crontab-with-your-rails-app" />
|
21
|
+
<rdf:li rdf:resource="http://www.coffeepowered.net/2009/02/15/graceful-degredation-using-gravatar-as-a-fallback-avatar-with-paperclip/" />
|
22
|
+
<rdf:li rdf:resource="http://code.google.com/apis/gdata/articles/gdata_on_rails.html" />
|
23
|
+
<rdf:li rdf:resource="http://getsprockets.org/" />
|
24
|
+
</rdf:Seq>
|
25
|
+
</items>
|
26
|
+
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds2.feedburner.com/railsquicktips" type="application/rss+xml" /></channel>
|
27
|
+
<item rdf:about="http://github.com/jchupp/is_paranoid/tree/master">
|
28
|
+
<title>jchupp's is_paranoid</title>
|
29
|
+
<dc:date>2009-03-24T14:44:41Z</dc:date>
|
30
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/lQKkLtTYCgE/master</link>
|
31
|
+
<dc:creator>jnunemaker</dc:creator>
|
32
|
+
<description>&quot;ActiveRecord 2.3 compatible gem &#039;allowing you to hide and restore records without actually deleting them.&#039; Yes, like acts_as_paranoid, only with less code and less complexity.&quot; Basically a version of acts as paranoid that takes advantage of new rails 2.3 features.<div class="feedflare">
|
33
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=lQKkLtTYCgE:8hjap7hTqEM:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=lQKkLtTYCgE:8hjap7hTqEM:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
34
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/lQKkLtTYCgE" height="1" width="1"/></description>
|
35
|
+
<dc:subject>rails railstips plugins</dc:subject>
|
36
|
+
<taxo:topics>
|
37
|
+
<rdf:Bag>
|
38
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/rails" />
|
39
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
40
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/plugins" />
|
41
|
+
</rdf:Bag>
|
42
|
+
</taxo:topics>
|
43
|
+
<feedburner:origLink>http://github.com/jchupp/is_paranoid/tree/master</feedburner:origLink></item>
|
44
|
+
<item rdf:about="http://voloko.ru/sdoc/rails/">
|
45
|
+
<title>Rails Searchable API Doc</title>
|
46
|
+
<dc:date>2009-03-17T20:48:46Z</dc:date>
|
47
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/08a9HcDjuN4/</link>
|
48
|
+
<dc:creator>jnunemaker</dc:creator>
|
49
|
+
<description>Looks like a cool downloadable version of the rails rdoc. Handy.<div class="feedflare">
|
50
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=08a9HcDjuN4:WS2WriGDDkY:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=08a9HcDjuN4:WS2WriGDDkY:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
51
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/08a9HcDjuN4" height="1" width="1"/></description>
|
52
|
+
<dc:subject>railstips documentation</dc:subject>
|
53
|
+
<taxo:topics>
|
54
|
+
<rdf:Bag>
|
55
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
56
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/documentation" />
|
57
|
+
</rdf:Bag>
|
58
|
+
</taxo:topics>
|
59
|
+
<feedburner:origLink>http://voloko.ru/sdoc/rails/</feedburner:origLink></item>
|
60
|
+
<item rdf:about="http://garrettdimon.com/archives/2009/3/11/independent_software_development/">
|
61
|
+
<title>Independent Software Development</title>
|
62
|
+
<dc:date>2009-03-12T20:28:25Z</dc:date>
|
63
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/PlGLlfD9onQ/</link>
|
64
|
+
<dc:creator>jnunemaker</dc:creator>
|
65
|
+
<description>&quot;It was a little over a year ago that I set out to try and turn a few mockups into a full-fledged revenue-generating piece of software. For the most part, it&#039;s been a pretty smooth ride, but there have definitely been some lessons learned.&quot;
|
66
|
+
|
67
|
+
I totally agree with almost all of Garrett&#039;s sentiments, though I often work from cafes and the like. Great read. I&#039;m always impressed with Garrett&#039;s writing.<div class="feedflare">
|
68
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=PlGLlfD9onQ:Kf6CoVnu9UE:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=PlGLlfD9onQ:Kf6CoVnu9UE:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
69
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/PlGLlfD9onQ" height="1" width="1"/></description>
|
70
|
+
<dc:subject>programming freelancing business railstips</dc:subject>
|
71
|
+
<taxo:topics>
|
72
|
+
<rdf:Bag>
|
73
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/programming" />
|
74
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/freelancing" />
|
75
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/business" />
|
76
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
77
|
+
</rdf:Bag>
|
78
|
+
</taxo:topics>
|
79
|
+
<feedburner:origLink>http://garrettdimon.com/archives/2009/3/11/independent_software_development/</feedburner:origLink></item>
|
80
|
+
<item rdf:about="http://wonderfullyflawed.com/2009/02/17/rails-forms-microformat/">
|
81
|
+
<title>Rails Forms microformat</title>
|
82
|
+
<dc:date>2009-03-12T19:41:34Z</dc:date>
|
83
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/crZyLixU-dA/</link>
|
84
|
+
<dc:creator>jnunemaker</dc:creator>
|
85
|
+
<description>One of the most comprehensive articles on rails forms. Includes the newly added nested attributes stuff.<div class="feedflare">
|
86
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=crZyLixU-dA:jEU-aMMZvu8:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=crZyLixU-dA:jEU-aMMZvu8:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
87
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/crZyLixU-dA" height="1" width="1"/></description>
|
88
|
+
<dc:subject>rails forms railstips</dc:subject>
|
89
|
+
<taxo:topics>
|
90
|
+
<rdf:Bag>
|
91
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/rails" />
|
92
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/forms" />
|
93
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
94
|
+
</rdf:Bag>
|
95
|
+
</taxo:topics>
|
96
|
+
<feedburner:origLink>http://wonderfullyflawed.com/2009/02/17/rails-forms-microformat/</feedburner:origLink></item>
|
97
|
+
<item rdf:about="http://github.com/benschwarz/passenger-stack/tree/master">
|
98
|
+
<title>benschwarz's passenger-stack</title>
|
99
|
+
<dc:date>2009-03-12T19:33:19Z</dc:date>
|
100
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/OcSB78dmmng/master</link>
|
101
|
+
<dc:creator>jnunemaker</dc:creator>
|
102
|
+
<description>&quot;Sprinkles for Apache, Passenger, Memcached, Git, Mysql or Postgres.&quot; Looks like a super quick way to install a full rails stack. Looking forward to trying this out.<div class="feedflare">
|
103
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=OcSB78dmmng:f1iqlW8ZAZc:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=OcSB78dmmng:f1iqlW8ZAZc:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
104
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/OcSB78dmmng" height="1" width="1"/></description>
|
105
|
+
<dc:subject>rails sprinkle apache railstips deployment</dc:subject>
|
106
|
+
<taxo:topics>
|
107
|
+
<rdf:Bag>
|
108
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/rails" />
|
109
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/sprinkle" />
|
110
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/apache" />
|
111
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
112
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/deployment" />
|
113
|
+
</rdf:Bag>
|
114
|
+
</taxo:topics>
|
115
|
+
<feedburner:origLink>http://github.com/benschwarz/passenger-stack/tree/master</feedburner:origLink></item>
|
116
|
+
<item rdf:about="http://nextupdate.com/blog/archives/2009/03/implementing-search/">
|
117
|
+
<title>Implementing Search</title>
|
118
|
+
<dc:date>2009-03-12T06:48:11Z</dc:date>
|
119
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/z25JVsvibAo/</link>
|
120
|
+
<dc:creator>jnunemaker</dc:creator>
|
121
|
+
<description>Great post by Garrett Dimon on how he implemented search for Sifter using Sphynx. Very detailed, including illustrations.<div class="feedflare">
|
122
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=z25JVsvibAo:5Yk7opiDS4o:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=z25JVsvibAo:5Yk7opiDS4o:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
123
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/z25JVsvibAo" height="1" width="1"/></description>
|
124
|
+
<dc:subject>railstips search sphynx</dc:subject>
|
125
|
+
<taxo:topics>
|
126
|
+
<rdf:Bag>
|
127
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
128
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/search" />
|
129
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/sphynx" />
|
130
|
+
</rdf:Bag>
|
131
|
+
</taxo:topics>
|
132
|
+
<feedburner:origLink>http://nextupdate.com/blog/archives/2009/03/implementing-search/</feedburner:origLink></item>
|
133
|
+
<item rdf:about="http://hackd.thrivesmarthq.com/how-to-setup-a-linux-server-for-ruby-on-rails-with-github-and-phusion-passenger">
|
134
|
+
<title>How-To Setup a Linux Server for Ruby on Rails - with Phusion Passenger and GitHub</title>
|
135
|
+
<dc:date>2009-03-12T06:42:11Z</dc:date>
|
136
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/5g3pjEJaDa8/how-to-setup-a-linux-server-for-ruby-on-rails-with-github-and-phusion-passenger</link>
|
137
|
+
<dc:creator>jnunemaker</dc:creator>
|
138
|
+
<description>&quot;This document serves as a comprehensive how-to to setup and deploy your typical Ruby on Rails application on a blank new *nix (Unix, Linux, etc.) server.&quot;<div class="feedflare">
|
139
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=5g3pjEJaDa8:1vd7NOzvhCY:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=5g3pjEJaDa8:1vd7NOzvhCY:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
140
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/5g3pjEJaDa8" height="1" width="1"/></description>
|
141
|
+
<dc:subject>github rails unix deployment railstips</dc:subject>
|
142
|
+
<taxo:topics>
|
143
|
+
<rdf:Bag>
|
144
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/github" />
|
145
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/rails" />
|
146
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/unix" />
|
147
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/deployment" />
|
148
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
149
|
+
</rdf:Bag>
|
150
|
+
</taxo:topics>
|
151
|
+
<feedburner:origLink>http://hackd.thrivesmarthq.com/how-to-setup-a-linux-server-for-ruby-on-rails-with-github-and-phusion-passenger</feedburner:origLink></item>
|
152
|
+
<item rdf:about="http://github.com/Fingertips/nap/tree/master">
|
153
|
+
<title>Fingertips's nap</title>
|
154
|
+
<dc:date>2009-03-12T06:41:09Z</dc:date>
|
155
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/Ght4-4SIUZM/master</link>
|
156
|
+
<dc:creator>jnunemaker</dc:creator>
|
157
|
+
<description>&quot;Nap is a really simple REST API.&quot; Basically a sane API for net/http. Like HTTParty, but missing the converting of xml and json responses into ruby hashes.<div class="feedflare">
|
158
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=Ght4-4SIUZM:mdqRwxkEk-U:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=Ght4-4SIUZM:mdqRwxkEk-U:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
159
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/Ght4-4SIUZM" height="1" width="1"/></description>
|
160
|
+
<dc:subject>rest ruby net http railstips</dc:subject>
|
161
|
+
<taxo:topics>
|
162
|
+
<rdf:Bag>
|
163
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/rest" />
|
164
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/ruby" />
|
165
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/net" />
|
166
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/http" />
|
167
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
168
|
+
</rdf:Bag>
|
169
|
+
</taxo:topics>
|
170
|
+
<feedburner:origLink>http://github.com/Fingertips/nap/tree/master</feedburner:origLink></item>
|
171
|
+
<item rdf:about="http://onrails.org/articles/2009/03/06/integrating-ftp-with-rails">
|
172
|
+
<title>Integrating FTP with Rails</title>
|
173
|
+
<dc:date>2009-03-10T18:09:49Z</dc:date>
|
174
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/IlVp6VGN5mM/integrating-ftp-with-rails</link>
|
175
|
+
<dc:creator>jnunemaker</dc:creator>
|
176
|
+
<description>Pretty interesting article on how to integrate ftp with your rails app. I would maybe swap out a few things but very nifty.<div class="feedflare">
|
177
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=IlVp6VGN5mM:DdojK1iPKK4:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=IlVp6VGN5mM:DdojK1iPKK4:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
178
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/IlVp6VGN5mM" height="1" width="1"/></description>
|
179
|
+
<dc:subject>ftp rails railstips pureftpd</dc:subject>
|
180
|
+
<taxo:topics>
|
181
|
+
<rdf:Bag>
|
182
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/ftp" />
|
183
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/rails" />
|
184
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
185
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/pureftpd" />
|
186
|
+
</rdf:Bag>
|
187
|
+
</taxo:topics>
|
188
|
+
<feedburner:origLink>http://onrails.org/articles/2009/03/06/integrating-ftp-with-rails</feedburner:origLink></item>
|
189
|
+
<item rdf:about="http://opensource.plurk.com/LightCloud">
|
190
|
+
<title>LightCloud</title>
|
191
|
+
<dc:date>2009-03-05T01:26:11Z</dc:date>
|
192
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/qtktAlFSiMg/LightCloud</link>
|
193
|
+
<dc:creator>jnunemaker</dc:creator>
|
194
|
+
<description>&quot;Distributed and persistent key-value database.&quot; Lightcloud is &quot;not a replacement for memcached or MySQL - it&#039;s a complement that can be used in situations where your data does not fit that well into the relational model.&quot;<div class="feedflare">
|
195
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=qtktAlFSiMg:rzQJSVEUcsw:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=qtktAlFSiMg:rzQJSVEUcsw:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
196
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/qtktAlFSiMg" height="1" width="1"/></description>
|
197
|
+
<dc:subject>lightcloud key-value tokyotyrant plurk databases railstips</dc:subject>
|
198
|
+
<taxo:topics>
|
199
|
+
<rdf:Bag>
|
200
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/lightcloud" />
|
201
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/key-value" />
|
202
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/tokyotyrant" />
|
203
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/plurk" />
|
204
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/databases" />
|
205
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
206
|
+
</rdf:Bag>
|
207
|
+
</taxo:topics>
|
208
|
+
<feedburner:origLink>http://opensource.plurk.com/LightCloud</feedburner:origLink></item>
|
209
|
+
<item rdf:about="http://buddingrubyist.com/2009/02/14/how-to-speed-up-gem-installs-10x/">
|
210
|
+
<title>How to speed up gem installs 10x</title>
|
211
|
+
<dc:date>2009-02-28T04:56:17Z</dc:date>
|
212
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/cd343GhTpzg/</link>
|
213
|
+
<dc:creator>jnunemaker</dc:creator>
|
214
|
+
<description>Lovely tip on how to setup gem install to use --no-rdoc and --no-ri by default. Sweet.<div class="feedflare">
|
215
|
+
<a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=cd343GhTpzg:wWsV3iP6QK8:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds2.feedburner.com/~ff/railsquicktips?a=cd343GhTpzg:wWsV3iP6QK8:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/railsquicktips?d=7Q72WNTAKBA" border="0"></img></a>
|
216
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/cd343GhTpzg" height="1" width="1"/></description>
|
217
|
+
<dc:subject>ruby gems installation railstips</dc:subject>
|
218
|
+
<taxo:topics>
|
219
|
+
<rdf:Bag>
|
220
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/ruby" />
|
221
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/gems" />
|
222
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/installation" />
|
223
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
224
|
+
</rdf:Bag>
|
225
|
+
</taxo:topics>
|
226
|
+
<feedburner:origLink>http://buddingrubyist.com/2009/02/14/how-to-speed-up-gem-installs-10x/</feedburner:origLink></item>
|
227
|
+
<item rdf:about="http://push.cx/2008/deploying-crontab-with-your-rails-app">
|
228
|
+
<title>Deploying Crontab With Your Rails App</title>
|
229
|
+
<dc:date>2009-02-24T21:24:16Z</dc:date>
|
230
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/ipIieD_KEnc/deploying-crontab-with-your-rails-app</link>
|
231
|
+
<dc:creator>jnunemaker</dc:creator>
|
232
|
+
<description>Pretty cool idea of installing a crontab with each deploy of your app.<div class="feedflare">
|
233
|
+
<a href="http://feeds2.feedburner.com/~f/railsquicktips?a=mii32c5H"><img src="http://feeds2.feedburner.com/~f/railsquicktips?d=41" border="0"></img></a> <a href="http://feeds2.feedburner.com/~f/railsquicktips?a=UwSVtb3b"><img src="http://feeds2.feedburner.com/~f/railsquicktips?d=50" border="0"></img></a>
|
234
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/ipIieD_KEnc" height="1" width="1"/></description>
|
235
|
+
<dc:subject>railstips cron capistrano deployment</dc:subject>
|
236
|
+
<taxo:topics>
|
237
|
+
<rdf:Bag>
|
238
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
239
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/cron" />
|
240
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/capistrano" />
|
241
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/deployment" />
|
242
|
+
</rdf:Bag>
|
243
|
+
</taxo:topics>
|
244
|
+
<feedburner:origLink>http://push.cx/2008/deploying-crontab-with-your-rails-app</feedburner:origLink></item>
|
245
|
+
<item rdf:about="http://www.coffeepowered.net/2009/02/15/graceful-degredation-using-gravatar-as-a-fallback-avatar-with-paperclip/">
|
246
|
+
<title>Using Gravatar as a fallback avatar with Paperclip</title>
|
247
|
+
<dc:date>2009-02-24T21:22:49Z</dc:date>
|
248
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/a64avpCNh4k/</link>
|
249
|
+
<dc:creator>jnunemaker</dc:creator>
|
250
|
+
<description>How to use paperclip for avatars and fall back to gravatar. I would say just pick one or the other but still interesting.<div class="feedflare">
|
251
|
+
<a href="http://feeds2.feedburner.com/~f/railsquicktips?a=WHKu1Khh"><img src="http://feeds2.feedburner.com/~f/railsquicktips?d=41" border="0"></img></a> <a href="http://feeds2.feedburner.com/~f/railsquicktips?a=Ehun8PRd"><img src="http://feeds2.feedburner.com/~f/railsquicktips?d=50" border="0"></img></a>
|
252
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/a64avpCNh4k" height="1" width="1"/></description>
|
253
|
+
<dc:subject>railstips</dc:subject>
|
254
|
+
<taxo:topics>
|
255
|
+
<rdf:Bag>
|
256
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
257
|
+
</rdf:Bag>
|
258
|
+
</taxo:topics>
|
259
|
+
<feedburner:origLink>http://www.coffeepowered.net/2009/02/15/graceful-degredation-using-gravatar-as-a-fallback-avatar-with-paperclip/</feedburner:origLink></item>
|
260
|
+
<item rdf:about="http://code.google.com/apis/gdata/articles/gdata_on_rails.html">
|
261
|
+
<title>Google Data on Rails</title>
|
262
|
+
<dc:date>2009-02-24T20:42:26Z</dc:date>
|
263
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/Bv8sdF19W7E/gdata_on_rails.html</link>
|
264
|
+
<dc:creator>jnunemaker</dc:creator>
|
265
|
+
<description>&quot;Motivated by the ferocious appetite of our developers and the enduring popularity of Ruby on Rails (RoR), my colleague Jeff Fisher has forged a Ruby utility library from the fiery depths of Mount Doom.&quot; Hahaha. We Ruby developers are passionate and annoying, aren&#039;t we?<div class="feedflare">
|
266
|
+
<a href="http://feeds2.feedburner.com/~f/railsquicktips?a=EPY2Ix2U"><img src="http://feeds2.feedburner.com/~f/railsquicktips?d=41" border="0"></img></a> <a href="http://feeds2.feedburner.com/~f/railsquicktips?a=9G8WJ8OL"><img src="http://feeds2.feedburner.com/~f/railsquicktips?d=50" border="0"></img></a>
|
267
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/Bv8sdF19W7E" height="1" width="1"/></description>
|
268
|
+
<dc:subject>google railstips ruby rails</dc:subject>
|
269
|
+
<taxo:topics>
|
270
|
+
<rdf:Bag>
|
271
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/google" />
|
272
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
273
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/ruby" />
|
274
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/rails" />
|
275
|
+
</rdf:Bag>
|
276
|
+
</taxo:topics>
|
277
|
+
<feedburner:origLink>http://code.google.com/apis/gdata/articles/gdata_on_rails.html</feedburner:origLink></item>
|
278
|
+
<item rdf:about="http://getsprockets.org/">
|
279
|
+
<title>JavaScript dependency management and concatenation: Sprockets</title>
|
280
|
+
<dc:date>2009-02-20T01:46:51Z</dc:date>
|
281
|
+
<link>http://feedproxy.google.com/~r/railsquicktips/~3/FHyFVzxLToE/</link>
|
282
|
+
<dc:creator>jnunemaker</dc:creator>
|
283
|
+
<description>&quot;Sprockets is a Ruby library that preprocesses and concatenates JavaScript source files.&quot; New from Sam Stephenson.<div class="feedflare">
|
284
|
+
<a href="http://feeds2.feedburner.com/~f/railsquicktips?a=7ZFMClQx"><img src="http://feeds2.feedburner.com/~f/railsquicktips?d=41" border="0"></img></a> <a href="http://feeds2.feedburner.com/~f/railsquicktips?a=RorJX9SL"><img src="http://feeds2.feedburner.com/~f/railsquicktips?d=50" border="0"></img></a>
|
285
|
+
</div><img src="http://feeds2.feedburner.com/~r/railsquicktips/~4/FHyFVzxLToE" height="1" width="1"/></description>
|
286
|
+
<dc:subject>javascript ruby railstips</dc:subject>
|
287
|
+
<taxo:topics>
|
288
|
+
<rdf:Bag>
|
289
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/javascript" />
|
290
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/ruby" />
|
291
|
+
<rdf:li rdf:resource="http://delicious.com/jnunemaker/railstips" />
|
292
|
+
</rdf:Bag>
|
293
|
+
</taxo:topics>
|
294
|
+
<feedburner:origLink>http://getsprockets.org/</feedburner:origLink></item>
|
295
|
+
</rdf:RDF>
|
@@ -0,0 +1,1071 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
5
|
+
<title>RailsTips by John Nunemaker</title>
|
6
|
+
<link href="http://static.railstips.org/stylesheets/common.css" rel="stylesheet" type="text/css" />
|
7
|
+
|
8
|
+
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
|
9
|
+
<script type="text/javascript">jQuery.noConflict();</script>
|
10
|
+
<script type="text/javascript" src="http://static.blawgtips.com/javascripts/network.js"></script>
|
11
|
+
|
12
|
+
<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6/prototype.js" type="text/javascript"></script>
|
13
|
+
<script src="http://static.railstips.org/javascripts/code_highlighter.js" type="text/javascript"></script>
|
14
|
+
<script src="http://static.railstips.org/javascripts/application.js" type="text/javascript"></script>
|
15
|
+
<script src="http://mint.railstips.org/mint/?js" type="text/javascript"></script>
|
16
|
+
|
17
|
+
<link href="http://feeds.feedburner.com/railstips" rel="alternate" type="application/atom+xml" title="Railstips Articles" />
|
18
|
+
<link href="http://feeds.feedburner.com/railsquicktips" rel="alternate" type="application/atom+xml" title="Rails Quick Tips (links)" />
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
|
22
|
+
<div id="wrapper">
|
23
|
+
<div id="header">
|
24
|
+
<h3><a href="/">Rails<span>Tips</span></a></h3>
|
25
|
+
<p>One man, feverishly posting everything he learns. <a href="#more" id="more_slide">more »</a></p>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div id="content">
|
29
|
+
<div id="primary">
|
30
|
+
|
31
|
+
<div class="post">
|
32
|
+
<div class="when">
|
33
|
+
<h3>March 25th, 2009</h3>
|
34
|
+
<p class="author">Posted by John</p>
|
35
|
+
|
36
|
+
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<div class="title">
|
40
|
+
<h1><a href="/2009/3/25/building-api-wrapping-gems-could-not-get-much-easier" title="Building API Wrapping Gems Could Not Get Much Easier">Building API Wrapping Gems Could Not Get Much Easier</a></h1>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div class="body">
|
44
|
+
|
45
|
+
|
46
|
+
<div class="excerpt">
|
47
|
+
<p>In which I show how easy it is now to create ruby gems that wrap APIs, using Google Weather as an example.</p>
|
48
|
+
</div>
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
</div>
|
54
|
+
|
55
|
+
<div class="meta">
|
56
|
+
<p>
|
57
|
+
Tags: <a href="/tags/api" rel="tag" title="api">api</a>, <a href="/tags/gems" rel="tag" title="gems">gems</a>, <a href="/tags/google" rel="tag" title="google">google</a>, <a href="/tags/testing" rel="tag" title="testing">testing</a>
|
58
|
+
|
59
|
+
|
60
|
+
| <a href="/2009/3/25/building-api-wrapping-gems-could-not-get-much-easier#comments" class="commentslink">1 comments</a>
|
61
|
+
|
62
|
+
</p>
|
63
|
+
</div>
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
</div>
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
<div class="post">
|
72
|
+
<div class="when">
|
73
|
+
<h3>March 24th, 2009</h3>
|
74
|
+
<p class="author">Posted by John</p>
|
75
|
+
|
76
|
+
|
77
|
+
</div>
|
78
|
+
|
79
|
+
<div class="title">
|
80
|
+
<h1><a href="/2009/3/24/custom-matchers-for-matchy" title="Custom Matchers for Matchy">Custom Matchers for Matchy</a></h1>
|
81
|
+
</div>
|
82
|
+
|
83
|
+
<div class="body">
|
84
|
+
|
85
|
+
|
86
|
+
<div class="excerpt">
|
87
|
+
<p>In which I show all the dirty secrets of custom matchers using matchy.</p>
|
88
|
+
</div>
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
</div>
|
94
|
+
|
95
|
+
<div class="meta">
|
96
|
+
<p>
|
97
|
+
Tags: <a href="/tags/matchy" rel="tag" title="matchy">matchy</a>, <a href="/tags/testing" rel="tag" title="testing">testing</a>
|
98
|
+
|
99
|
+
|
100
|
+
| <a href="/2009/3/24/custom-matchers-for-matchy#comments" class="commentslink">2 comments</a>
|
101
|
+
|
102
|
+
</p>
|
103
|
+
</div>
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
</div>
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
<div class="post">
|
112
|
+
<div class="when">
|
113
|
+
<h3>March 23rd, 2009</h3>
|
114
|
+
<p class="author">Posted by John</p>
|
115
|
+
|
116
|
+
|
117
|
+
</div>
|
118
|
+
|
119
|
+
<div class="title">
|
120
|
+
<h1><a href="/2009/3/23/httparty-example-mymilemarker-com" title="HTTParty Example: MyMileMarker.com">HTTParty Example: MyMileMarker.com</a></h1>
|
121
|
+
</div>
|
122
|
+
|
123
|
+
<div class="body">
|
124
|
+
|
125
|
+
|
126
|
+
<div class="excerpt">
|
127
|
+
<p>In which I show an example of how to use HTTParty to consume the MyMileMarker undocumented <span class="caps">API</span>.</p>
|
128
|
+
</div>
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
</div>
|
134
|
+
|
135
|
+
<div class="meta">
|
136
|
+
<p>
|
137
|
+
Tags: <a href="/tags/httparty" rel="tag" title="httparty">httparty</a>, <a href="/tags/xml" rel="tag" title="xml">xml</a>
|
138
|
+
|
139
|
+
|
140
|
+
| <a href="/2009/3/23/httparty-example-mymilemarker-com#comments" class="commentslink">2 comments</a>
|
141
|
+
|
142
|
+
</p>
|
143
|
+
</div>
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
</div>
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
<div class="post">
|
152
|
+
<div class="when">
|
153
|
+
<h3>March 12th, 2009</h3>
|
154
|
+
<p class="author">Posted by John</p>
|
155
|
+
|
156
|
+
|
157
|
+
</div>
|
158
|
+
|
159
|
+
<div class="title">
|
160
|
+
<h1><a href="/2009/3/12/3-simple-guidelines-for-contributing" title="3 Simple Guidelines for Contributing">3 Simple Guidelines for Contributing</a></h1>
|
161
|
+
</div>
|
162
|
+
|
163
|
+
<div class="body">
|
164
|
+
|
165
|
+
|
166
|
+
<div class="excerpt">
|
167
|
+
<p>In which I describe simple guidelines for contributing to other people’s open source projects.</p>
|
168
|
+
</div>
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
</div>
|
174
|
+
|
175
|
+
<div class="meta">
|
176
|
+
<p>
|
177
|
+
Tags: <a href="/tags/contributing" rel="tag" title="contributing">contributing</a>, <a href="/tags/thoughts" rel="tag" title="thoughts">thoughts</a>
|
178
|
+
|
179
|
+
|
180
|
+
| <a href="/2009/3/12/3-simple-guidelines-for-contributing#comments" class="commentslink">1 comments</a>
|
181
|
+
|
182
|
+
</p>
|
183
|
+
</div>
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
</div>
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
<div class="post">
|
192
|
+
<div class="when">
|
193
|
+
<h3>March 4th, 2009</h3>
|
194
|
+
<p class="author">Posted by John</p>
|
195
|
+
|
196
|
+
|
197
|
+
</div>
|
198
|
+
|
199
|
+
<div class="title">
|
200
|
+
<h1><a href="/2009/3/4/following-redirects-with-net-http" title="Following Redirects with Net/HTTP">Following Redirects with Net/HTTP</a></h1>
|
201
|
+
</div>
|
202
|
+
|
203
|
+
<div class="body">
|
204
|
+
|
205
|
+
|
206
|
+
<div class="excerpt">
|
207
|
+
<p>In which I revive clogging by presenting a simple class that follows a limited number of redirects on its journey to an endpoint.</p>
|
208
|
+
</div>
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
</div>
|
214
|
+
|
215
|
+
<div class="meta">
|
216
|
+
<p>
|
217
|
+
Tags: <a href="/tags/clogging" rel="tag" title="clogging">clogging</a>, <a href="/tags/http" rel="tag" title="http">http</a>, <a href="/tags/net" rel="tag" title="net">net</a>, <a href="/tags/redirects" rel="tag" title="redirects">redirects</a>
|
218
|
+
|
219
|
+
|
220
|
+
| <a href="/2009/3/4/following-redirects-with-net-http#comments" class="commentslink">2 comments</a>
|
221
|
+
|
222
|
+
</p>
|
223
|
+
</div>
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
</div>
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
<div class="post">
|
232
|
+
<div class="when">
|
233
|
+
<h3>March 1st, 2009</h3>
|
234
|
+
<p class="author">Posted by John</p>
|
235
|
+
|
236
|
+
|
237
|
+
</div>
|
238
|
+
|
239
|
+
<div class="title">
|
240
|
+
<h1><a href="/2009/3/1/first-time-in-print" title="First Time in Print">First Time in Print</a></h1>
|
241
|
+
</div>
|
242
|
+
|
243
|
+
<div class="body">
|
244
|
+
|
245
|
+
|
246
|
+
<div class="excerpt">
|
247
|
+
<p>In which I mention my first time in print, an article for the first issue of Rails magazine.</p>
|
248
|
+
</div>
|
249
|
+
|
250
|
+
|
251
|
+
|
252
|
+
|
253
|
+
</div>
|
254
|
+
|
255
|
+
<div class="meta">
|
256
|
+
<p>
|
257
|
+
Tags: <a href="/tags/magazine" rel="tag" title="magazine">magazine</a>, <a href="/tags/web%20hooks" rel="tag" title="web hooks">web hooks</a>
|
258
|
+
|
259
|
+
|
260
|
+
| <a href="/2009/3/1/first-time-in-print#comments" class="commentslink">6 comments</a>
|
261
|
+
|
262
|
+
</p>
|
263
|
+
</div>
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
</div>
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
<div class="post">
|
272
|
+
<div class="when">
|
273
|
+
<h3>February 21st, 2009</h3>
|
274
|
+
<p class="author">Posted by John</p>
|
275
|
+
|
276
|
+
|
277
|
+
</div>
|
278
|
+
|
279
|
+
<div class="title">
|
280
|
+
<h1><a href="/2009/2/21/shoulda-looked-at-it-sooner" title="Shoulda Looked At It Sooner">Shoulda Looked At It Sooner</a></h1>
|
281
|
+
</div>
|
282
|
+
|
283
|
+
<div class="body">
|
284
|
+
|
285
|
+
|
286
|
+
<div class="excerpt">
|
287
|
+
<p>In which I explain what I like about shoulda after using it for a few hours.</p>
|
288
|
+
</div>
|
289
|
+
|
290
|
+
|
291
|
+
|
292
|
+
|
293
|
+
</div>
|
294
|
+
|
295
|
+
<div class="meta">
|
296
|
+
<p>
|
297
|
+
Tags: <a href="/tags/shoulda" rel="tag" title="shoulda">shoulda</a>, <a href="/tags/testing" rel="tag" title="testing">testing</a>
|
298
|
+
|
299
|
+
|
300
|
+
| <a href="/2009/2/21/shoulda-looked-at-it-sooner#comments" class="commentslink">12 comments</a>
|
301
|
+
|
302
|
+
</p>
|
303
|
+
</div>
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
</div>
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
<div class="post">
|
312
|
+
<div class="when">
|
313
|
+
<h3>February 2nd, 2009</h3>
|
314
|
+
<p class="author">Posted by John</p>
|
315
|
+
|
316
|
+
|
317
|
+
</div>
|
318
|
+
|
319
|
+
<div class="title">
|
320
|
+
<h1><a href="/2009/2/2/bedazzle-your-bash-prompt-with-git-info" title="Bedazzle Your Bash Prompt with Git Info">Bedazzle Your Bash Prompt with Git Info</a></h1>
|
321
|
+
</div>
|
322
|
+
|
323
|
+
<div class="body">
|
324
|
+
|
325
|
+
|
326
|
+
<div class="excerpt">
|
327
|
+
<p>In which I show how to bedazzle your bash prompt with color and the current git branch.</p>
|
328
|
+
</div>
|
329
|
+
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
</div>
|
334
|
+
|
335
|
+
<div class="meta">
|
336
|
+
<p>
|
337
|
+
Tags: <a href="/tags/bash" rel="tag" title="bash">bash</a>, <a href="/tags/command%20line" rel="tag" title="command line">command line</a>, <a href="/tags/git" rel="tag" title="git">git</a>
|
338
|
+
|
339
|
+
|
340
|
+
| <a href="/2009/2/2/bedazzle-your-bash-prompt-with-git-info#comments" class="commentslink">11 comments</a>
|
341
|
+
|
342
|
+
</p>
|
343
|
+
</div>
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
</div>
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
<div class="post">
|
352
|
+
<div class="when">
|
353
|
+
<h3>January 31st, 2009</h3>
|
354
|
+
<p class="author">Posted by John</p>
|
355
|
+
|
356
|
+
|
357
|
+
</div>
|
358
|
+
|
359
|
+
<div class="title">
|
360
|
+
<h1><a href="/2009/1/31/httparty-divorces-json" title="HTTParty Divorces JSON">HTTParty Divorces JSON</a></h1>
|
361
|
+
</div>
|
362
|
+
|
363
|
+
<div class="body">
|
364
|
+
|
365
|
+
|
366
|
+
<div class="excerpt">
|
367
|
+
<p>In which I describe the slaying of HTTParty’s lone remaining dependency, the formidable <span class="caps">JSON</span> gem.</p>
|
368
|
+
</div>
|
369
|
+
|
370
|
+
|
371
|
+
|
372
|
+
|
373
|
+
</div>
|
374
|
+
|
375
|
+
<div class="meta">
|
376
|
+
<p>
|
377
|
+
Tags: <a href="/tags/httparty" rel="tag" title="httparty">httparty</a>, <a href="/tags/json" rel="tag" title="json">json</a>
|
378
|
+
|
379
|
+
|
380
|
+
| <a href="/2009/1/31/httparty-divorces-json#comments" class="commentslink">13 comments</a>
|
381
|
+
|
382
|
+
</p>
|
383
|
+
</div>
|
384
|
+
|
385
|
+
|
386
|
+
|
387
|
+
</div>
|
388
|
+
|
389
|
+
|
390
|
+
|
391
|
+
<div class="post">
|
392
|
+
<div class="when">
|
393
|
+
<h3>January 28th, 2009</h3>
|
394
|
+
<p class="author">Posted by John</p>
|
395
|
+
|
396
|
+
|
397
|
+
</div>
|
398
|
+
|
399
|
+
<div class="title">
|
400
|
+
<h1><a href="/2009/1/28/httparty-meet-mr-response" title="HTTParty Meet Mr. Response">HTTParty Meet Mr. Response</a></h1>
|
401
|
+
</div>
|
402
|
+
|
403
|
+
<div class="body">
|
404
|
+
|
405
|
+
|
406
|
+
<div class="excerpt">
|
407
|
+
<p>In which HTTParty gets a first class response object, thus exposing the original body and response code.</p>
|
408
|
+
</div>
|
409
|
+
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
</div>
|
414
|
+
|
415
|
+
<div class="meta">
|
416
|
+
<p>
|
417
|
+
Tags: <a href="/tags/httparty" rel="tag" title="httparty">httparty</a>
|
418
|
+
|
419
|
+
|
420
|
+
| <a href="/2009/1/28/httparty-meet-mr-response#comments" class="commentslink">11 comments</a>
|
421
|
+
|
422
|
+
</p>
|
423
|
+
</div>
|
424
|
+
|
425
|
+
|
426
|
+
|
427
|
+
</div>
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
<div class="post">
|
432
|
+
<div class="when">
|
433
|
+
<h3>January 7th, 2009</h3>
|
434
|
+
<p class="author">Posted by John</p>
|
435
|
+
|
436
|
+
|
437
|
+
</div>
|
438
|
+
|
439
|
+
<div class="title">
|
440
|
+
<h1><a href="/2009/1/8/test-or-die-validates-uniqueness-of" title="Test Or Die: Validates Uniqueness Of">Test Or Die: Validates Uniqueness Of</a></h1>
|
441
|
+
</div>
|
442
|
+
|
443
|
+
<div class="body">
|
444
|
+
|
445
|
+
|
446
|
+
<div class="excerpt">
|
447
|
+
<p>In which I show how to test validates_uniqueness_of with a few different options.</p>
|
448
|
+
</div>
|
449
|
+
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
</div>
|
454
|
+
|
455
|
+
<div class="meta">
|
456
|
+
<p>
|
457
|
+
Tags: <a href="/tags/test%20unit" rel="tag" title="test unit">test unit</a>, <a href="/tags/testing" rel="tag" title="testing">testing</a>, <a href="/tags/validations" rel="tag" title="validations">validations</a>
|
458
|
+
|
459
|
+
|
460
|
+
| <a href="/2009/1/8/test-or-die-validates-uniqueness-of#comments" class="commentslink">22 comments</a>
|
461
|
+
|
462
|
+
</p>
|
463
|
+
</div>
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
</div>
|
468
|
+
|
469
|
+
|
470
|
+
|
471
|
+
<div class="post">
|
472
|
+
<div class="when">
|
473
|
+
<h3>January 7th, 2009</h3>
|
474
|
+
<p class="author">Posted by John</p>
|
475
|
+
|
476
|
+
|
477
|
+
</div>
|
478
|
+
|
479
|
+
<div class="title">
|
480
|
+
<h1><a href="/2009/1/7/my-testing-theory" title="My Testing Theory">My Testing Theory</a></h1>
|
481
|
+
</div>
|
482
|
+
|
483
|
+
<div class="body">
|
484
|
+
|
485
|
+
|
486
|
+
<div class="excerpt">
|
487
|
+
<p>In which I discuss my theories when testing and what I would like to cover this month.</p>
|
488
|
+
</div>
|
489
|
+
|
490
|
+
|
491
|
+
|
492
|
+
|
493
|
+
</div>
|
494
|
+
|
495
|
+
<div class="meta">
|
496
|
+
<p>
|
497
|
+
Tags: <a href="/tags/testing" rel="tag" title="testing">testing</a>, <a href="/tags/theory" rel="tag" title="theory">theory</a>, <a href="/tags/thoughts" rel="tag" title="thoughts">thoughts</a>
|
498
|
+
|
499
|
+
|
500
|
+
| <a href="/2009/1/7/my-testing-theory#comments" class="commentslink">10 comments</a>
|
501
|
+
|
502
|
+
</p>
|
503
|
+
</div>
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
</div>
|
508
|
+
|
509
|
+
|
510
|
+
|
511
|
+
<div class="post">
|
512
|
+
<div class="when">
|
513
|
+
<h3>January 6th, 2009</h3>
|
514
|
+
<p class="author">Posted by John</p>
|
515
|
+
|
516
|
+
|
517
|
+
</div>
|
518
|
+
|
519
|
+
<div class="title">
|
520
|
+
<h1><a href="/2009/1/6/test-or-die" title="Test Or Die">Test Or Die</a></h1>
|
521
|
+
</div>
|
522
|
+
|
523
|
+
<div class="body">
|
524
|
+
|
525
|
+
|
526
|
+
<div class="excerpt">
|
527
|
+
<p>In which I beg the community to start testing if you aren’t or start helping others if you are.</p>
|
528
|
+
</div>
|
529
|
+
|
530
|
+
|
531
|
+
|
532
|
+
|
533
|
+
</div>
|
534
|
+
|
535
|
+
<div class="meta">
|
536
|
+
<p>
|
537
|
+
Tags: <a href="/tags/test%20unit" rel="tag" title="test unit">test unit</a>, <a href="/tags/testing" rel="tag" title="testing">testing</a>, <a href="/tags/validations" rel="tag" title="validations">validations</a>
|
538
|
+
|
539
|
+
|
540
|
+
| <a href="/2009/1/6/test-or-die#comments" class="commentslink">35 comments</a>
|
541
|
+
|
542
|
+
</p>
|
543
|
+
</div>
|
544
|
+
|
545
|
+
|
546
|
+
|
547
|
+
</div>
|
548
|
+
|
549
|
+
|
550
|
+
|
551
|
+
<div class="post">
|
552
|
+
<div class="when">
|
553
|
+
<h3>January 5th, 2009</h3>
|
554
|
+
<p class="author">Posted by John</p>
|
555
|
+
|
556
|
+
|
557
|
+
</div>
|
558
|
+
|
559
|
+
<div class="title">
|
560
|
+
<h1><a href="/2009/1/5/my-setup-and-software" title="My Setup and Software">My Setup and Software</a></h1>
|
561
|
+
</div>
|
562
|
+
|
563
|
+
<div class="body">
|
564
|
+
|
565
|
+
|
566
|
+
<div class="excerpt">
|
567
|
+
<p>In which I divulge the hardware and software that I use to get the job done.</p>
|
568
|
+
</div>
|
569
|
+
|
570
|
+
|
571
|
+
|
572
|
+
|
573
|
+
</div>
|
574
|
+
|
575
|
+
<div class="meta">
|
576
|
+
<p>
|
577
|
+
Tags: <a href="/tags/hardware" rel="tag" title="hardware">hardware</a>, <a href="/tags/software" rel="tag" title="software">software</a>
|
578
|
+
|
579
|
+
|
580
|
+
| <a href="/2009/1/5/my-setup-and-software#comments" class="commentslink">24 comments</a>
|
581
|
+
|
582
|
+
</p>
|
583
|
+
</div>
|
584
|
+
|
585
|
+
|
586
|
+
|
587
|
+
</div>
|
588
|
+
|
589
|
+
|
590
|
+
|
591
|
+
<div class="post">
|
592
|
+
<div class="when">
|
593
|
+
<h3>January 5th, 2009</h3>
|
594
|
+
<p class="author">Posted by John</p>
|
595
|
+
|
596
|
+
|
597
|
+
</div>
|
598
|
+
|
599
|
+
<div class="title">
|
600
|
+
<h1><a href="/2009/1/5/httparty-goes-commando" title="HTTParty Goes Commando">HTTParty Goes Commando</a></h1>
|
601
|
+
</div>
|
602
|
+
|
603
|
+
<div class="body">
|
604
|
+
|
605
|
+
|
606
|
+
<div class="excerpt">
|
607
|
+
<p>In which I describe the new hot command line interface for HTTParty.</p>
|
608
|
+
</div>
|
609
|
+
|
610
|
+
|
611
|
+
|
612
|
+
|
613
|
+
</div>
|
614
|
+
|
615
|
+
<div class="meta">
|
616
|
+
<p>
|
617
|
+
Tags: <a href="/tags/command%20line" rel="tag" title="command line">command line</a>, <a href="/tags/httparty" rel="tag" title="httparty">httparty</a>
|
618
|
+
|
619
|
+
|
620
|
+
| <a href="/2009/1/5/httparty-goes-commando#comments" class="commentslink">9 comments</a>
|
621
|
+
|
622
|
+
</p>
|
623
|
+
</div>
|
624
|
+
|
625
|
+
|
626
|
+
|
627
|
+
</div>
|
628
|
+
|
629
|
+
|
630
|
+
|
631
|
+
<div class="post">
|
632
|
+
<div class="when">
|
633
|
+
<h3>January 3rd, 2009</h3>
|
634
|
+
<p class="author">Posted by John</p>
|
635
|
+
|
636
|
+
|
637
|
+
</div>
|
638
|
+
|
639
|
+
<div class="title">
|
640
|
+
<h1><a href="/2009/1/3/look-at-the-size-of-my-footer" title="Look at the Size of My Footer">Look at the Size of My Footer</a></h1>
|
641
|
+
</div>
|
642
|
+
|
643
|
+
<div class="body">
|
644
|
+
|
645
|
+
|
646
|
+
<div class="excerpt">
|
647
|
+
<p>In which I discuss the latest updates to RailsTips—a footer full of links and live preview of comments.</p>
|
648
|
+
</div>
|
649
|
+
|
650
|
+
|
651
|
+
|
652
|
+
|
653
|
+
</div>
|
654
|
+
|
655
|
+
<div class="meta">
|
656
|
+
<p>
|
657
|
+
Tags: <a href="/tags/javascript" rel="tag" title="javascript">javascript</a>, <a href="/tags/mint" rel="tag" title="mint">mint</a>, <a href="/tags/pipes" rel="tag" title="pipes">pipes</a>, <a href="/tags/yahoo" rel="tag" title="yahoo">yahoo</a>
|
658
|
+
|
659
|
+
|
660
|
+
| <a href="/2009/1/3/look-at-the-size-of-my-footer#comments" class="commentslink">4 comments</a>
|
661
|
+
|
662
|
+
</p>
|
663
|
+
</div>
|
664
|
+
|
665
|
+
|
666
|
+
|
667
|
+
</div>
|
668
|
+
|
669
|
+
|
670
|
+
|
671
|
+
<div class="post">
|
672
|
+
<div class="when">
|
673
|
+
<h3>December 30th, 2008</h3>
|
674
|
+
<p class="author">Posted by John</p>
|
675
|
+
|
676
|
+
|
677
|
+
</div>
|
678
|
+
|
679
|
+
<div class="title">
|
680
|
+
<h1><a href="/2008/12/30/move-it-to-the-model-and-use-tiny-methods" title="Move It To The Model and Use Tiny Methods">Move It To The Model and Use Tiny Methods</a></h1>
|
681
|
+
</div>
|
682
|
+
|
683
|
+
<div class="body">
|
684
|
+
|
685
|
+
|
686
|
+
<div class="excerpt">
|
687
|
+
<p>In which I show how much I use to suck and how to move business logic to the model and break it up into smaller, more easily testable methods.</p>
|
688
|
+
</div>
|
689
|
+
|
690
|
+
|
691
|
+
|
692
|
+
|
693
|
+
</div>
|
694
|
+
|
695
|
+
<div class="meta">
|
696
|
+
<p>
|
697
|
+
Tags: <a href="/tags/refactoring" rel="tag" title="refactoring">refactoring</a>
|
698
|
+
|
699
|
+
|
700
|
+
| <a href="/2008/12/30/move-it-to-the-model-and-use-tiny-methods#comments" class="commentslink">10 comments</a>
|
701
|
+
|
702
|
+
</p>
|
703
|
+
</div>
|
704
|
+
|
705
|
+
|
706
|
+
|
707
|
+
</div>
|
708
|
+
|
709
|
+
|
710
|
+
|
711
|
+
<div class="post">
|
712
|
+
<div class="when">
|
713
|
+
<h3>December 24th, 2008</h3>
|
714
|
+
<p class="author">Posted by John</p>
|
715
|
+
|
716
|
+
|
717
|
+
</div>
|
718
|
+
|
719
|
+
<div class="title">
|
720
|
+
<h1><a href="/2008/12/24/the-rails-beatitudes" title="The Rails Beatitudes">The Rails Beatitudes</a></h1>
|
721
|
+
</div>
|
722
|
+
|
723
|
+
<div class="body">
|
724
|
+
|
725
|
+
|
726
|
+
<div class="excerpt">
|
727
|
+
<p>In which I present some great principles to live by when coding in Ruby and Rails.</p>
|
728
|
+
</div>
|
729
|
+
|
730
|
+
|
731
|
+
|
732
|
+
|
733
|
+
</div>
|
734
|
+
|
735
|
+
<div class="meta">
|
736
|
+
<p>
|
737
|
+
Tags: <a href="/tags/practices" rel="tag" title="practices">practices</a>, <a href="/tags/principles" rel="tag" title="principles">principles</a>, <a href="/tags/thoughts" rel="tag" title="thoughts">thoughts</a>
|
738
|
+
|
739
|
+
|
740
|
+
| <a href="/2008/12/24/the-rails-beatitudes#comments" class="commentslink">1 comments</a>
|
741
|
+
|
742
|
+
</p>
|
743
|
+
</div>
|
744
|
+
|
745
|
+
|
746
|
+
|
747
|
+
</div>
|
748
|
+
|
749
|
+
|
750
|
+
|
751
|
+
<div class="post">
|
752
|
+
<div class="when">
|
753
|
+
<h3>December 22nd, 2008</h3>
|
754
|
+
<p class="author">Posted by John</p>
|
755
|
+
|
756
|
+
|
757
|
+
</div>
|
758
|
+
|
759
|
+
<div class="title">
|
760
|
+
<h1><a href="/2008/12/22/the-top-eight-of-2008" title="The 2008 Smörgåsbord">The 2008 Smörgåsbord</a></h1>
|
761
|
+
</div>
|
762
|
+
|
763
|
+
<div class="body">
|
764
|
+
|
765
|
+
|
766
|
+
<div class="excerpt">
|
767
|
+
<p>In which I cover the best of RailsTips in 2008. Tons of handy links for your consumption.</p>
|
768
|
+
</div>
|
769
|
+
|
770
|
+
|
771
|
+
|
772
|
+
|
773
|
+
</div>
|
774
|
+
|
775
|
+
<div class="meta">
|
776
|
+
<p>
|
777
|
+
Tags: <a href="/tags/deployment" rel="tag" title="deployment">deployment</a>, <a href="/tags/git" rel="tag" title="git">git</a>, <a href="/tags/google" rel="tag" title="google">google</a>, <a href="/tags/httparty" rel="tag" title="httparty">httparty</a>, <a href="/tags/xml" rel="tag" title="xml">xml</a>
|
778
|
+
|
779
|
+
|
780
|
+
| <a href="/2008/12/22/the-top-eight-of-2008#comments" class="commentslink">7 comments</a>
|
781
|
+
|
782
|
+
</p>
|
783
|
+
</div>
|
784
|
+
|
785
|
+
|
786
|
+
|
787
|
+
</div>
|
788
|
+
|
789
|
+
|
790
|
+
|
791
|
+
<div class="post">
|
792
|
+
<div class="when">
|
793
|
+
<h3>December 16th, 2008</h3>
|
794
|
+
<p class="author">Posted by John</p>
|
795
|
+
|
796
|
+
|
797
|
+
</div>
|
798
|
+
|
799
|
+
<div class="title">
|
800
|
+
<h1><a href="/2008/12/17/using-context-and-stump-to-httparty-like-a-wufoo" title="Using Context and Stump to HTTParty like a Wufoo">Using Context and Stump to HTTParty like a Wufoo</a></h1>
|
801
|
+
</div>
|
802
|
+
|
803
|
+
<div class="body">
|
804
|
+
|
805
|
+
|
806
|
+
<div class="excerpt">
|
807
|
+
<p>In which I release a gem to send form submissions to Wufoo and explain how I tested it using Context and Stump.</p>
|
808
|
+
</div>
|
809
|
+
|
810
|
+
|
811
|
+
|
812
|
+
|
813
|
+
</div>
|
814
|
+
|
815
|
+
<div class="meta">
|
816
|
+
<p>
|
817
|
+
Tags: <a href="/tags/context" rel="tag" title="context">context</a>, <a href="/tags/gems" rel="tag" title="gems">gems</a>, <a href="/tags/stump" rel="tag" title="stump">stump</a>, <a href="/tags/testing" rel="tag" title="testing">testing</a>, <a href="/tags/wufoo" rel="tag" title="wufoo">wufoo</a>
|
818
|
+
|
819
|
+
|
820
|
+
| <a href="/2008/12/17/using-context-and-stump-to-httparty-like-a-wufoo#comments" class="commentslink">0 comments</a>
|
821
|
+
|
822
|
+
</p>
|
823
|
+
</div>
|
824
|
+
|
825
|
+
|
826
|
+
|
827
|
+
</div>
|
828
|
+
|
829
|
+
|
830
|
+
|
831
|
+
|
832
|
+
|
833
|
+
|
834
|
+
<div class="post">
|
835
|
+
<a href="/smorgasbord/">« Older Posts</a>
|
836
|
+
</div>
|
837
|
+
</div>
|
838
|
+
|
839
|
+
<div id="secondary">
|
840
|
+
<div class="section">
|
841
|
+
<h3>About</h3>
|
842
|
+
<p>Authored by John Nunemaker (Noo-neh-maker), a web developer and programmer who has fallen deeply in love with Ruby. <a href="/about/">More about John.</a></p>
|
843
|
+
</div>
|
844
|
+
|
845
|
+
<div class="section">
|
846
|
+
<a href="http://orderedlist.com/">
|
847
|
+
<img src="http://static.railstips.org/images/bug.jpg" alt="Hire Me at Ordered List" />
|
848
|
+
</a>
|
849
|
+
</div>
|
850
|
+
|
851
|
+
<div class="section">
|
852
|
+
<h3>Syndication</h3>
|
853
|
+
<p>
|
854
|
+
<img src="http://static.railstips.org/images/feed-icon-12x12-orange.gif" alt="Feed Icon" class="feed_icon" /><a href="http://feeds.feedburner.com/railstips">RailsTips Articles</a> - An assortment of howto's and thoughts on Ruby and Rails. <a href="http://feeds.feedburner.com/railstips" class="chicklet"><img src="http://feeds.feedburner.com/~fc/railstips?bg=aaaaaa&fg=333333&anim=0" height="26" width="88" style="border:0" alt="" /></a>
|
855
|
+
</p>
|
856
|
+
<p>
|
857
|
+
<img src="http://static.railstips.org/images/feed-icon-12x12-orange.gif" alt="Feed Icon" class="feed_icon" /><a href="http://feeds.feedburner.com/railsquicktips">Rails Quick Tips</a> - Ruby and Rails related links that I find. Never more than 5 a day. <a href="http://feeds.feedburner.com/railsquicktips" class="chicklet"><img src="http://feeds.feedburner.com/~fc/railsquicktips?bg=aaaaaa&fg=333333&anim=0" height="26" width="88" style="border:0" alt="" /></a>
|
858
|
+
</p>
|
859
|
+
</div>
|
860
|
+
|
861
|
+
<div class="section">
|
862
|
+
<h3>Search</h3>
|
863
|
+
<form method="get" id="sform" action="/search">
|
864
|
+
<div>
|
865
|
+
<input type="text" id="q" value="" name="q" size="13" />
|
866
|
+
<input type="submit" value="Go" />
|
867
|
+
</div>
|
868
|
+
</form>
|
869
|
+
</div>
|
870
|
+
|
871
|
+
<script src="http://errcount.com/ctr/21.js" type="text/javascript"></script>
|
872
|
+
</div>
|
873
|
+
</div>
|
874
|
+
|
875
|
+
<div id="more">
|
876
|
+
|
877
|
+
<div class="cell" id="more_site_links">
|
878
|
+
<div class="section">
|
879
|
+
<h3 class="column_heading">Site Links</h3>
|
880
|
+
<ul>
|
881
|
+
<li><a href="/">RailsTips Home</a></li>
|
882
|
+
<li><a href="/about/">The Sexy Author</a></li>
|
883
|
+
<li><a href="/smorgasbord/">Visit the Archives</a></li>
|
884
|
+
<li><a href="http://railstips.uservoice.com/">Suggest a Topic</a></li>
|
885
|
+
<li><a href="/advertise/">Advertise</a></li>
|
886
|
+
<li><img src="http://static.railstips.org/images/feed-icon-12x12-orange.gif" alt="Feed Icon" class="feed_icon" /><a href="http://feeds.feedburner.com/railstips/">Articles Feed</a></li>
|
887
|
+
<li><img src="http://static.railstips.org/images/feed-icon-12x12-orange.gif" alt="Feed Icon" class="feed_icon" /><a href="http://feeds.feedburner.com/railsquicktips/">Quick Tips Feed</a></li>
|
888
|
+
</ul>
|
889
|
+
</div>
|
890
|
+
|
891
|
+
<div class="section">
|
892
|
+
<h3>Search</h3>
|
893
|
+
<form method="get" action="/search">
|
894
|
+
<div>
|
895
|
+
<input type="text" id="q2" value="" name="q" size="15" />
|
896
|
+
<input type="submit" value="Go" />
|
897
|
+
</div>
|
898
|
+
</form>
|
899
|
+
</div>
|
900
|
+
|
901
|
+
<div class="section">
|
902
|
+
<a href="http://orderedlist.com/">
|
903
|
+
<img src="http://static.railstips.org/images/bug.jpg" alt="Hire Me at Ordered List" />
|
904
|
+
</a>
|
905
|
+
</div>
|
906
|
+
|
907
|
+
<div class="section">
|
908
|
+
<h3>Need More?</h3>
|
909
|
+
<ul>
|
910
|
+
<li><a href="http://addictedtonew.com/">Addicted To New</a></li>
|
911
|
+
<li><a href="http://orderedlist.com/">Ordered List</a></li>
|
912
|
+
<li><a href="http://jnunemaker.tumblr.com/">Tumblelog</a></li>
|
913
|
+
<li><a href="http://twitter.com/jnunemaker">Twitter</a></li>
|
914
|
+
<li><a href="http://github.com/jnunemaker">GitHub</a></li>
|
915
|
+
<li><a href="http://flickr.com/photos/johnnunemaker/">Flickr</a></li>
|
916
|
+
</ul>
|
917
|
+
</div>
|
918
|
+
</div>
|
919
|
+
|
920
|
+
<div class="row">
|
921
|
+
<div class="cell links">
|
922
|
+
<h3 class="column_heading">Recent <small><a href="/smorgasbord/" title="view all articles">view the smörgåsbord</a></small></h3>
|
923
|
+
<ul>
|
924
|
+
|
925
|
+
|
926
|
+
<li>
|
927
|
+
<a href="/2009/3/25/building-api-wrapping-gems-could-not-get-much-easier" title="Building API Wrapping Gems Could Not Get Much Easier">Building API Wrapping Gems Could Not Get Much Easier</a>
|
928
|
+
</li>
|
929
|
+
|
930
|
+
<li>
|
931
|
+
<a href="/2009/3/24/custom-matchers-for-matchy" title="Custom Matchers for Matchy">Custom Matchers for Matchy</a>
|
932
|
+
</li>
|
933
|
+
|
934
|
+
<li>
|
935
|
+
<a href="/2009/3/23/httparty-example-mymilemarker-com" title="HTTParty Example: MyMileMarker.com">HTTParty Example: MyMileMarker.com</a>
|
936
|
+
</li>
|
937
|
+
|
938
|
+
<li>
|
939
|
+
<a href="/2009/3/12/3-simple-guidelines-for-contributing" title="3 Simple Guidelines for Contributing">3 Simple Guidelines for Contributing</a>
|
940
|
+
</li>
|
941
|
+
|
942
|
+
<li>
|
943
|
+
<a href="/2009/3/4/following-redirects-with-net-http" title="Following Redirects with Net/HTTP">Following Redirects with Net/HTTP</a>
|
944
|
+
</li>
|
945
|
+
|
946
|
+
<li>
|
947
|
+
<a href="/2009/3/1/first-time-in-print" title="First Time in Print">First Time in Print</a>
|
948
|
+
</li>
|
949
|
+
|
950
|
+
<li>
|
951
|
+
<a href="/2009/2/21/shoulda-looked-at-it-sooner" title="Shoulda Looked At It Sooner">Shoulda Looked At It Sooner</a>
|
952
|
+
</li>
|
953
|
+
|
954
|
+
<li>
|
955
|
+
<a href="/2009/2/2/bedazzle-your-bash-prompt-with-git-info" title="Bedazzle Your Bash Prompt with Git Info">Bedazzle Your Bash Prompt with Git Info</a>
|
956
|
+
</li>
|
957
|
+
|
958
|
+
<li>
|
959
|
+
<a href="/2009/1/31/httparty-divorces-json" title="HTTParty Divorces JSON">HTTParty Divorces JSON</a>
|
960
|
+
</li>
|
961
|
+
|
962
|
+
<li>
|
963
|
+
<a href="/2009/1/28/httparty-meet-mr-response" title="HTTParty Meet Mr. Response">HTTParty Meet Mr. Response</a>
|
964
|
+
</li>
|
965
|
+
|
966
|
+
<li>
|
967
|
+
<a href="/2009/1/8/test-or-die-validates-uniqueness-of" title="Test Or Die: Validates Uniqueness Of">Test Or Die: Validates Uniqueness Of</a>
|
968
|
+
</li>
|
969
|
+
|
970
|
+
<li>
|
971
|
+
<a href="/2009/1/7/my-testing-theory" title="My Testing Theory">My Testing Theory</a>
|
972
|
+
</li>
|
973
|
+
|
974
|
+
</ul>
|
975
|
+
</div>
|
976
|
+
|
977
|
+
<div class="cell omega links">
|
978
|
+
<h3 class="column_heading">Popular <small>last 7 days</small></h3>
|
979
|
+
<ul>
|
980
|
+
|
981
|
+
|
982
|
+
<li>
|
983
|
+
<a href="http://railstips.org/2009/3/25/building-api-wrapping-gems-could-not-get-much-easier" title="Viewed 191 times"><strong>191:</strong> Building API Wrapping Gems Could Not Get Much Easier </a>
|
984
|
+
</li>
|
985
|
+
|
986
|
+
<li>
|
987
|
+
<a href="http://railstips.org/2009/3/24/custom-matchers-for-matchy" title="Viewed 148 times"><strong>148:</strong> Custom Matchers for Matchy </a>
|
988
|
+
</li>
|
989
|
+
|
990
|
+
<li>
|
991
|
+
<a href="http://railstips.org/2006/11/18/class-and-instance-variables-in-ruby" title="Viewed 129 times"><strong>129:</strong> Class and Instance Variables In Ruby </a>
|
992
|
+
</li>
|
993
|
+
|
994
|
+
<li>
|
995
|
+
<a href="http://railstips.org/2008/8/12/parsing-xml-with-ruby" title="Viewed 115 times"><strong>115:</strong> Parsing XML with Ruby </a>
|
996
|
+
</li>
|
997
|
+
|
998
|
+
<li>
|
999
|
+
<a href="http://railstips.org/2008/7/29/it-s-an-httparty-and-everyone-is-invited" title="Viewed 66 times"><strong>66:</strong> It's an HTTParty and Everyone Is Invited! </a>
|
1000
|
+
</li>
|
1001
|
+
|
1002
|
+
<li>
|
1003
|
+
<a href="http://railstips.org/2008/11/20/jquery-on-rails-why-bother" title="Viewed 53 times"><strong>53:</strong> jQuery on Rails: Why Bother? </a>
|
1004
|
+
</li>
|
1005
|
+
|
1006
|
+
<li>
|
1007
|
+
<a href="http://railstips.org/2009/3/23/httparty-example-mymilemarker-com" title="Viewed 52 times"><strong>52:</strong> HTTParty Example: MyMileMarker.com </a>
|
1008
|
+
</li>
|
1009
|
+
|
1010
|
+
<li>
|
1011
|
+
<a href="http://railstips.org/2008/10/14/how-to-generate-pdfs-in-rails-with-prawn" title="Viewed 41 times"><strong>41:</strong> How To Generate PDFs in Rails With Prawn </a>
|
1012
|
+
</li>
|
1013
|
+
|
1014
|
+
<li>
|
1015
|
+
<a href="http://railstips.org/2008/12/12/using-gmail-to-send-email-with-rails" title="Viewed 40 times"><strong>40:</strong> Using Gmail to Send Email With Rails </a>
|
1016
|
+
</li>
|
1017
|
+
|
1018
|
+
<li>
|
1019
|
+
<a href="http://railstips.org/2009/2/21/shoulda-looked-at-it-sooner" title="Viewed 39 times"><strong>39:</strong> Shoulda Looked At It Sooner </a>
|
1020
|
+
</li>
|
1021
|
+
|
1022
|
+
<li>
|
1023
|
+
<a href="http://railstips.org/2008/10/27/using-gmail-with-imap-to-receive-email-in-rails" title="Viewed 35 times"><strong>35:</strong> Using Gmail with IMAP to Receive Email in Rails </a>
|
1024
|
+
</li>
|
1025
|
+
|
1026
|
+
<li>
|
1027
|
+
<a href="http://railstips.org/2008/11/17/happymapper-making-xml-fun-again" title="Viewed 32 times"><strong>32:</strong> HappyMapper, Making XML Fun Again </a>
|
1028
|
+
</li>
|
1029
|
+
|
1030
|
+
</ul>
|
1031
|
+
</div>
|
1032
|
+
</div>
|
1033
|
+
|
1034
|
+
<div class="row">
|
1035
|
+
<div class="cell links" id="more_best_of">
|
1036
|
+
<h3>Best Of <small>in my opinion</small></h3>
|
1037
|
+
<ul>
|
1038
|
+
<li><a href="http://railstips.org/2008/12/24/the-rails-beatitudes">The Rails Beatitudes</a></li>
|
1039
|
+
<li><a href="http://railstips.org/2008/12/1/unless-the-abused-ruby-conditional">Unless, The Abused Ruby Conditional</a></li>
|
1040
|
+
<li><a href="http://railstips.org/2008/6/10/programmers-should-give-up-more-often">Programmers Should Give Up More Often</a></li>
|
1041
|
+
<li><a href="http://railstips.org/2006/11/18/class-and-instance-variables-in-ruby">Class and Instance Variables In Ruby</a></li>
|
1042
|
+
<li><a href="http://railstips.org/2008/8/12/parsing-xml-with-ruby">Parsing XML with Ruby</a></li>
|
1043
|
+
<li><a href="http://railstips.org/2008/10/27/using-gmail-with-imap-to-receive-email-in-rails">Using Gmail with IMAP to Receive Email in Rails</a></li>
|
1044
|
+
<li><a href="http://railstips.org/2008/12/12/using-gmail-to-send-email-with-rails">Using Gmail to Send Email With Rails</a></li>
|
1045
|
+
<li><a href="http://railstips.org/2008/7/29/it-s-an-httparty-and-everyone-is-invited">It's an HTTParty and Everyone Is Invited!</a></li>
|
1046
|
+
<li><a href="http://railstips.org/2008/12/14/deploying-rails-on-dreamhost-with-passenger">Deploying Rails on Dreamhost with Passenger</a></li>
|
1047
|
+
<li><a href="http://railstips.org/2008/12/15/deploying-sinatra-on-dreamhost-with-passenger">Deploying Sinatra on Dreamhost With Passenger</a></li>
|
1048
|
+
<li><a href="http://railstips.org/2008/11/24/gitn-your-shared-host-on">Git'n Your Shared Host On</a></li>
|
1049
|
+
<li><a href="http://railstips.org/2008/11/20/jquery-on-rails-why-bother">jQuery on Rails: Why Bother?</a></li>
|
1050
|
+
</ul>
|
1051
|
+
</div>
|
1052
|
+
|
1053
|
+
<div class="cell links omega">
|
1054
|
+
<h3>Quick Links <small><a href="http://feeds.feedburner.com/railsquicktips/">subscribe to feed</a></small></h3>
|
1055
|
+
<ul id="more_quick_links"></ul>
|
1056
|
+
</div>
|
1057
|
+
</div>
|
1058
|
+
</div>
|
1059
|
+
|
1060
|
+
<div id="footer">
|
1061
|
+
© 2008 John Nunemaker |
|
1062
|
+
<a href="http://orderedlist.com/">Ordered List, Inc.</a>
|
1063
|
+
</div>
|
1064
|
+
</div>
|
1065
|
+
|
1066
|
+
<!-- <script type="text/javascript" src="http://pipes.yahoo.com/pipes/pipe.run?_id=ZoBpbs_c3RG_NLlQpgt1Yg&_render=json&_callback=handleRecentTips"></script> -->
|
1067
|
+
|
1068
|
+
<script type="text/javascript" src="http://pipes.yahoo.com/pipes/pipe.run?_id=FiFM3ant3RG_MFS3dPQQIA&_render=json&_callback=handleRecentTips"></script>
|
1069
|
+
|
1070
|
+
</body>
|
1071
|
+
</html>
|