ruby gotchas

32
5XE\ *RWFKDV E\ 'DYH $URQVRQ 7 5H[ RI &RGRVDXUXV //&

Upload: jcarloz

Post on 08-Feb-2016

20 views

Category:

Documents


0 download

DESCRIPTION

Ruby Gotchas

TRANSCRIPT

Page 1: Ruby Gotchas

5XE\*RWFKDV

E\�'DYH�$URQVRQ�7��5H[�RI�&RGRVDXUXV��//&

Page 2: Ruby Gotchas

7KRXJK��HQJLQHHUHG�WR�PD[LPL]H�SURJUDPPHU�KDSSLQHVV���ZLWK�WKH��SULQFLSOH�RI�OHDVW�VXUSULVH���5XE\�VWLOO�KDV�JRWFKDV�

7KLV�SUHVHQWDWLRQ�ZLOO�SURFHHG�IURP�QHZELH�WULYLDO�JRWFKDV��WR�PRUH�DGYDQFHG�DQG�FRQIXVLQJ�JRWFKDV�

ZH� ��FODVV�)L[QXP��GHI�UE��VHOI��HQGHQG

ZH�����UE� !�WUXH

EXW� ��VWLOO� ��SHUIHFW� ��

EXW���VWLOO��UE���SHUIHFW� !�WUXH

5XE\�FDQ�EH�VXUSULVLQJ�

Page 3: Ruby Gotchas

[� ��

SXWV��[� ��^[`?Q?Q�

[� ��

SXWV�[� ��^[`?Q?Q

[� ��^[`?Q?Q

'RQW�TXRWH�PH�RQ�WKLV��EXW��������

6WULQJ�LQWHUSRODWLRQ��LQFOXGLQJ�VSHFLDO�FKDUV�OLNH�?Q��UHTXLUHV��GRXEOH��TXRWHV��DQG�IDLOV�ZLWK�VLQJOH�TXRWHV�

�-XVW�OLNH�PRVW�ODQJXDJHV�ZLWK�VWULQJ�LQWHUSRODWLRQ��

Page 4: Ruby Gotchas

2QO\�WZR�WKLQJV�DUH�IDOVH��IDOVH\���IDOVH��DQG�QLO�

(YHU\WKLQJ�HOVH�LV�WUXH��WUXWK\���HYHQ����IDOVH�LQ�&�������IDOVH�LQ�-6���>@��HWF�

�7ULSV�XS�SHRSOH�IURP�&��-6��HWF��ZKHUH�VRPH�RI�WKHVH�DUH�IDOVH��

,WV�WZXH���,WV�WZXH�

WUXH���"��WUXH�����IDOVH�� !��WUXH�IDOVH��"��WUXH�����IDOVH�� !��IDOVH�QLO����"��WUXH�����IDOVH�� !��IDOVH�

�������"��WUXH�����IDOVH�� !��WUXH��������"��WUXH�����IDOVH�� !��WUXH��IDOVH�"��WUXH�����IDOVH�� !��WUXH��������"��WUXH�����IDOVH�� !��WUXH�>@�����"��WUXH�����IDOVH�� !��WUXH�

Page 5: Ruby Gotchas

EDVK!�LUE����VWU� ��VWULQJ�

� !��VWULQJ�

VWU>�@� !��U���PDNHV�VHQVH�

6WULQJ����RU�QRWKLQJ�

EDVK!�LUE����VWU� ��VWULQJ�� !��VWULQJ�VWU>�@� !������ZWI"��DVFLL�FRGH�VWU>����@� !��U���WKDWV�EHWWHU�VWU>���@� !��U���ZRUNV�WRR����

Page 6: Ruby Gotchas

6\PEROV�� �VWULQJV�(YHQ�LI�VDPH�SULQWHG�5HPHPEHU�ZKLFK�RQH�WR�XVH�IRU�ZKDW��DUJV��,GHDOO\��WDNH�HLWKHU���%H�OLEHUDO�LQ�ZKDW�\RX�DFFHSW��DQG�FRQVHUYDWLYH�LQ�ZKDW�\RX�VHQG�����3RVWHOV�/DZ�

VWU� ��VWULQJ�

V\P� ��VWULQJ

SXWV�VWUVWULQJSXWV�V\PVWULQJVWU� �V\P� !�IDOVH

+DQJ�KLP�LQ�HIILJ\�6WULQJ�KLP�XS��V\PEROLFDOO\�

Page 7: Ruby Gotchas

)22� ��� !���)22� ���LUE�����ZDUQLQJ��DOUHDG\�LQLWLDOL]HG�FRQVWDQW�)22� !���)22� !��

&RQVWDQWV�$UHQW��3DUW�2QH�

�,QLWLDO�XSSHUFDVH�PHDQV�FRQVWDQW��LQ�5XE\��

7U\�WR�FKDQJH�D�FRQVWDQW�2RRRK��\RX�JHW�D�:$51,1*���%)'�

Page 8: Ruby Gotchas

(YHQ�IUHH]LQJ�GRHVQW�ZRUN�IRU�)L[QXPV�

�,W�GRHV�ZRUN�IRU�DUUD\V�DQG�VXFK����KH�VDLG�IRUHVKDGRZLQJO\��

)22

� !��

)22�IUHH]H

� !��

)22�� ��

�LUE�����ZDUQLQJ��DOUHDG\�

LQLWLDOL]HG�FRQVWDQW�)22

� !��

)22

� !��

&RQVWDQWV�$UHQW��3DUW�7ZR�

Page 9: Ruby Gotchas

6RPH�DUH�PRUH�HTXDO�WKDQ�RWKHUV

(IIHFWLYHO\�

�LV�WKH�XVXDO�VDPH�YDOXH�

�HTO"�LV�YDOXH�DQG�FODVV���LV�)L[QXP������LV�)ORDW�

�HTXDO"�LV�VDPH�REMHFW

,WV�UHDOO\�HYHQ�KDLULHU�VHH�GRFV�RQ�FODVV�2EMHFW

�� ����� !�WUXH��HTO"����� !�IDOVH

D� ��IRR�E� ��IRR�D� �E� !�WUXHD�HTO"�E� !�WUXHD�HTXDO"�E� !�IDOVHD�HTXDO"�D� !�WUXH

Page 10: Ruby Gotchas

(IIHFWLYHO\�

�LV��FDVH�HTXDOLW\���DV�LQ�FDVH�VWDWHPHQWV���$�EHWWHU�QDPH��,0+2��PLJKW�EH���GHVFULEHV"���RU�RYHUORDG���LQFOXGHV"��

$JDLQ��LWV�UHDOO\�KDLULHU��VHH�GRFV�RQ�2EMHFW�

*HWV�SHRSOH�IURP�ODQJXDJHV�ZKHUH� �LV�LGHQWLW\��RU�VDPH�YDOXH�DQG�FODVV�

�� � �

�� ��� !�WUXH)L[QXP� ��� !�WUXH�� �)L[QXP� !�IDOVH

&ODVV�� �&ODVV2EMHFW� �2EMHFW&ODVV�� �2EMHFW2EMHFW� �&ODVV� !�DOO�WUXH)L[QXP� �)L[QXP� !�IDOVH�

������� ��� !�WUXH�� �������� !�IDOVH�

Page 11: Ruby Gotchas

�KDV�KLJKHU�SUHFHGHQFHWKDQ� ��VR[� �WUXH��IDOVHPHDQV[� ��WUXH��IDOVH�

DQG�KDV�ORZHU�SUHFHGHQFH��VR�[� �WUXH�DQG�IDOVHPHDQV�[� �WUXH��DQG�IDOVH

5XE\�6W\OH�*XLGH��8VH��__�IRU�ERROHDQ�H[SUHVVLRQV��>XVH@�DQG�RU�IRU�FRQWURO�IORZ��

DQG�� �

[� �WUXH��IDOVH

� !�IDOVH�

[

� !�IDOVH

��2.�VR�IDU��EXW�

[� �WUXH�DQG�IDOVH

� !�IDOVH�

[

� !�WUXH

:K\�WKH�PLVPDWFK"���5HWXUQ�LV�IDOVH�EXW�YDULDEOH�LV�WUXH�

Page 12: Ruby Gotchas

RU�� �__

__�KDV�KLJKHU�SUHFHGHQFHWKDQ� ��VR[� ��IDOVH�__�WUXHPHDQV[� ��IDOVH�__�WUXH�

RU�KDV�ORZHU�SUHFHGHQFH�VR�[� �IDOVH��RU�WUXHPHDQV�[� �IDOVH��RU�WUXH

5XE\�6W\OH�*XLGH��8VH��__�IRU�ERROHDQ�H[SUHVVLRQV��>XVH@�DQG�RU�IRU�FRQWURO�IORZ��

[� �IDOVH�__�WUXH

� !�WUXH�

[�

� !�WUXH�

��2.�VR�IDU��EXW�

[� �IDOVH�RU�WUXH

� !�WUXH�

[

� !�IDOVH�

:K\�WKH�PLVPDWFK"���5HWXUQ�LV�WUXH�EXW�YDULDEOH�LV�IDOVH�

Page 13: Ruby Gotchas

:KLWHVSDFH�LQVHQVLWLYH"127�$/:$<6�:LWK�PXOWLSOH�DUJV���1R�SDUHQV��QR�SUREOHP���3DUHQV�Z�R�VSDFH��2.���3DUHQV��VSDFH��12�3DUVHU�WKLQNV�LWV�DQ�H[SUHVVLRQ��DV��VW�DUJ���������QRW�2.�H[SUHVVLRQ�

�$OO�ZRUN�ILQH�Z����DUJ��

GHI�PHWK�DUJ���DUJ����HQG

PHWK������ !�QLO

PHWK������� !�QLO

PHWK�������V\QWD[�HUURU��XQH[SHFWHG����H[SHFWLQJ��PHWK���������������A

'RQW�EH�VR�VHQVLWLYH���3DUW�$�

Page 14: Ruby Gotchas

GHI�PHWK������HQGQXP� ���PHWK�QXP� !��PHWK���QXP� !��PHWK��QXP� !��PHWK��QXP6\QWD[(UURU��XQWHUPLQDWHG�UHJH[S

�PHWK��QXP��LV�DQ�XQHQGHG�UHJH[�RU�VWULQJ���5XE\�WKLQNV�\RX�PLJKW�EH�JLYLQJ�DQ�DUJXPHQW�WR�PHWKRG�PHWK�*HQHUDO�SULQFLSOH��XVH�%$/$1&('�ZKLWHVSDFH��ERWK�VLGHV�RU�QHLWKHU�

'RQW�EH�VR�VHQVLWLYH���3DUW�%�

Page 15: Ruby Gotchas

�RQH�����PDNHV�5XE\�WKLQN�\RX�PLJKW�EH�JLYLQJ�DQ�DUJXPHQW�WR�PHWKRG�RQH�$JDLQ��XVH�%$/$1&('�ZKLWHVSDFH��ERWK�VLGHV�RU�QHLWKHU��&UHGLW��-RVK�&KHHN�

GHI�RQH���HQGRQH����� !��RQH��� !��RQH���� !��RQH���$UJXPHQW(UURU��ZURQJ�QXPEHU�RI�DUJXPHQWV����IRU���

'RQW�EH�VR�VHQVLWLYH���3DUW�&�

Page 16: Ruby Gotchas

GEO� ��!�[��^�[� ���`� !���3URF������ODPEGD�!�

GEO� ��![^�[� ���`� !���3URF������ODPEGD�!

GEO� ��!�[�^�[� ���`� !���3URF������ODPEGD�!

WZR� ��!�^���`� !���3URF������ODPEGD�!

GEO� ��!��[��^�[� ���`V\QWD[�HUURU��XQH[SHFWHG�W/3$5(1B$5*��H[SHFWLQJ�NH\ZRUGBGRB/$0%'$�RU�W/$0%(*

WZR� ��!����^���`VDPH�V\QWD[�HUURU

�6WDEE\��ODPEGDV�������

3DUHQWKHVHV�RSWLRQDO

6SDFH�EHIRUH�DIWHU�DUJV�ZLWKRXW�SDUHQV���2.�

6SDFH�DIWHU�SDUHQV��2.�

$JDLQ��VSDFH�EHIRUH�SDUHQV��12�

'RQW�EH�VR�VHQVLWLYH���3DUW�'�

Page 17: Ruby Gotchas

:KHQ�ZLOO�LW�HQG"���2U�VWDUW"�

VWU� ��2QH?Q7ZR?Q7KUHH�

VWU� a��A7ZR��� !��

VWU� a��?$7ZR?=�� !�QLO

VWU� a��?$2QH�� !��

VWU� a��7KUHH?=�� !���

,Q��VWDQGDUG��UHJH[SV�A�LV�VWDUW�DQG���LV�HQG���RI�WKH�ZKROH�VWULQJ�

,Q�5XE\�A�LV�VWDUW�DQG���LV�HQG���RI�DQ\�OLQH�

?$�LV�VWDUW�DQG�?=�LV�HQGRI�WKH�ZKROH�VWULQJ�

Page 18: Ruby Gotchas

>@�DQ\"� !�IDOVH>�@�DQ\"� !�WUXH>�IRR���EDU@�DQ\"� !�WUXH

��RN�VR�IDU��%87�

>QLO@�DQ\"� !�IDOVH>IDOVH@�DQ\"� !�IDOVH>IDOVH��QLO@�DQ\"� !�IDOVH

�DQ\"�GRHV�QRW�PHDQ�³DQ\�HOHPHQWV"´�

:LWK�EORFN��³GR�DQ\�PDNH�EORFN�WUXH"´�

:LWKRXW��³DUH�DQ\�WUXWK\"´��,PSOLFLW�EORFN��^�_�R�_�R�`

JHWWLQJ�DQ\"

Page 19: Ruby Gotchas

FODVV�)RR��DWWUBUHDGHU��YDOXH��GHI�LQLWLDOL]H�Y�����YDOXH� �Y��HQG��GHI�VHWBYDO�Y�����#YDOXH� �Y��HQGHQGI� �)RR�QHZ���I�YDOXH� !�QLO����QRW��"�I�VHWBYDO��� !��I�YDOXH� !��

$QJ�RQWR�\HU�#�

1DNHG�YDOXH�EHFRPHV�D�WHPSRUDU\�ORFDO�YDULDEOH�

6ROXWLRQ��UHPHPEHU�WKH�#����2U��VHOI����

*HWV�SHRSOH�IURP�-DYD�&����QRW�VR�PXFK�3\WKRQ��ZKLFK�QHHGV��VHOI���WRR��

�<RX�NHHS�RQ�XVLQJ�WKDW�YDULDEOH���,�GRQW�WKLQN�LW�PHDQV�ZKDW�\RX�WKLQN�LW�PHDQV��

Page 20: Ruby Gotchas

3DUHQW�VHWBYDOXH&KLOG�YDOXH� !��

:K\"���:H�GLGQW�FKDQJH�&KLOGV�##YDOXH���2U�GLG�ZH"

##�YDUV�DUH�VKDUHG�ZLWK�VXEFODVVHV����QRW�MXVW�WKDW�WKH\�H[LVW��EXW�WKH�YDU�LWVHOI��

%HVW�WR�MXVW�IRUJHW�WKH\�H[LVW�

FODVV�3DUHQW��##YDOXH� ����GHI�VHOI�YDOXH����##YDOXH��HQG��GHI�VHOI�VHWBYDOXH����##YDOXH� ����HQGHQG

FODVV�&KLOG���3DUHQW��##YDOXH� ��HQG

2YHUVKDULQJ

Page 21: Ruby Gotchas

6XSHUPDQ�YV��WKH�,QYLVLEOH�0DQ

&KLOG��QHZ�DGG�������� !���&KLOG��QHZ�DGG������������ !���

VXSHU�ZLWK�QR�DUJ�OLVW�VHQGV�ZKDW�FDOOHU�JRW

VXSHU�ZLWK�H[SOLFLW�DUJV�VHQGV�WKRVH�DUJV

WR�VHQG�12�DUJV��XVH�HPSW\�SDUHQV��VXSHU��

FODVV�3DUHQW��GHI�DGG� DUJV����DUJV�LQMHFW�����HQGHQG

FODVV�&KLOG����3DUHQW��GHI�DGG�DUJ���DUJ�����VXSHU�DUJ���DUJ���HQGHQGFODVV�&KLOG����3DUHQW��GHI�DGG� DUJ����VXSHU��HQGHQG

Page 22: Ruby Gotchas

FODVV�3DUHQW��GHI�LQLWLDOL]H����SXWV��3DUHQW�LQLW���HQGHQG

FODVV�1R,QLW&KLOG���3DUHQWHQG

1R,QLW&KLOG�QHZ�3DUHQW�LQLW

FODVV�1RUPDO&KLOG���3DUHQW��GHI�LQLWLDOL]H����SXWV��1RUPDO&KLOG�LQLW���HQGHQG

1RUPDO&KLOG�QHZ��1RUPDO&KLOG�LQLW�

:LWK�LQLW�LDOL]H��RU�ZLWKRXW�LW

FODVV�6XSHU&KLOG���3DUHQW��GHI�LQLWLDOL]H����SXWV��6XSHU&KLOG�����VXSHU����SXWV��LQLW���HQGHQG

6XSHU&KLOG�QHZ6XSHU&KLOG3DUHQW�LQLWLQLW

3DUHQWV�LQLWLDOL]H�UXQV�DXWRPDJLFDOO\�RQO\�LI�FKLOG�KDV�QRQH���(OVH��SDUHQWV�PXVW�EH�FDOOHG�WR�UXQ�

Page 23: Ruby Gotchas

��WLPHV�GR�_ORRSBQXP_��VXP�__ ����VXP�� �ORRSBQXP������SXWV�VXPHQG���

IRU�ORRSBQXP�LQ�������VXP�__ ����VXP�� �ORRSBQXP��SXWV�VXPHQG���

8QGHI�/HSSDUG"

9DULDEOHV�GHFODUHG�LQ�EORFNV�SDVVHG�WR�LWHUDWRUV��H�J���WLPHV�RU�HDFK��DUH�XQGHILQHG�DW�WKH�WRS�RI�HDFK�LWHUDWLRQ�

,WHUDWRUV�FDOO�WKH�EORFN�UHSHDWHGO\��VR�YDUV�DUH�RXW�RI�VFRSH�DJDLQ�DIWHU�HDFK�FDOO�

%XLOW�LQ�ORRSLQJ�FRQVWUXFWV��H�J���ZKLOH�RU�IRU��DUH�2.�

Page 24: Ruby Gotchas

)UHH]H��$U�UD\��3DUW�,�

)UHH]LQJ�DQ�DUUD\�RU�KDVK�IUHH]HV�LW��QRW�WKH�LWHPV�LW�FRQWDLQV�

&KDQJLQJ�)L[QXP�WR�QHZ�YDOXH�PHDQV�QHZ�REMHFW���7KH\�FDQW�EH�PRGLILHG�LQ�SODFH���$�)L[QXPV�REMHFWBLG� �YDOXH� �������

7+,6�LV�ZK\�)L[QXP�FRQVWDQWV�DUHQW�

$55� �>�����@� !�>�������@$55������ !�>����������@$55�IUHH]H� !�>����������@$55�����5XQWLPH(UURU��FDQW�PRGLI\�IUR]HQ�$UUD\$55>�@�� ��5XQWLPH(UURU��FDQW�PRGLI\�IUR]HQ�$UUD\��REMHFWBLG� !����REMHFWBLG� !��

Page 25: Ruby Gotchas

$55� �>�RQH����WZR����WKUHH�@$55�IUHH]H$55�����IRXU�5XQWLPH(UURU��FDQW�PRGLI\�IUR]HQ�$UUD\$55>�@� ��HQR�5XQWLPH(UURU��FDQW�PRGLI\�IUR]HQ�$UUD\$55>�@�REMHFWBLG� !�����������$55>�@�UHYHUVH�$55� !�>�HQR����WZR����WKUHH�@$55>�@�REMHFWBLG� !�����������

8QOLNH�)L[QXPV��6WULQJV�

FDQ�EH�PRGLILHG�LQ�SODFH���

&DQ�WKXV�PRGLI\�D�JLYHQ�

VORW�LQ�DQ�$UUD\�RI�6WULQJV�

)UHH]H��$U�UD\��3DUW�,,�

Page 26: Ruby Gotchas

:HOO�NQRZQ�JRWFKD��EDQJ�YHUVLRQV�RI�PHWKRGV�XVXDOO\�PRGLI\�DUJ�

%87�$/62�

0DQ\�UHWXUQ�QLO�LI�QR�FKDQJH�QHHGHG�

'2�127�5(/<�21�7+(0�5(7851,1*�6$0(�9$/8(�$6�121�%$1*�9(56,21�

7R�%DQJ�2U�1RW�7R�%DQJ

VWU� ��IRR�>VWU�XSFDVH��VWU@� !�>³)22³��³IRR³@>VWU�XSFDVH���VWU@� !�>³)22³��³)22³@DUU� �>����������@>DUU�XQLT��DUU@� !�>>�������@��>����������@@>DUU�XQLT���DUU@� !�>>�������@��>�������@@

VWU� ��)22�>VWU�XSFDVH���VWU@� !�>QLO���)22�@DUU� �>�������@>DUU�XQLT���DUU@� !�>QLO��>�������@@

Page 27: Ruby Gotchas

,QLWLDO�YDOXH�JLYHQ�DV�REMHFW�LV�VDPH�REMHFW�IRU�HDFK�VORW��LI�PRGGHG�LQ�SODFH��QRW�UHDVVLJQHG�DV�ZLWK� �RU�� ��

,QLWLDO�YDOXH�JLYHQ�DV�EORFN�JHWV�HYDOXDWHG�VHSDUDWHO\�IRU�HDFK�VORW���8VH�WKLV�WR�FUHDWH�QHZ�YDUV�IRU�HDFK�

FODVV�(PS��DWWUBDFFHVVRU��QDPH���SD\��GHI�VHW�Q�S������#QDPH Q��#SD\ S���HQGHQG

HPSV� �$UUD\�QHZ����(PS�QHZ�HPSV>�@�VHW�$QG\�����HPSV>�@�VHW�%RE������H HPSV>�@����^H�QDPH`���^H�SD\`�� !��%RE��������VKRXOG�KDYH�EHHQ��$QG\������

HPSV� �$UUD\�QHZ����^�(PS�QHZ�`HPSV>�@�VHW��$QG\������HPSV>�@�VHW��%RE�������H HPSV>�@����^H�QDPH`���^H�SD\`�� !��$QG\�����

$Q�$UUD\�RI�1HZ�*RWFKDV

Page 28: Ruby Gotchas

0RVWO\�VDPH�SUREOHP��DQG�VROXWLRQ��DV�$UUD\V�

:$51,1*��FUHDWHV�QHZ�REMHFW�RQ�DFFHVV���0LJKW�FUHDWH�H[FHVVLYH�QHZ�REMHFWV��UXLQV�XVH�RI��VL]H��QLO�FKHFNLQJ��HWF�

ODQJV� �+DVK�QHZ�>@ODQJV>�FDURO@�����&�ODQJV>�UDFKHO@�����5XE\�ODQJV>�FDURO@ODQJV>�UDFKHO@� !�ERWK�>�&����5XE\�@

ODQJV� �+DVK�QHZ�^�_K��N_��K>N@� �>@`ODQJV>�FDURO@�����&�ODQJV>�UDFKHO@�����5XE\�ODQJV>�FDURO@� !�>�&�@ODQJV>�UDFKHO@� !�>�5XE\�@

0DNLQJ�D�+DVK�RI�LW

Page 29: Ruby Gotchas

� �-$9$�� �WU\�^��WKURZ�QHZ�0\([FHSWLRQ��EODK���`�FDWFK�0\([FHSWLRQ�H��^��IL[BLW���`

��58%<�LQGH[� �FDWFK��LG[��^��DUU�HDFKBZLWKBLQGH[�GR�_Y��L_����WKURZ��LG[��L�LI�Y� �WDUJHW��HQG����`

EHJLQ��UDLVH�0\([FHSWLRQ�QHZ��EODK�UHVFXH�0\([FHSWLRQ� !�H��IL[BLWHQG

5HVFXH�0H��7KURZ�D�/LQH��,OO�7U\�WR�&DWFK�,W�

5XE\�XVHV�UDLVH�DQG�UHVFXH�IRU�H[FHSWLRQV�

,Q�5XE\��WKURZ�DQG�FDWFK�DUH�127�IRU�H[FHSWLRQV�

7KH\�DUH�DGYDQFHG�IORZ�FRQWURO��WR�H[LW�GHHS�QHVWLQJ�

Page 30: Ruby Gotchas

,P�*RQQD�*HWFKD�*HWFKD�*HWFKD�*HWFKD�

��:DWFK�RXW�IRU�WKHVH�JRWFKDV�DV�\RX�FRGH�

��,I�5XE\�EHKDYHV�EDGO\��UHIHU�WR�WKHVH�VOLGHV�

��,I�LW¶V�QRW�KHUH��WHOO�PH��PD\EH�,¶OO�DGG�LW�

Page 31: Ruby Gotchas

$GG�JRWFKDV���WRBV�YV��WRBVWU��QHHG�WR�FRRUGLQDWH�PHWKRGBPLVVLQJ�DQG�UHVSRQGVBWRBPLVVLQJ��UHVFXH�IURP�D�6WDQGDUG(UURU��QRW�DQ�([FHSWLRQ��LQVWDQFHBHYDO�ZLWK�FDOOV�LQ�ORFDO�VFRSH��SULYDWH�LVQ¶W�UHDOO\��DQG�QRW�DW�DOO�Z��FODVV�PHWKRGV��ODPEGD�YV��SURF�YV��EORFN�YV��PHWKRG�YV��*RG]LOOD��DWWULEXWH �YDO��ZLOO�DOZD\V�UHWXUQ�WKH�DUJXPHQW��+DVK�QHZ�ZLWK�EORFN�PD\�UXLQ�VL]H�QLO�FKHFNV��3UR[LHV�DUH�DOZD\V�WUXWK\��HYHQ�LI�WKH�WDUJHW�LV�QRW��FODVV�)RR��%DU��GHILQHG�RXWVLGH�0RGXOH�)RR��ZRQ¶W�VHH�LQVLGH�)RR��,Q�GHEXJJLQJ��³QH[W´�VNLSV�RYHU�EORFNV

5DLOV�JRWFKDV"6FUHHQFDVW�VHULHV"

7KH�6RPHGD\�0D\EH�/LVW

Page 32: Ruby Gotchas

4XHVWLRQV�&RQWDFW�(WF�

TXHVWLRQV�DQ\"���JRWFKDV>�PRUH@�DQ\"&RQWDFW�LQIRUPDWLRQ�DQG�VKDPHOHVV�SOXJV�

<RXU1DPH+HUH���75H[�>DW@�&RGRVDXU�>GRW@�XV�\HV��SXW�\RXU�QDPH�WKHUH��ZLWKRXW�VSDFHV��SXQFWXDWLRQ��HWF��

���������������KWWS���ZZZ�FRGRVDXU�XV��&RGRVDXUXV��//&�PDLQ�VLWH�KWWS���EORJ�FRGRVDXU�XV��FRGH�EORJ�KWWS���ZZZ�GDUH�;/�FRP��H[FHOOHQFH�EORJ�KWWS���OLQNHGLQ�FRP�LQ�GDYHDURQVRQKWWS���IDFHERRN�FRP�GDUH�[O#GDYHDURQVRQ