woensdag 29 april 2009

Try Catch Finally block in Ruby

For all the people with bad memory like me, here is the Ruby equivalent of the Try Catch Finally block:


begin
somecode()
rescue
puts "Error #{$!}"
ensure
this_code_will_execute_always()
end

Ruby on Rails 2.0 Scaffold

The scaffold generator is not as easy to use anymore in Rails 2.0 as it was in the previous version. Instead of working directly with database tables, now it only works with migrations. The use of migrations is a good thing in my opinion, because migrations keep it easy to track and apply database changes. What I don't like about the renewed scaffold generator is that you have to put all the fields you want to have in your table in the command line. If you create your own migration files, scaffold simply doesn't work. This may be OK with small tables, but if you have tables with lots of fields it is much easier to make the migration file your self. Putting all table fields on the command line doesn't give a good view of all the fields, and you won't notice if you forgot a field.

An example of a scaffold generation:

> ./script/generate scaffold ModelName field1:type field2:type field3:type

Add Table Fields with Rails Migrations

With Ruby on Rails you van easily add columns to an existing database table using migrations. The update can than automatically be applied to the different environments (i.e. development, test, production).

The code for the migration is as follows:

class AddAdministrationsMyclientsidBlocked < ActiveRecord::Migration
def self.up
add_column :administrations, :myclient_id, :integer
add_column :administrations, :blocked, :boolean, :default => false

end

def self.down
remove_column :administrations, :myclient_id
remove_column :administrations, :blocked
end
end

maandag 27 april 2009

HTML Escape Characters: The complete list

Below you will find a complete list of HTML escape characters:














































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Symbol Code Entity Name
  &euro;
Space &#32;  
! &#33;  
" &#34; &quot;
# &#35;  
$ &#36;  
% &#37;  
& &#38; &amp;
' &#39;  
( &#40;  
) &#41;  
* &#42;  
+ &#43;  
, &#44;  
- &#45;  
. &#46;  
/ &#47;  
0 &#48;  
1 &#49;  
2 &#50;  
3 &#51;  
4 &#52;  
5 &#53;  
6 &#54;  
7 &#55;  
8 &#56;  
9 &#57;  
: &#58;  
; &#59;  
< &#60; &lt;
= &#61;  
> &#62; &gt;
? &#63;  
@ &#64;  
A &#65;  
B &#66;  
C &#67;  
D &#68;  
E &#69;  
F &#70;  
G &#71;  
H &#72;  
I &#73;  
J &#74;  
K &#75;  
L &#76;  
M &#77;  
N &#78;  
O &#79;  
P &#80;  
Q &#81;  
R &#82;  
S &#83;  
T &#84;  
U &#85;  
V &#86;  
W &#87;  
X &#88;  
Y &#89;  
Z &#90;  
[ &#91;  
\ &#92;  
] &#93;  
^ &#94;  
_ &#95;  
` &#96;  
a &#97;  
b &#98;  
c &#99;  
d &#100;  
e &#101;  
f &#102;  
g &#103;  
h &#104;  
i &#105;  
j &#106;  
k &#107;  
l &#108;  
m &#109;  
n &#110;  
o &#111;  
p &#112;  
q &#113;  
r &#114;  
s &#115;  
t &#116;  
u &#117;  
v &#118;  
w &#119;  
x &#120;  
y &#121;  
z &#122;  
{ &#123;  
| &#124;  
} &#125;  
~ &#126;  
Non-breaking space &#160; &nbsp;
¡ &#161; &iexcl;
¢ &#162; &cent;
£ &#163; &pound;
¤ &#164; &curren;
¥ &#165; &yen;
¦ &#166; &brvbar;
§ &#167; &sect;
¨ &#168; &uml;
© &#169; &copy;
ª &#170; &ordf;
« &#171;  
¬ &#172; &not;
­ &#173; &shy;
® &#174; &reg;
¯ &#175; &macr;
° &#176; &deg;
± &#177; &plusmn;
² &#178; &sup2;
³ &#179; &sup3;
´ &#180; &acute;
µ &#181; &micro;
&#182; &para;
· &#183; &middot;
¸ &#184; &cedil;
¹ &#185; &sup1;
º &#186; &ordm;
» &#187; &raquo;
¼ &#188; &frac14;
½ &#189; &frac12;
¾ &#190; &frac34;
¿ &#191; &iquest;
À &#192; &Agrave;
Á &#193; &Aacute;
 &#194; Â
à &#195; &Atilde;
Ä &#196; &Auml;
Å &#197 &Aring;
Æ &#198; &AElig;
Ç &#199; &Ccedil;
È &#200; &Egrave;
É &#201; &Eacute;
Ê &#202; &Ecirc;
Ë &#203; Ë
Ì &#204; &Igrave;
Í &#205; &Iacute;
Î &#206; &Icirc;
Ï &#207; &Iuml;
Ð &#208; &ETH;
Ñ &#209; &Ntilde;
Ò &#210; &Ograve;
Ó &#211; &Oacute;
Ô &#212; &Ocirc;
Õ &#213; &Otilde;
Ö &#214; &Ouml;
× &#215; &times;
Ø &#216; &Oslash;
Ù &#217; &Ugrave;
Ú &#218; &Uacute;
Û &#219; &Ucirc;
Ü &#220; &Uuml;
Ý &#221; &Yacute;
Þ &#222; &THORN;
ß &#223; &szlig;
à &#224; &agrave;
á &#225; &aacute;
â &#226; &acirc;
ã &#227; &atilde;
ä &#228; &auml;
å &#229; &aring;
æ &#230; &aelig;
ç &#231; &ccedil;
è &#232; &egrave;
é &#233; &eacute;
ê &#234; &ecirc;
ë &#235; &euml;
ì &#236; &igrave;
í &#237 &iacute;
î &#238; &icirc;
ï &#239; &iuml;
ð &#240; &eth;
ñ &#241; &ntilde;
ò &#242; &ograve;
ó &#243; &oacute;
ô &#244; &ocirc;
õ &#245; &otilde;
ö &#246; &ouml;
÷ &#247; &divide;
ø &#248; &oslash;
ù &#249; &ugrave;
ú &#250; &uacute;
û &#251; &ucirc;
ü &#252; &uuml;
ý &#253; &yacute;
þ &#254; &thorn;
ÿ &#255;  
Ā &#256;  
ā &#257;  
Ă &#258;  
ă &#259;  
Ą &#260;  
ą &#261;  
Ć &#262;  
ć &#263;  
Ĉ &#264;  
ĉ &#265;  
Ċ &#266;  
ċ &#267;  
Č &#268;  
č &#269;  
Ď &#270;  
ď &#271;  
Đ &#272;  
đ &#273;  
Ē &#274;  
ē &#275;  
Ĕ &#276;  
ĕ &#277  
Ė &#278;  
ė &#279;  
Ę &#280;  
ę &#281;  
Ě &#282;  
ě &#283;  
Ĝ &#284;  
ĝ &#285;  
Ğ &#286;  
ğ &#287;  
Ġ &#288;  
ġ &#289;  
Ģ &#290;  
ģ &#291;  
Ĥ &#292;  
ĥ &#293;  
Ħ &#294;  
ħ &#295;  
Ĩ &#296;  
ĩ &#297;  
Ī &#298;  
ī &#299;  
Ĭ &#300;  
ĭ &#301;  
Į &#302;  
į &#303;  
İ &#304;  
ı &#305;  
IJ &#306;  
ij &#307;  
Ĵ &#308;  
ĵ &#309;  
Ķ &#310;  
ķ &#311;  
ĸ &#312;  
Ĺ &#313;  
ĺ &#314;  
Ļ &#315;  
ļ &#316;  
Ľ &#317  
ľ &#318;  
Ŀ &#319;  
ŀ &#320;  
Ł &#321;  
ł &#322;  
Ń &#323;  
ń &#324;  
Ņ &#325;  
ņ &#326;  
Ň &#327;  
ň &#328;  
ʼn &#329;  
Ŋ &#330;  
ŋ &#331;  
Ō &#332;  
ō &#333;  
Ŏ &#334;  
ŏ &#335;  
Ő &#336;  
ő &#337;  
Œ &#338;  
œ &#339;  
Ŕ &#340;  
ŕ &#341;  
Ŗ &#342;  
ŗ &#343;  
Ř &#344;  
ř &#345;  
Ś &#346;  
ś &#347;  
Ŝ &#348;  
ŝ &#349;  
Ş &#350;  
ş &#351;  
Š &#352;  
š &#353;  
Ţ &#354;  
ţ &#355;  
Ť &#356;  
ť &#357  
Ŧ &#358;  
ŧ &#359;  
Ũ &#360;  
ũ &#361;  
Ū &#362;  
ū &#363;  
Ŭ &#364;  
ŭ &#365;  
Ů &#366;  
ů &#367;  
Ű &#368;  
ű &#369;  
Ų &#370;  
ų &#371;  
Ŵ &#372;  
ŵ &#373;  
Ŷ &#374;  
ŷ &#375;  
Ÿ &#376;  
Ź &#377;  
ź &#378;  
Ż &#379;  
ż &#380;  
Ž &#381;  
ž &#382;  
ſ &#383;  
Ŕ &#340;  
ŕ &#341;  
Ŗ &#342;  
ŗ &#343;  
Ř &#344;  
ř &#345;  
Ś &#346;  
ś &#347;  
Ŝ &#348;  
ŝ &#349;  
Ş &#350;  
ş &#351;  
Š &#352;  
š &#353;  
Ţ &#354;  
ţ &#355;  
Ť &#356;  
ť &#577;  
Ŧ &#358;  
ŧ &#359;  
Ũ &#360;  
ũ &#361;  
Ū &#362;  
ū &#363;  
Ŭ &#364;  
ŭ &#365;  
Ů &#366;  
ů &#367;  
Ű &#368;  
ű &#369;  
Ų &#370;  
ų &#371;  
Ŵ &#372;  
ŵ &#373;  
Ŷ &#374;  
ŷ &#375;  
Ÿ &#376;  
Ź &#377  
ź &#378;  
Ż &#379;  
ż &#380;  
Ž &#381;  
ž &#382;  
ſ &#383;  

Ruby On Rails: end_form_tag removed in Rails 2.0

The end_form_tag method is removed in Rails 2.0, now one can create a block to start and end a HTML form. This is actually quite simple:


<% form_tag :action => 'create' do %>
#...
<% end %>


An important part is the 'do' at the end of the form_tag line.

Ruby On Rails: Write to log

A good thing about Rails is the logs that are produced. In development mode rails will list out all SQL statements and trace all controller calls.

It is possible to add custom messages to the Rails log through in a single line command. The RAILS_DEFAULT_LOGGER object, which is defined in environment.rb, makes this possible.

The RAILS_DEFAULT_LOGGER object supports the following log levels:
* debug
* info
* warn
* error
* fatal

To add debug calls to your code for development mode just add the following:


RAILS_DEFAULT_LOGGER.info "Your log message"