Email API/SMTPRESTful API and SMTP for reliable email sending
Railsã¨ã³ã¸ãã¢ã«ãªã£ã¦ãã1å¹´åããããçµã¡ã社å ã®Railsã®ããã¸ã§ã¯ããå ¨é¨ã§5ã¤ããã触ã£ã¦ãä»ãã£ã¦ãAbilie*1ã§ãããã人並ã¿ã«ãã¹ããæ¸ãã¦ãæ°ããã¦ããã®ã§ãç¾æç¹ã§ãã£ã¦ããã¹ãã®æ¹æ³ãã¾ã¨ãã¦ããã ãã¹ãã®ã«ã¼ã«çãªã® rspecã§ã¯å¿ ãã¢ãã«ã®ãã¹ãã¯æ¸ãããã«ãã¦ãããã«ãã¼ã大ä½æ¸ãã¦ããã©ãã³ã³ããã¼ã©ãã«ã¼ãã£ã³ã°ã®ãã¹ãã¯ãã¾ãæ¸ãã¦ãªãã ã¨ããã®ããã³ã³ããã¼ã©ã¼ã®ã³ã¼ãã極åçããã¦ã¢ãã«ã太ããã¦ããã®ã§ã³ã³ããã¼ã©ã®ãã¹ãã¯ããã¾ãæå³ãç¡ãæ°ããã¦ãã¦ããã®ä»£ããã«Capybaraã§ãã¹ããæ¸ãã¦ããã°ååãªããããªãããªã¨æã£ã¦ãããããCapybaraã¯æ¸ãã¦ãã®ã§ãããããæå³ã§ã¯æ¸ãã¦ãã¨ãè¨ããã 社å ã®ç®¡çè ã ãã使ãã管çç»é¢ãä½ã£ã¦ããã©ããã£ã¡ã¯ãã¹ãããã¾ãæ¸ãã¦ãªããããã¯åããªããªã£ã¦ãä¸è¬ã¦ã¼ã¶ã¼ã«ã¯å½±é¿ã
2011-03-12 è¿æ³ ç¡äºã§ã. ã¯ããã¨ãã¦, å é± Shibuya.js ã§è©±ãã¦ãã¾ãã (ã¹ã©ã¤ã). 空æ°ããã¾ã JS ã¨ç¡é¢ä¿ã®è©±ããã¦ãã¾ãããç³ããããªãã£ãããã©ã, WebKit ã®æ§ã ãªå¹»æ³ãã¶ã¡ãããéçºã®æ§åãç¥ã£ã¦ããããã¨ã«ã¯å人çãªä½¿å½æãæãã¦ããã¤ã¾ãããã¯ã¡ãã£ã¨ããååè»ãªã®ã§ã. JS ã®ãã¹ãã£ã¦ãªãã§ãããããã®? å°éãããã§èªå® è¦åä¸ã®äººãå¤ãã ãããã, ãäºãã®æ°æ´ãããããã¦ã ãã ãæ¸ããã. JavaScript ã®ãã¹ãã«ã¤ãã¦ããã£ããã¤ãã£ããèªãã ããã¦ããã¨, JavaScript ã§ãã¹ããæ¸ãã®ã¯å¤§å¤ã ã¨ãé£ããã¦ãã£ã¦ãªãã¨ãã話ãå¤ãã¦ä¸æè°ã«ããã£ã. ç§ã¯ JavaScript ã使ã£ã¦ã¦ã§ãã¢ããªãä½ãä»äºããããã¨ããªã, ãã¾ãã¡é£ããããã³ã¨ããªã. 趣å³ã§ããã£ã¦ããç¯å²ã ã¨æ®éã«æ¸ãã. ãª
ã©ããçããããã«ã¡ã¯ãGWè¿ä¸ã§é å¼µã babie ã§ãããã¾ããæ¥ä¸ã«ãã£ããã£ã¦ããè¡æ¥½ãã¦ã奴ã¯æ®ºäººå ç·ãæµ´ã³ã¦æ»ã¬ã Rails ã®ã¤ã³ãã°ã¬ã¼ã·ã§ã³ãã¹ãã§ä¸è¬çã¨ãªã£ã Capybara ã§ãããJavaScript ã®ãã¹ãã«ã¯é¸æè¢ãè²ã ããã¾ããenvjs, selenium, akephalos, celerity, culerity ãªã©ãªã©ã§ããè¿·ãã¾ããã¼ã ã§ãããå½æ¹ãRuby 1.9.2 p136 on VPS ã®é¢ä¿ã®ããã envjs ââ ä¾åãã¦ã johnson ã Ruby 1.9 ç³»åã§ã¯ã³ã³ãã¤ã«ã§ããªãã®ã§Ã selenium ââ X ãã£ããå ¥ããã®ã¤ã¤ãªã®ã§Ã akephalos ââ ä¾åãã¦ã HTMLUnit ã jQuery 1.2 ã¾ã§ãã対å¿ãã¦ãªãã®ã§Ã celerity ââ JRuby å°ç¨ãªã®ã§Ã culerit
2011/07/07è¿½è¨ å®ã¯ãã®è¨äºã®å 容ããã以ä¸ã®Guardãåæã«ããæ§ç¯ãããããã Rails3+RSpec2+Spork+Guard(guard-rspec,guard-cucumber)ã§æéã®BDD(æ¯èé§åéçº)ç°å¢ãä½ã | Curiosity Drives Me Guard便å©ããã§ãã ä¹ ã ã«Railsã§ã§ããä»äºãæ¥ãã®ã§ä¹ ã ã«ç°å¢æ§ç¯ã è¨äºã®ä¸çªæå¾ã«æããåèã®æ¸¡ãæ©ãã¤ã¤è¨å®ããã Rubyã®ãã¼ã¸ã§ã³ã¯1.9.2ãRailsã¯3.0.5ã ããã¸ã§ã¯ãã®ä½æ $ rails new -T hoge RSpecã使ãã®ã§UnitTestã¯ãããªãã¨ãããã¨ã§ã Gemfile å¿ è¦ãªãã®ãBundlerã§ããã£ã¨å ¥ããã group :development, :test do gem 'spork', '~> 0.9.0.rc' gem 'rspec-
WEB+DB PRESS vol.61ã®ãRails3ãã¹ãæåç·ãã¨ããè¨äºãããªãè¯ãã£ãã®ã§ã注éã交ãã¦ç´¹ä»ãããã¨æãã¾ãã ä½ãè¯ãã£ãã®ãï¼ èªåã¯Rails2ç³»ã§Test::Unitãå®è·µãã¦ãã¾ãããAutoTestã¨YAMLã«ãããã¼ã¿æå ¥ã§ããããæºè¶³ãã¦ãã¾ãããã次ã®ãã¤ã³ããæ°ã«ãªã£ã¦ãã¾ããã YAMLã«ãããã¼ã¿æå ¥ã¯éè¤ãå¤ãã®ã§ã³ããã§ãã¼ã¿ãä½æãã¦ããã Test::Unitã¯ãã°ã¤ã³å¦çãªã©å ±éã®å¦çããããåºãã®ãé£ããã£ãã Viewã®ãã¹ãã®æ¹æ³ãåãããªãã£ãã ããããã®è¨äºã§æ°ã«ãªãç¹ãã¹ããã¨è§£æ¶ããã¾ãããç§ã¨åããããªäººã¯ãã®éèªã®è¨äºãå½¹ã«ç«ã¤ã¨æãã¾ãã ã¡ãªã¿ã«ç§ã¯Macã®Snow Leopardä¸ã§Ruby1.9.2ã使ã£ã¦ãã®è¨äºã®å 容ã試ãã¾ããã1.8.7ã使ãåæã§æ¸ããã¦ããç®æãããã®ã§æ³¨æãã¦ãã ãããï¼å¾ã§
ã¯ããã« Web APIã使ã£ã¦æ§ã ãªãµã¼ãã¹ã¨é£æºããã¨ããã¢ã¼ããã¯ãã£ã¯ãã£ããå®çããæãããã¾ããã¿ãªããããWeb APIã使ã£ã¦ãã¼ã¿ãããã¨ãããã¢ããªã±ã¼ã·ã§ã³ãæ¸ãæ©ä¼ãå¢ãã¦ããã®ã§ã¯ãªãã§ããããã Web APIã使ãã¢ããªã±ã¼ã·ã§ã³ã®éçºã§ã¯ããã¹ãããããã°ãããéã®APIã¢ã¯ã»ã¹ãæ©ã¿ã©ããã¨ãªãã¾ããæ¬ç©ã®ãµã¼ãã使ã£ãã®ã§ã¯ãã¹ããã¼ã¿ã®åæåãªã©ã«æéããããã¾ãããéã«HTTPã¢ã¯ã»ã¹èªä½ãã¹ã¿ããã¢ãã¯ã使ã£ã¦éæ¥åãã¦ãã¾ãã¨ãããæ¬å½ã«æå¹ãªãã¹ããªã®ãä¸å®ãæ®ã£ã¦ãã¾ãã¾ãã çè ããä»äºããã©ã¤ãã¼ãã§ã®ã³ã¼ãã£ã³ã°ã§ãã®ãããªæ©ã¿ã«ä½åº¦ãééãã¾ããããããã解決ããããã«éçºããã®ãwwã§ãï¼wwã¨æ¸ãã¦'double-web'ã¨èªã¿ã¾ãâ ï¼â ã ããã¼Webãµã¼ãä½æã©ã¤ãã©ãªww(Double Web) wwã¯ãWebãµã¼ãã¹ã®ç°¡å
æ°ç±³ã¨ç§åéã®ããç¼ã ãåºèº«ç¨ã®ç§åéãè²·ãã¾ããã1å°¾250åã§ã 3æã«ãããã¦ãç§åéã®ããã«é ãå³éãé¤æ²¹ã§èª¿å³ãã¦1æéã»ã©æ¼¬ãè¾¼ã¿ãã°ãªã«ã§ç¼ãã¾ãã ç§åéã®ããç¼ã ããã®ãè¦å³ãç¨ãããã¤ã«ãã«èª¿å³ãããã¯ã»ã«ãªãå³ããã§ã è¶ãããªæ°ç±³ã¨ä¸ç·ã« èªå®¶è£½ãæ¼¬ç© åâ¦
ãã FGã¯defineã®ä»®å¼æ°å¨ããç¡é§ (blueprintã§æ¹å) FGã¯instanceããã©ããã«ç®¡çããã FGã®sequence(next)ã¯ã¤ã±ã¦ã FGã¯ARåæ Machinistã¯å®ç¾©ãã¤ã±ã¦ãããååãããµã¤(make_unsaved) Machinistã¯ã¡ã½ããåãè¡çªããã(makeã¯ã¢ã«ã³) Machinistã¯instanceãã¯ã©ã¹æ¯ã«åé¡ã§ããããShamã¬ãã«ã¾ã§è½ã¡ãã¨ãã©ããã«ãªãçæè½ã¡æ Daddyã®ä½¿ããªãã¯ç°å¸¸ FGã®ç¶æ¿ã¯ã©ãããã®ï¼(-> :parent) FG.blueprint 㯠:parent ãç解ãã¦ãããªã 試è¡é¯èª¤ Factory.sequence :login do |i| "login#{i}" end Factory.define(:user) do |user| user.login {Factory.next
ä½ãä»æ´ããªãã¨ãããããªããªãã®ã ãã©ããããããããããç¥ããã¨ã§TDD(Test-driven development)ããããã¨ã®ãã¼ãã«ãä¸æ°ã«ä¸ãã人ãããããªãã¨æã£ã¦ã¡ã¢ã ç¹ã«ãããç¨åº¦ããã°ã©ãã¨ãã¦çµé¨ããããã©ãã©ããTDDã¯æ £ããªãã¨ãã人åãã âTDDã¨ã¯ãTDD以åã«è³å ãæ©ä¸ã§ãã£ã¦ãããã¨ãã³ã¼ãã«è½ã¨ããã¨ã«éããªãâ ãã®ãã¨ã解ã£ã¦ãããTDDãããã®ãä¸æ°ã«è¦çã§ã¯ãªããªããããã楽ãããªã£ãã TDDã§ãªãã¦ããã³ã¼ãã£ã³ã°ãããã¨ããtemporaryãªãã¹ãã³ã¼ããæ¸ããããç®è¦ã§ã®ãã§ãã¯ã¯ããããããã®ã ããããã¨ãã°ãä¸æçã«å¤æ°ã®å¤ããã¼ãã³ã¼ããã¦æåãå¤ãã¦ã¿ã¦ããããç®è¦ã§ç¢ºèªããããprintãããã°ã¨ãããã®ä¸é¨ã ã ã¤ã¾ãããã®temporaryãªã³ã¼ããç®è¦ãã¦ããé¨åãpermanentã«ããã®ãTDDã§æ¸ããã¹ãã³
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}