1. Rubyã©ã€ãã©ãªãšã¯
ã©ã€ãã©ãªã¯ããã°ã©ãã³ã°ã®äžçã§ã¯åžžã«éèŠãªåœ¹å²ãæãããŠããŸããçŸåšãæ°å€ãã®ããã°ã©ãã³ã°èšèªãååšããŸããããã®äžã§Rubyã¯ãã®ç°¡æœã§çŸããææ³ãšãå匷ãã©ã€ãã©ãªãé åã®äžã€ãšãããŠããŸãã
ãã®ç« ã§ã¯ãããæ·±ãRubyã®ã©ã€ãã©ãªã«ã€ããŠè§£èª¬ããŸãããªããããã§èšã”Rubyã®ã©ã€ãã©ãª”ãšã¯ãç¹å®ã®æ©èœãç°¡åã«å©çšããããã®Rubyã§æžãããã³ãŒãã®éåãç¹ã«GemãšåŒã°ããããã±ãŒãžã®åœ¢ã§æäŸããããã®ãæããŸãã
ã§ã¯ãæåã«ã©ã€ãã©ãªã®åºæ¬çãªæŠå¿µã«ã€ããŠèŠãŠãããŸãããã
1.1 ã©ã€ãã©ãªã®åºæ¬çãªæŠå¿µ
ã©ã€ãã©ãªãšã¯ãç¬ç«ããåèœãæäŸããäžé£ã®ããã°ã©ã ã§ãä»ã®ããã°ã©ã ããåŒã³åºããŠçšããããšãã§ããŸãããããã©ã€ãã©ãªã®å šäœåãšãªããŸãã
ã©ã€ãã©ãªãæäŸããæ©èœãå©çšããããšã§ãããã°ã©ã éçºè ã¯âšæéãšåŽåãç¯çŽããããšãã§ããŸããããã¯ãåå©çšãã®ååã«åºã¥ããŠããŸãã
åå©çšã®ååãšã¯ãäžåºŠäœã£ãã³ãŒããå床å©çšããããšã§ãå¹ççãªããã°ã©ãã³ã°ãè¡ããšããååã§ããããã«ãããäžããæ°ããªã³ãŒããæžããªããŠããæ¢åã®ã³ãŒããã¢ãžã¥ãŒã«ãçµã¿åãããããšã§æ°ããæ©èœãå®çŸã§ããŸãã
1.2 Rubyãšã©ã€ãã©ãªã®é¢ä¿
ã§ã¯ãRubyãšã©ã€ãã©ãªã®é¢ä¿ã«ã€ããŠã¿ãŠã¿ãŸããããRubyèšèªã¯ã足ããªãéšåã¯ã©ã€ãã©ãªã§è£ããããšããå²åŠã®ããšã«èšèšãããŸããã
ãã®ãããRubyèªäœãæäŸããæ©èœã¯æ¯èŒçå°ãªãã§ããããã®åæ§ã ãªã©ã€ãã©ãªãã奜ããªãã®ãéžãã§å©çšããããšã容æã«ãªã£ãŠããŸãã
ãŸããRubyã«ã¯”gem”ãšåŒã°ããããã±ãŒãžç®¡çã·ã¹ãã ãååšããŠãããããã䜿ãããšã§ã©ã€ãã©ãªã®ã€ã³ã¹ããŒã«ãã¢ããããŒããç°¡åã«è¡ãããšãã§ããŸãã
1.3 ã©ã€ãã©ãªã®å©çšæ¹æ³
å ·äœçãªã©ã€ãã©ãªã®å©çšæ¹æ³ã«ã€ããŠã¿ãŠãããŸãããããŸãã¯ã©ã€ãã©ãªã®ã€ã³ã¹ããŒã«ããã§ããRubyã®ã©ã€ãã©ãªã¯ãéåžžãgemãšããããã±ãŒãžç®¡çã·ã¹ãã ãéããŠã€ã³ã¹ããŒã«ããŸãã
äŸãã°ããrailsããšããã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããã«ã¯ãã³ãã³ãã©ã€ã³ã«ãŠãgem install railsããå ¥åããŸããããããããšã§ãæ軜ã«ã©ã€ãã©ãªãå°å ¥ããããšãã§ããŸãã
ãããŠã©ã€ãã©ãªã䜿ãéã«ã¯ãrequireãã䜿ããŸããããã¯ã©ã€ãã©ãªãèªã¿èŸŒãããã®ã¡ãœããã§ããrequire ‘ã©ã€ãã©ãªå’ãã®ããã«æžããŸãã
1.4 ã©ã€ãã©ãªã®ã¡ãªãããšãã¡ãªãã
ã©ã€ãã©ãªã®ã¡ãªããã¯ãå ã»ã©è§Šããããã«æéãšåŽåãç¯çŽããããšãã§ããç¹ã§ããç¹ã«Rubyã®ã©ã€ãã©ãªã¯ããã©ãšãã£è±ãã§ãã»ãšãã©ã©ããªæ©èœãã©ã€ãã©ãªãšããŠæäŸãããŠããŸãã
ãããããã¡ãªãããååšããŸãããã®äžã€ãããã©ã€ãã©ãªäŸåãã§ããããã¯ãèªåã§ã³ãŒããæžãæéãçãããã«ããŸãã«ãã©ã€ãã©ãªã«é Œã£ãŠããŸããšããã®ã©ã€ãã©ãªãæŽæ°ãããããã¡ã³ããã³ã¹ãçµäºãããããéã«åé¡ãèµ·ãããããšãããã®ã§ãã
ãŸããã©ã€ãã©ãªãçšããããšã§ã³ãŒããåé·ã«ãªãå¯èœæ§ããããŸããããã¯ããã¯ãèªåã§ã³ãŒããæžãèœåãç¶æããé©åãªãã©ã³ã¹ãä¿ã€ããšãéèŠã§ãã
2. Rubyã«ãããéèŠãªæšæºã©ã€ãã©ãª
ãã®ç« ã§ã¯ãRubyã®æšæºã©ã€ãã©ãªã«ã€ããŠè©³ããèŠãŠãããŸããRubyã®æšæºã©ã€ãã©ãªã¯éåžžã«å€å²ã«æž¡ããŸãããããã§ã¯ç¹ã«é »ç¹ã«äœ¿çšããã䟿å©ãªCSVãJSONãOpen-URIãTimeã©ã€ãã©ãªãåãäžããŸãã
ãããã©ã€ãã©ãªã¯ãRubyã䜿ã£ãŠããã°ã©ã ã®å¶äœãè¡ãéã«æããã䜿ãããæ©èœã®äžéšã§ããããããã®ç¹æ§ãšäœ¿ãæ¹ãç解ããŠããããšãéèŠã§ãã
以äžã«ãããåã©ã€ãã©ãªã®ç¹åŸŽãšäž»ãªã¡ãœããã«ã€ããŠèª¬æããŸãã
2.1 CSVã©ã€ãã©ãª
CSVã©ã€ãã©ãªã¯ãRubyã§CSVãã¡ã€ã«ãæ±ãããã®ã©ã€ãã©ãªã§ãããã®ã©ã€ãã©ãªãå©çšããããšã«ãããCSVãã¡ã€ã«ã®èªã¿æžããæäœã容æã«è¡ããŸãã
CSVã©ã€ãã©ãªã«ã¯ãCSV.foreachãCSV.readãªã©å€ãã®ã¡ãœãããçšæãããŠããŸãããããã¯ããŒã¿ã®æœåºãæ¿å ¥ãåé€ãªã©ãCSVãã¡ã€ã«ã®æäœãçŽé²çã«è¡ãããšãå¯èœã«ãªããŸãã
ç¿ç床ã«ããããŸããã倧æµã®CSVãã¡ã€ã«æäœã¯ãã®CSVã©ã€ãã©ãªã ãã§è§£æ±ºã§ããŸãã
2.2 JSONã©ã€ãã©ãª
次ã«JSONã©ã€ãã©ãªã«ã€ããŠèª¬æããŸããJSONã¯JavaScript Object Notationã®ç¥ã§ãããŒã¿äº€æãã©ãŒãããã®äžçš®ã§ãããã®ã©ã€ãã©ãªã䜿ããšãRubyã§JSON圢åŒã®ããŒã¿ãæ±ãããšã容æã«ãªããŸãã
JSONã©ã€ãã©ãªã®äž»ãªæ©èœã«ã¯ãJSON圢åŒã®ããã¹ããRubyã®ããã·ã¥ãé åã«å€æãããããã®éãè¡ãããšãã§ããŸããããã«ãããããŒã¿ã®éåä¿¡ããã¡ã€ã«ã®èªã¿æžããæè»ã«è¡ããŸãã
å ·äœçã«ã¯JSON.parseãJSON.generateãšãã£ãã¡ãœããã䜿çšããŸãããããã®çç¥ã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®å¶äœãAPIã®äœæãªã©ã«ã圹ç«ã€ã§ãããã
2.3 Open-URIã©ã€ãã©ãª
Open-URIã©ã€ãã©ãªã¯ãRubyã§ã€ã³ã¿ãŒãããäžã®ãªãœãŒã¹ãç°¡åã«ååŸããããã®ã©ã€ãã©ãªã§ããHTTP/HTTPSãšFTPã®URIããªãŒãã³ããæ©èœãæäŸããŸãã
ããšãã°ãopenã¡ãœãããçšããŠURLãéããšããã®URLã®HTMLææžãæååãšããŠèªã¿èŸŒãããšãã§ããŸããããã«ããããŠã§ãã¹ã¯ã¬ã€ãã³ã°ã«å¿ èŠãªæäœãè¡ãããšãå¯èœã§ãã
äžæ¹ããŠã§ãããŒãžã«ç»åã®ãªã³ã¯ãå«ãŸããŠããå Žåããã®ç»åãååŸããããã«ãOpen-URIã©ã€ãã©ãªã䜿çšã§ããŸããããã«ãããéåžžã«è€éãªãŠã§ãæäœãRubyã§å¶åŸ¡ããããšãã§ããŸãã
2.4 Timeã©ã€ãã©ãª
æåŸã«ãTimeã©ã€ãã©ãªã«ã€ããŠç¢ºèªããŸãããã®ã©ã€ãã©ãªã䜿çšããã°ãRubyã§æéã®æäœãç°¡åã«è¡ããŸãã
Timeã©ã€ãã©ãªã¯æå»ã®çæãæŒç®ã解æãè¡ãããã®è±å¯ãªã¡ãœãããæäŸããŸããäŸãã°ãçŸåšæå»ãååŸããããç¹å®ã®æå»ãæå®ããŠTimeãªããžã§ã¯ããçæããããšãã£ãæäœãå¯èœã§ãã
ãŸããTimeãªããžã§ã¯ãå士ã®å·®åãèšç®ããããç¹å®ã®ãã©ãŒãããã«åŸã£ãŠæå»ãæååãšããŠåºåãããããããšãå¯èœã§ãããããã¯ãã°åŠçãæå»èšç®ãªã©ãå¹ åºãå Žé¢ã§å¿ èŠãšãªãæäœã§ãã
3. Rubyã§äººæ°ã®ãµãŒãããŒãã£ã©ã€ãã©ãª
æã ã¯ããå¹ççãªã³ãŒããæžãããã«ãããŸããŸãªã©ã€ãã©ãªã掻çšããŸãã次ã«ãRubyã§ç¹ã«äººæ°ã®ãããµãŒãããŒãã£ã©ã€ãã©ãªã«ã€ããŠèª¬æããŸããåã©ã€ãã©ãªã®åœ¹å²ãç¹åŸŽããããŠãªããããRubyã³ãã¥ããã£ã«æãããŠããã®ãã«ã€ããŠã玹ä»ããŸãã
ã©ã€ãã©ãªã¯ããã䜿çšããã³ãŒããåå©çšããããããããã®ãã®ã§ãã©ã®èšèªã«ãååšããŸããRubyã§ããæ§ã ãªçš®é¡ã®ã©ã€ãã©ãªãååšãããããããåå¥ã®ç®çãšåœ¹å²ãæã£ãŠããŸãã
ããã§ã¯ãRubyã§æã人æ°ã®ããRailsãNokogiriãSinatraãDeviseã®4ã€ã®ã©ã€ãã©ãªã«ã€ããŠè©³ãã説æããŸãã
3.1 Railsã©ã€ãã©ãª
Railsã¯ãRubyã§æãæåãªã©ã€ãã©ãªã®äžã€ã§ãRuby on RailsãšãåŒã°ããŠããŸãããã®ã©ã€ãã©ãªã¯ããŠã§ãã¢ããªã±ãŒã·ã§ã³ã®éçºãå©ããããã®ãã®ã§ãMVCïŒModel-View-ControllerïŒãã¿ãŒã³ãæ¡çšããŠããŸãã
Railsã䜿ããšãããŒã¿ããŒã¹ãšã®ããåããã»ãã·ã§ã³ç®¡çãã«ãŒãã£ã³ã°ãªã©ã®è€éãªäœæ¥ãç°¡åã«è¡ãããšãã§ããŸããããã«ãããéçºè ã¯ããå€ãã®æéãæ¬è³ªçãªã³ãŒãã®äœæã«è²»ããããšãå¯èœãšãªããŸãã
ãŸããRailsã¯å€§éã®ãã©ã°ã€ã³ãšäºææ§ããããããæ©èœã®è¿œå ãã«ã¹ã¿ã ã容æã§ãããããRailsãå€ãã®Rubyéçºè ã«æãããçç±ã®äžã€ã§ãã
3.2 Nokogiriã©ã€ãã©ãª
Nokogiriã¯ãXMLãHTMLã®è§£æãšæäœãè¡ãããã®ã©ã€ãã©ãªã§ããã¹ã¯ã¬ã€ãã³ã°ïŒãŠã§ãããŒãžããæ å ±ãååŸããããšïŒããããŒã¿è§£æã«ããã匷åãªããŒã«ãšããŠãå¹ åºã掻çšãããŠããŸãã
Nokogiriã®å©ç¹ã¯ãã®åŒ·åãªè§£æåãšã䜿ããããã«ãããŸããè€éãªHTMLãXMLããã¥ã¡ã³ãã§ããçæéã§è§£æããããšãå¯èœã§ãããŸããNokogiriã®APIã¯çŽæçã§ãæ°èŠãŠãŒã¶ã§ã容æã«ç解ããããšãã§ããŸãã
ãŸããCSSã»ã¬ã¯ã¿ãŒãXPathã«ãã粟å¯ãªèŠçŽ éžæãå¯èœãªãããéçºè ã¯å¿ èŠãªããŒã¿ãç°¡åã«ååŸã§ããŸãããã®ããããŠã§ãã¹ã¯ã¬ã€ãã³ã°ãããŒã¿è§£æã«é¢ããå€ãã®Rubyéçºè ã«éå®ãããŠããŸãã
3.3 Sinatraã©ã€ãã©ãª
Sinatraã¯ã軜éã§ãããªããé«æ©èœãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ã©ã€ãã©ãªã§ããç¹ã«ãã·ã³ãã«ã§å°ããªãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®éçºã«åããŠããŸãã
Sinatraã¯ãDSLïŒDomain Specific LanguageïŒãšããŠèšèšãããŠãããã³ãŒãã®ã»ããã¢ãããšã«ãŒãå®çŸ©ããŒãããç°¡åã«è¡ãããšãã§ããŸããããã«ãããéçºè ã¯ç¡é§ãªèšå®äœæ¥ãçããã¢ããªã±ãŒã·ã§ã³ã®ã³ã¢ãªéšåã«æ³šåããããšãå¯èœãšãªããŸãã
ãã®äœ¿ãããããšæè»æ§ã«ãããSinatraã¯å°ïœäžèŠæš¡ã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã«é©ããã©ã€ãã©ãªãšããŠãå€ãã®Rubyéçºè ã«ãå§ããããŠããŸãã
3.4 Deviseã©ã€ãã©ãª
Deviseã¯ãRuby on Railsã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãŠã§ãã¢ããªã±ãŒã·ã§ã³ã§ã®ãŠãŒã¶ãŒèªèšŒãç°¡åã«å®çŸããããã®ã©ã€ãã©ãªã§ãã
Deviseã¯ããµã€ã³ã€ã³ããã°ã€ã³ããã¹ã¯ãŒããªã»ãããªã©ã®äžè¬çãªèªèšŒäœæ¥ãé«éåããäžé£ã®ã¢ãžã¥ãŒã«ãæäŸããŸããããã«ãããéçºè ã¯ãŠãŒã¶ãŒèªèšŒã®æéãçãããã®ä»ã®éèŠãªéçºäœæ¥ã«æ³šåããããšãã§ããŸãã
ãã®äœ¿ãããããšå æ¬æ§ã«ãããDeviseã¯Ruby on Railsã䜿çšããéçºè ã®éã§äººæ°ã®ããèªèšŒã©ã€ãã©ãªãšãªã£ãŠããŸãã
4. Rubyã©ã€ãã©ãªã®éžå®æ¹æ³
æ¬ç« ã§ã¯ãé©åãªRubyã®ã©ã€ãã©ãªãéžå®ããããã®æ¹æ³ã«ã€ããŠè§£èª¬ããŸããã©ã€ãã©ãªã®éžå®ã¯äžèŠåçŽã«èŠããŸãããå®éã«ã¯è€æ°ã®èŠçŽ ãèæ ®ããå¿ èŠããããŸããé©åãªã©ã€ãã©ãªãéžã¶ããšã§ãã³ãŒãã®å質ãé«ããã ãã§ãªããããäœæ¥ã軜æžãããŸãã
4.1 ã©ã€ãã©ãªã®è©äŸ¡æ¹æ³
ãŸãåãã«ãã©ã€ãã©ãªãè©äŸ¡ããããã€ãã®ããŒãšãªãèŠçŽ ãã玹ä»ããŸããäž»ã«ãã¡ã³ããã³ã¹ã®é »åºŠãäŸåæ§ãããã¥ã¡ã³ããŒã·ã§ã³ã®è³ªããããŠäœ¿ãããããè©äŸ¡èŠçŽ ãšãªããŸãã
ç¹ã«äœ¿ããããã¯éèŠã§ãèªèº«ã®ãããžã§ã¯ãã«çŽæ¥çµã¿èŸŒãããã©ããããè€éãªèšå®ãªãã§åäœãããã©ããçãè©äŸ¡ç¹ãšãªããŸãã
ãããã®ããŒèŠçŽ ãåºã«ã©ã€ãã©ãªãè©äŸ¡ããããšã§ãããããã©ãŒãã³ã¹ã®é«ãã³ãŒããæžãããšãå¯èœãšãªããŸãã
4.2 éžåºã®éèŠãªèŠçŽ
次ã«ãã©ã€ãã©ãªã®éžå®ã«ãããŠéèŠãªèŠçŽ ã«ã€ããŠè§£èª¬ããŸããäž»ã«ãã©ã€ãã©ãªã®äººæ°åºŠã察å¿ããRailsããŒãžã§ã³ãããã³éçºè ã³ãã¥ããã£ã®æŽ»çºããåºæºã«éžã¶ãšè¯ãã§ãããã
å ·äœçã«ã¯GitHubã®ã¹ã¿ãŒæ°ãForksæ°ãèŠãããšã§ã©ã€ãã©ãªã®äººæ°åºŠã確èªã§ããŸãããŸããéçºè ã³ãã¥ããã£ã®æŽ»çºãã¯ãã©ã€ãã©ãªã®æŽæ°é »åºŠãåé¡ç¹ãžã®å¯Ÿå¿é床ã瀺ããŠããŸãã
以äžã®èŠçŽ ãåºã«éžå®ãè¡ãããšã§ãé·æã«ããããããžã§ã¯ãã§ãå®å¿ããŠäœ¿çšããããšãã§ããã©ã€ãã©ãªãéžã¶ããšãã§ããŸãã
4.3 人æ°ã®ã©ã€ãã©ãªã®ãã§ãã¯æ¹æ³
人æ°ã®ã©ã€ãã©ãªããã§ãã¯ããã«ã¯ãGitHubãRubyGemsãªã©ã®ãã©ãããã©ãŒã ã掻çšããŸãããã¡ãã§ææ°ã®äººæ°ã©ã€ãã©ãªããã¬ã³ãããã§ãã¯ã§ããŸãã
RubyGemsã§ã¯ããŠã³ããŒãæ°ãææ°ããŒãžã§ã³ã確èªããããšãã§ããŸããGitHubã§ã¯ã¹ã¿ãŒæ°ãForksæ°ããã©ã€ãã©ãªã®äººæ°åºŠãææ¡ããããšãã§ããŸãã
ãããã®æ å ±ãå®æçã«ãã§ãã¯ããããšã§ãèªèº«ã®ãããžã§ã¯ãã«æé©ãªã©ã€ãã©ãªãèŠã€ããããšãã§ããŸãã
4.4 éžåºã®æ³šæç¹
ã©ã€ãã©ãªãéžå®ããéã®æ³šæç¹ãšããŠã¯ããããŸã§ãã©ã€ãã©ãªãå¿ èŠãªæã«äœ¿çšããããšãéèŠã§ãããŸããé©åãªã©ã€ãã©ãªãéžã¶ããšãéèŠã§ãããšããããšãæ¹ããŠåŒ·èª¿ããŸãã
äžéšã®ã©ã€ãã©ãªã¯ã䜿çšããããšã§äŸ¿å©ããæäŸããŸãããåæã«é床ãªäŸåæ§ãæã¡èŸŒãããšããããŸãããã®ãããå¿ èŠä»¥å€ã®æ©èœãæã€ã©ã€ãã©ãªãç¡éã«åãå ¥ãããšãã³ãŒãã®ç®¡çãè€éåããããšããããŸãã
æåŸã«ãã©ã€ãã©ãªéžå®ã¯ç°¡åã«èŠããŠããŸããŸãããæéããããŠåå³ããè©äŸ¡ããããšãéåžžã«éèŠã§ããé©åãªã©ã€ãã©ãªãçšããããšã§ããã質ã®é«ãã³ãŒããæžãããšãå¯èœãšãªããŸãã
5. ã©ã€ãã©ãªã®ã€ã³ã¹ããŒã«ãšæŽæ°
æ¬ç« ã§ã¯ãRubyããã匷åã«å©çšããããã®ã©ã€ãã©ãªã®ã€ã³ã¹ããŒã«ãšæŽæ°æ¹æ³ã詳ãã解説ããŸããããã«ãåããŠã€ã³ã¹ããŒã«ããã«ãµããããã©ã€ãã©ãªãšãããŒãžã§ã³ç®¡çã®åé¡ãžã®å¯Ÿçãå ±æããŠãããŸãã
ã©ã€ãã©ãªã®éžæããã€ã³ã¹ããŒã«ããããŠæŽæ°ãŸã§äžéããã¹ã¿ãŒããã°ãRubyã®å¯èœæ§ã¯ç¡é倧ãšèšã£ãŠãéèšã§ã¯ãããŸããããã£ãããã®æ¹æ³ãäžç·ã«åŠãã§ãããŸãããã
5.1 ã©ã€ãã©ãªã®ã€ã³ã¹ããŒã«æ¹æ³
Rubyã®ã©ã€ãã©ãªã¯ãRubyGemsãšããããã±ãŒãžç®¡çã·ã¹ãã ãéããŠã€ã³ã¹ããŒã«ãããŸããäŸãã°ãéåžžã«äººæ°ã®ããhttpãªã¯ãšã¹ãã©ã€ãã©ãªã§ãã “rest-client” ãã€ã³ã¹ããŒã«ããã«ã¯ãã³ãã³ãã©ã€ã³ã«ãŠ “gem install rest-client” ãšå ¥åããŸãã
ããã§ç°¡åã«å¿ èŠãªã©ã€ãã©ãªãRubyã®ããŒã«ã«ç°å¢ã«ã€ã³ã¹ããŒã«ã§ããŸããç¹ã«èšå®ããããšãªããå³åº§ã«ã©ã€ãã©ãªãå©çšã§ããããã«ãªãã®ãRubyã®åŒ·ã¿ãšèšã£ãŠãè¯ãã§ãããã
5.2 ã©ã€ãã©ãªã®æŽæ°æ¹æ³
Rubyã®ã©ã€ãã©ãªã®æŽæ°ãéåžžã«å®¹æã§ãã”gem update {ã©ã€ãã©ãªå}”ãšå ¥åããã ãã§ãææ°çã«æŽæ°ã§ããŸããäŸãã°ãå ã»ã©ã€ã³ã¹ããŒã«ãã “rest-client” ã©ã€ãã©ãªãæŽæ°ããå Žåã”gem update rest-client” ãšèšè¿°ããŸãã
ããããäžåºŠã«å šãŠã®ã€ã³ã¹ããŒã«æžã¿ã©ã€ãã©ãªãæŽæ°ãããå Žåã¯ã”gem update”ãšã ãèšè¿°ããã°å šãŠæŽæ°ã§ããŸãã補åçã®ã¢ããªã±ãŒã·ã§ã³ãéçšããŠããå Žåã«ã¯ãæŽæ°ããåã«ããã¯ã¢ããããã¹ããããããããŸãã
5.3 åããŠã®ã€ã³ã¹ããŒã«ã«åããã©ã€ãã©ãª
æåã®äžæ©ãšããŠåããŠããã©ã€ãã©ãªãšããŠã¯ãå ã»ã©ã玹ä»ãã “rest-client” ãããããã§ããä»ã«ã “nokogiri”ïŒHTMLãããŒã¹ããã©ã€ãã©ãªïŒã “rack”ïŒWebã¢ããªã±ãŒã·ã§ã³ãµãŒãïŒãåå¿è ã«è©äŸ¡ãé«ãã©ã€ãã©ãªã§ãã
ãããã¯ãããããRubyãçšããWebéçºã«ãããŠéèŠãªã©ã€ãã©ãªã§ãããåºæ¬çãªæ©èœãææ¡ããŠããããšã§ãå¹ åºãéçºã«å¯Ÿå¿ã§ãããšèšããŸãã
5.4 ããŒãžã§ã³åé¡ãžã®å¯Ÿç
Rubyããã®ã©ã€ãã©ãªã¯ããŒãžã§ã³ããšã«ç°ãªãæ©èœããã°ãã£ã¯ã¹ããããŸãããã®ãããåãã©ã€ãã©ãªã§ãããŒãžã§ã³éãã«ããåäœãç°ãªãããšããããŸããããã解決ããããã«ã¯ããŒãžã§ã³ç®¡çããŒã«ãçšããããšããå§ãããŸãã
ç¹ã« “rbenv” ã¯æ¯èŒç容æã«äœ¿ãå§ãããã人æ°ã®ããŒãžã§ã³ç®¡çããŒã«ã§ãã”rbenv” ã掻çšããã°ããç¹å®ã®ãããžã§ã¯ãã ãã§ç¹å®ã®Rubyã®ããŒãžã§ã³ãå©çšãããªã©ãæè»ãªããŒãžã§ã³ç®¡çãå¯èœãšãªããŸãã
ããããæŒãããŠããã°ãããŸããŸãªã©ã€ãã©ãªãé©åã«ç®¡çããæ©èœãæ倧éã«åŒãåºãããšãã§ããã§ãããã
6. Rubyã©ã€ãã©ãªã®æŽ»çšäŸ
Rubyã©ã€ãã©ãªã¯ãããŸããŸãªãžã£ã³ã«ã®ããã°ã©ãã³ã°ã§äœ¿çšãããéçºå¹çãå質ã®åäžã«å€§ãã«å¯äžããŠããŸãã以äžã§ã¯ãå ·äœçã«ã©ã®ãããªå Žé¢ã§Rubyã©ã€ãã©ãªã掻çšãããŠããã®ããããã€ãã®äºäŸãã玹ä»ããŸãã
ãŸããæœè±¡çãªèª¬æã ãã§ã¯ç解ãé£ããæ¹ã®ããã«ãå ·äœçãªã³ãŒãäŸãæäŸããŠããŸãããããã®ã©ã€ãã©ãªãããŸã掻çšããã°ãæ¥ã ã®ããã°ã©ãã³ã°ããã£ãšæ¥œã«ãªãã§ãããã
ããã«ãåã©ã€ãã©ãªã®å ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãã³ãã¥ããã£ã®ãµããŒãã掻çšããåžžã«æ°ããç¥èãåžåããããšã倧åã«ããŠãã ããã
6.1 ãŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã§ã®æŽ»çš
Railsã¯ãRubyã§äž»ã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³ãäœæããããã®ãã¬ãŒã ã¯ãŒã¯ã®äžã€ã§ããããã®äžã«å«ãŸããæ°å€ãã®ã©ã€ãã©ãªãéçºãå©ããŸããããšãã°ãããŒã¿ããŒã¹æ¥ç¶ã©ã€ãã©ãªã®Active Recordã¯ãSQLãçŽæ¥æžãããšãªãããŒã¿ããŒã¹æäœãè¡ãããšãã§ããŸãã
ãŸãããã³ãã¬ãŒããšã³ãžã³ãšããŠæåãªERBã¯ãHTMLã«Rubyã³ãŒããåã蟌ãããšãå¯èœã§ãããã«ããåçãªãŠã§ãããŒãžãçæããããšãã§ããŸãã
ãããã¯åã£ãŠãåããªãRailsãšRubyã©ã€ãã©ãªã®é¢ä¿ã瀺ãè¯ãäŸã§ãããRailsãéããŠRubyã©ã€ãã©ãªã®é åãæããããšãã§ããã§ãããã
6.2 ããŒã¿åæã§ã®æŽ»çš
Rubyã©ã€ãã©ãªã¯ãããŒã¿åæã®åéã§ã掻èºããŸããNumo::NArrayã¯ã倧éã®ããŒã¿ãé«éã«æ±ãããã®ã©ã€ãã©ãªã§ãçŸäžïœååäœã®é åããŒã¿ãå¹ççã«åŠçããŸãã
ãŸããRubyã®ã°ã©ãäœæã©ã€ãã©ãªã§ããgnuplotrã䜿çšããã°ãããŒã¿ãèŠèŠåããŠåæçµæãäžç®ã§ç解ããããšãå¯èœã§ãã
ãããã®ã©ã€ãã©ãªãçµã¿åãããããšã§ãRubyãçšããããŒã¿åæããã容æã«ãããé«éã«è¡ããã§ãããã
6.3 ã·ã¹ãã æ§ç¯ã§ã®æŽ»çš
Rubyã«ã¯ã·ã¹ãã æ§ç¯ãè£å©ããããã®ã©ã€ãã©ãªãè±å¯ã«ååšããŸããRakeã¯ãRubyã§èšè¿°ããã¡ã€ã¯ã·ã¹ãã ãšããŠç¥ãããã¿ã¹ã¯ã®å®çŸ©ããå®è¡ãŸã§ãã·ã³ãã«ã«åŠçããããšãã§ããŸãã
ããã±ãŒãžç®¡çã·ã¹ãã ã®RubyGemsãå©çšããã°ãããŸããŸãªã©ã€ãã©ãªãç°¡åã«ç®¡çããããšãå¯èœãšãªããŸãã
ãããã®ã©ã€ãã©ãªã«ãããRubyã§ã®ã·ã¹ãã æ§ç¯ã¯ããå¹ççãå®çšçã«è¡ãããšãã§ããŸãã
6.4 ãã¹ãèªååã§ã®æŽ»çš
ãœãããŠã§ã¢éçºã«ãããå質ä¿èšŒã®äžç°ãšããŠã®ãã¹ãèªååã«ããRubyã©ã€ãã©ãªã¯å€§æŽ»èºããŸããRSpecã¯ãRubyã®ãã¹ããã¬ãŒã ã¯ãŒã¯ã®äžã€ã§ãèªååãã¹ããã·ã³ãã«ã«èšè¿°ããããšãã§ããŸãã
ãŸããCapybaraãšããã©ã€ãã©ãªãå©çšããã°ããŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ãã£ãŒãã£ãŒãã¹ããçµ±åãã¹ããå®çŸããããšãå¯èœã§ãã
ãããã®ã©ã€ãã©ãªã掻çšããããšã§ãRubyãçšãããã¹ãèªååãè¡ããŸããããã«ãããå質確ä¿ããã確å®ãã€å¹ççã«è¡ãããšãã§ããã§ãããã