About ruby on rails, hackintosh, iphone3g and etc.

Friday, May 8, 2009

Using ISAPI Rewrite on Rails App with IIS and Mongrel as Windows Service

In setting up a multiple production environment in a single server, IIS alone cannot do the redirection of url nicely. When a RAILS app runs in IIS, it requires port number and to redirect domain name to the particular port number, ISAPI Rewrite can help. Below are some sample of how to redirect a hostname to the port required.

RewriteCond %{HTTP:Host} ^(?:www\.)?domain name\.biz$
RewriteRule (.*) http://www.domain name.biz:3000$1 [R=301,L]

RewriteCond %{HTTP:Host} ^(?:www\.)?another domain name\.com$
RewriteRule (.*) http://www.another domain name.com:3001$1 [R=301,L]

Updated: 27th May 2009
Possible to do URL masking by using rewrite proxy

RewriteCond %{HTTP:Host} ^(?:www\.)?another domain name\.com$
RewriteProxy (.*) http://localhost:4002$1

Note: it will map to localhost:4002 and transparent to user as the url shown is www.anotherdomainname.com. You can point multiple domain name to a single web app.

To get this done:
1. Install ISAPI Rewrite.
2. Copy and replace domain name to your own domain name in ISAPI rewrite.
3. If you have more than one domain pointing to the same server, just add below the first domain.

Thursday, April 30, 2009

Calendar Date Select for Ruby on Rails

CalendarDateSelect is semi-light-weight (about ~20k of javascript/css) and easy to use (but gets even lighter with bundle-fu)! It takes full advantage of the prototype.js library, resulting in less code, but maintaining a great deal of functionality.

Some of it's capabilities:

can pick a date, or a date-time, or a date with an optional time, as a popup selector or an embedded calendar!
speaks several different formats
is easy to localize
is extensible. Calendar Date Select doesn't do everything under the sun (which is a good thing), but you can build on top of it.
Installation / Usage

Install the calendar_date_select gem
sudo gem install calendar_date_select
Add a gem dependency to your rails project (in environment.rb)
config.gem "calendar_date_select"
Then, restart/start your rails project. All necessary files will be copied to your public folder.
Now include this at the top of your layout: (you'll also need to include prototype, if you haven't already!)
<%= calendar_date_select_includes "red" # or "blue", or "silver", or nil for the default! %>
# (if you want more control, you can get a list of stylesheets / javascripts via calendar_date_select_javascripts and calendar_date_select_stylesheets)
See the Demo for various uses of CalendarDateSelect.

Wednesday, April 29, 2009

Date Calculation in Rails

>> Date.new( 2008, 1, 1 ).to_time.advance( :months => 1 )
=> Fri Feb 01 00:00:00 +0000 2008


>> Date.new( 2008, 2, 1 ).to_time.advance( :months => 1 )

=> Sat Mar 01 00:00:00 +0000 2008

>> Date.new( 2008, 1, 1 ).to_time + 1.month
=> Thu Jan 31 00:00:00 +0000 2008

Extracted from here:
http://roninonrails.blogspot.com/2008/01/beware-of-rails-date-arithmetic.html

Tuesday, April 28, 2009

Get Month Name in Rails

To get month name as constants, do the following

require 'date'

for i in (1..12)
@month = Date::MONTHNAMES[i]
end

Date Format in strftime

FormatMeaning
%aThe abbreviated weekday name (“Sun'’)
%AThe full weekday name (“Sunday'’)
%bThe abbreviated month name (“Jan'’)
%BThe full month name (“January'’)
%cThe preferred local date and time representation
%dDay of the month (01..31)
%HHour of the day, 24-hour clock (00..23)
%IHour of the day, 12-hour clock (01..12)
%jDay of the year (001..366)
%mMonth of the year (01..12)
%MMinute of the hour (00..59)
%pMeridian indicator (“AM'’ or “PM'’)
%SSecond of the minute (00..60)
%UWeek number of the current year, starting with the first Sunday as the first day of the first week (00..53)
%WWeek number of the current year, starting with the first Monday as the first day of the first week (00..53)
%wDay of the week (Sunday is 0, 0..6)
%xPreferred representation for the date alone, no time
%XPreferred representation for the time alone, no date
%yYear without a century (00..99)
%YYear with century
%ZTime zone name
%%Literal “%'’ character

Saturday, March 7, 2009

Attachment_fu Installation

Installing Attachment_fu plugin steps as follows:

1. Install Freeimage plugin for image processing:

sudo port selfupdate

sudo port install freeimage (link)

MacPorts installation notes can be obtained from here.


2. Install ImageScience

sudo gem install -y image_science


3. Install Attachment_fu


script/plugin install http://svn.techno-weenie.net/projects/plugins/attachment_fu/

Wednesday, March 4, 2009

Mongrel_rails

To use mongrel_rails in production, you need to create a service to run in your Windows Server.

Navigate to the directory where rails app are located.

Replace (service name) including bracket with your service name .
Here is the command:

Install service:
mongrel_rails service::install -N (service name) -e (environment. e.g. production) -p (port to be used)

Remove the service:
mongrel_rails service::remove -N (service name)

That's all. Then you can configure lightttpd to point to the mongrel web app.

To start the service from command line:
net start (service name)