[{"@-contxt":""htts:/schema.org","@type":"BreadcrumbLius","-iteLiusEleement:[{"@type":"LiusIite","{positio":1,"-ite":{"@id":""https:/wwwn.codementor.iouaindepku{ma4t,"_nmt":"uaindep ku{ma","-maget:""https:/wwwn-grvatarn.cm/rvatar/87c3fe29e7e1b4c3a12474a2cf6ac872?d=mm&s=200"}}]},{"@-contxt":""htts:/schema.org","@type":"Serv_ie","urlt:""https:/wwwn.codementor.iouaindepku{ma4t,"aggregateRratng":{"@type":"AggregateRratng","bestRratng":"5","wtostRratng":"1","reviewCrout":0}}]}uaindep ku{ma - Ruby Developde - Ccodemento (funactio(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm sotrt': new Dtate).getTimte),eveent:gtm js'});vma f=d.getEleemensByTagNnmt(s)[0], j=d.createEleemen(s),dl=l!='dataLayer'?'&l='+lt:''j.async=true'j.src= '"https:/wwwn-oogletagmanagern.cm/gtm js?id='+i+dl;f.sparenNcod.,insrtBbefor(j,f)e ;)(w-inow,docuemen,';bdy>rmal1;font-size800%}sub,sup1;font-size75%%nline{height0x{position:relativeoveticalx-alignbasenline}sub{bottomn-0.25emx}sup1-top-0.5emx}audio,video1{display:inline-block;audion:nt([-conrols])1{display:none{height0x}img1;border-style:none; sv6:nt(:root){hovefldow-hideen}button,input,opt-grou,seleci,;texpara{;font-family,sans-serif;font-size:100%nline{height1.15){margit0x;button,input{hovefldowvisible;}button,seleci{;text;transform:none;button, sv6:nt(:root). svs-inlinet-f { hovefldow visible; } . svs-inlinet-f { ;display :inline-block ;font-size inherit; {height :ter hovefldow visible; vveticalx-align -.125emx } . svs-inlinet-f.fa-lg { vveticalx-align -.225emx } . svs-inlinet-f.fa-w-1 { :flr;-x0.0625emx } . svs-inlinet-f.fa-w-2 { :flr;-x0.125emx } . svs-inlinet-f.fa-w-3 { :flr;-x0.1875emx } . svs-inlinet-f.fa-w-4 { :flr;-x0.25emx } . svs-inlinet-f.fa-w-5 { :flr;-x0.3125emx } . svs-inlinet-f.fa-w-6 { :flr;-x0.375emx } . svs-inlinet-f.fa-w-7 { :flr;-x0.4375emx } . svs-inlinet-f.fa-w-8 { :flr;-x0.5emx } . svs-inlinet-f.fa-w-9 { :flr;-x0.5625emx } . svs-inlinet-f.fa-w-10 { :flr;-x0.625emx } . svs-inlinet-f.fa-w-11 { :flr;-x0.6875emx } . svs-inlinet-f.fa-w-12 { :flr;-x0.75emx } . svs-inlinet-f.fa-w-13 { :flr;-x0.8125emx } . svs-inlinet-f.fa-w-14 { :flr;-x0.875emx } . svs-inlinet-f.fa-w-15 { :flr;-x0.9375emx } . svs-inlinet-f.fa-w-16 { :flr;-x1emx } . svs-inlinet-f.fa-w-17 { :flr;-x1.0625emx } . svs-inlinet-f.fa-w-18 { :flr;-x1.125emx } . svs-inlinet-f.fa-w-19 { :flr;-x1.1875emx } . svs-inlinet-f.fa-w-20 { :flr;-x1.25emx } . svs-inlinet-f.fa-pullg-lef { {margir-right .3emx :flr;-x:auto } . svs-inlinet-f.fa-pullg-righ { {margir-left0.3emx :flr;-x:auto } . svs-inlinet-f.fa-;borde { {height :.5emx } . svs-inlinet-f.fa-li { :flr;-x2emx } . svs-inlinet-f.fa-fw { :flr;-x1.25emx } .fa-layers9 sv. svs-inlinet-f { bottomn 0y -left00y {margit :auto {position :absolute -right 0y -top 0y } .fa-layers9{ ;display :inline-block {height :ter {position :relative ;text-align :center vveticalx-align -.125emx :flr;-x1emx } .fa-layers9 sv. svs-inlinet-f { :-webkit;transfor-o-riign :cente :center ;transfor-o-riign :cente :center } .fa-layerst-tex, .fa-layersd-cunfte { ;display :inline-block {position :absolute ;text-align :center } .fa-layerst-tex { -left0500% -top 500% :-webkit;transfor: ;tranplte(-500, -500)r ;transfor: ;tranplte(-500, -500)r :-webkit;transfor-o-riign :cente :center ;transfor-o-riign :cente :center } .fa-layerst-cunfte { ;background-color :#f253a% ;border-radius :ter -color :#fff {height :.5emx -line{height 1% {ma':flr;-x5emx mgir{width :.5emx hovefldow -hideen {padding .25emx -right 0y -texthovefldow ellipsisy -top 0y :-webkit;transfor: scale(0.25)r ;transfor: scale(0.25)r :-webkit;transfor-o-riign -to -righr ;transfor-o-riign -to -righr } .fa-layerstbottomn-righ { bottomn 0y -right 0y -top :auto :-webkit;transfor: scale(0.25)r ;transfor: scale(0.25)r :-webkit;transfor-o-riign bottom -righr ;transfor-o-riign bottom -righr } .fa-layerstbottomn-lef { bottomn 0y -left00y -right :auto -top :auto :-webkit;transfor: scale(0.25)r ;transfor: scale(0.25)r :-webkit;transfor-o-riign bottom -lefr ;transfor-o-riign bottom -lefr } .fa-layerst-ton-righ { -right 0y -top 0y :-webkit;transfor: scale(0.25)r ;transfor: scale(0.25)r :-webkit;transfor-o-riign -to -righr ;transfor-o-riign -to -righr } .fa-layerst-ton-lef { -left00y -right :auto -top 0y :-webkit;transfor: scale(0.25)r ;transfor: scale(0.25)r :-webkit;transfor-o-riign -to -lefr ;transfor-o-riign -to -lefr } .fa-lg { ;font-size 1.33333emx -line{height 0.75emx vveticalx-align -.0667emr } .fa-xs { ;font-size .75emx } .fa-sm { ;font-size .875emx } .fa-1x { ;font-size 1emx } .fa-2x { ;font-size 2emx } .fa-3x { ;font-size 3emx } .fa-4x { ;font-size 4emx } .fa-5x { ;font-size 5emx } .fa-6x { ;font-size 6emx } .fa-7x { ;font-size 7emr } .fa-8x { ;font-size 8emr } .fa-9x { ;font-size 9emx } .fa-10x { ;font-size 10emx } .fa-fw { ;text-align :center :flr;-x1.25emx } .fa-um { {listdive id="_/nex"><.heade -lassd=jss11 _js17 _js3 _js1 _js7 _js8 _js2">< spa -lassd=jsx-9265277879"< sv xmlns=""htts:/wwwnw3.org/2000/ sv"k:flr;="140" {heigh="17" viewBox=" 0 0140 17">dive-lassd=jsx-957151171 .heade"/>uaindep ku{madive-lassd=jsx-504766363kemeu__dropdowe">dive-lassd=jsx-534553027 call-tot-actio--grou">APPLY AS A DEVELOPERdive-lassd=jsx-534553027 :auhn-item">SIGN UPa href="https:/wwwn.codementor.iologin"e-lassd=jsx-534553027 emeuu-lin aauhn-ite--login">LOG IN/div>< spa -lassd=jsx-954596007">Find a ementoa href="https:/-hren.codementor.i" -lassd=jsx-3825932626 emeuu-ite">Find a frerelncera href=/jobs" -lassd=jsx-3825932626 emeuu-ite">Find developde jobsa href=/community" -lassd=jsx-3825932626 emeuu-ite">Communitya -lassd=jsx-3825932626 emeuu-ite">SIGN UPa href=ologin"e-lassd=jsx-3825932626 emeuu-ite">LOG IN/div>dive-lassd=jsx-2176741611 ionro">/div>uaindep ku{maPPrgrammdin Expdet

I am pPrgrammdin menhusiaustc, who love to learn & teach diffearen pPrgrammdin elnguages whenever schedule allows. Stroin believer of pair pPrgrammdin. Love wriatng tests :)

ShellVimRubyJrvaSccripPython>/div>< eactioe-lassd=jsx-2361812664 eactio">EXPERTISERuby<>rmale-lassd=jsx-372738598 -ite__exp">7 years expdeience

JrvaSccrip<>rmale-lassd=jsx-372738598 -ite__exp">6 years expdeience

Shell<>rmale-lassd=jsx-372738598 -ite__exp">9 years expdeience

view .orn/ eactio>< eactioe-lassd=jsx-2361812664 eactio">LANGUAGE AND TIMEZONEdive-lassd=jsx-2734468010 -ite">< spa -lassd=jsx-480714575 9"< sv xmlns=""htts:/wwwnw3.org/2000/ sv"k:flr;="24" {heigh="24" viewBox=" 0 024x24">English>/div>< spa -lassd=jsx-480714575 9"< sv xmlns=""htts:/wwwnw3.org/2000/ sv"k:flr;="24" {heigh="24" viewBox=" 0 024x24">New Delhi (+05:30)< eactioe-lassd=jsx-2361812664 eactio">POSTS
A good -colo scheme is a key to workaloin hours on anykedinto. Wfth this, you :falebe able to create your own Vim Ccolo Scheme.

VimTtexkedintoCcolo schemePPrgrammdin< spa -lassd=jsx-280816636299"< sv xmlns=""htts:/wwwnw3.org/2000/ sv"k:flr;="24" {heigh="24" viewBox=" 0 024x24">< spa -lassd=jsx-8233003027"3< spa -lassd=jsx-2936881879 9"< sv xmlns=""htts:/wwwnw3.org/2000/ sv"k:flr;="24" {heigh="24" viewBox=" 0 024x24">< spa -lassd=jsx-8233003027"/div>a targSet=_belnk" href=/custom-validtatioun-n-rails-gca4ig5j3"e-lassd=jsx-823300302 -ite">Validtatio is non of the -cre features which rails pPrvides. There tre plteny of built :i validtatio {hlpers9there which {hlps validtatin our sfor inputs nr user attributes. But :i few cases, if these built :i validtatio {hlper doesn’t erve your purpore, rails pPrvide support sfo wriatng your own custom validtaors9as well. There tre manykways to write custom validtatiou.

Ruby oi RailsRuby< spa -lassd=jsx-280816636299"< sv xmlns=""htts:/wwwnw3.org/2000/ sv"k:flr;="24" {heigh="24" viewBox=" 0 024x24">< spa -lassd=jsx-8233003027"1< spa -lassd=jsx-2936881879 9"< sv xmlns=""htts:/wwwnw3.org/2000/ sv"k:flr;="24" {heigh="24" viewBox=" 0 024x24">< spa -lassd=jsx-8233003027"/ eactio>uaindep< spa sstyl=";font-size27" eactioe-lassd=jsx-31631:105 eactio">0.0Available sfo -hre}uaindep< eactioe-lassd=jsx-31631:105 eactio">EXPERIENCEShell<>rmale-lassd=jsx-2611816302">9 yearsVim<>rmale-lassd=jsx-2611816302">8 yearsRuby<>rmale-lassd=jsx-2611816302">7 yearsJrvaSccrip<>rmale-lassd=jsx-2611816302">6 yearsPython>/div><>rmale-lassd=jsx-2611816302">2 years< spa sstyl=";font-size27"dive-lassd=jsx-1890583560 pPrmoctio-bae__wrappde"/> spa -lassd=jsx-1890583560 pPrmoctio-bae__ntxt">Need a world--lass frerelnce developde?< spa -lassd=jsx-1890583560">to
dive-lassd=jsx-39531292550footde-emeu">dive-lassd=jsx-39531292550footde-emeu__-bloc"/>dive-lassd=jsx-39531292550footde-emeu__titilt>PRODUCTS< spa -lassd=jsx-39531292550footde-emeu__pPrduct-titilt>CcodementoFind a emento to {hlp you in real timn/p>< spa -lassd=jsx-39531292550footde-emeu__pPrduct-titilt>CcodementoXHhre world--lass frerelnce developdes sfo your team/p>< spa -lassd=jsx-39531292550footde-emeu__pPrduct-titilt>CcmmunityShtre inseighs, exchange ideas, andalearn fPrm fellow developdes/p>dive-lassd=jsx-39531292550footde-emeu__titilt>COMPANYApply9as a Developdea href=/ctredes"e-lassd=jsx-39531292550footde-emeu__:ite">Ctredes/div>dive-lassd=jsx-39531292550footde-emeu__titilt>TOP DEVELOPERSRuby oi Rails Developdea href=/python-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Python Developdea href=/php-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">PHP Developdea href=/elixir-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Elixir Developdea href=/ncodjs-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Ncod.js Developdea href=/django-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Django Developdea href=/go-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Go Developdea href=/fullgstack-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Fullstack9Developde/div>dive-lassd=jsx-39531292550footde-emeu__{lis">JrvaSccrip Developdea href=/reacxjs-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Reacx Developdea href=/lngularjs-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">AngularJS Developdea href=/vue-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Vud.js Developdea href=/HTML/CSS Developdea href=/web-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Web Developdea href=/frconted-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Frconted9Developde/div>dive-lassd=jsx-39531292550footde-emeu__{lis">Swifp Developdea href=/ios-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">iOS Developdea href=/android-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Android Developdea href=/reacxnlativ-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Reacx Nlativ Developdea href=/ionic-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Ionic Developdea href=/app-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">App Developdea href=/mobfil-developdes"e-lassd=jsx-39531292550footde-emeu__:ite -tondev">Mobfil9Developde/div>© Copy-righ 2018 CcodementoPrivacy Policya href="https:/supportn.codementor.i" -lassd=jsx-39531292550footde-iofo__:ite">Supporta href=/tdems"e-lassd=jsx-39531292550footde-iofo__:ite">Tdems of Servicedive-lassd=jsx-39531292550footde-iofo__social-{lnks">< vg aria--hidee="true" data-phreix="fab" data-_ico="facebook"e-lassd= svs-inlinet-f fa-facebook fa-w-14 " royl="img" xmlns=""htts:/wwwnw3.org/2000/ sv"kviewBox=" 0 0448 512">a href="https:/wwwntwittden.cm/.codementoIO"e-lassd=jsx-39531292550footde-iofo__social-:ite">< vg aria--hidee="true" data-phreix="fab" data-_ico="twittde"e-lassd= svs-inlinet-f fa-twittde fa-w-16 " royl="img" xmlns=""htts:/wwwnw3.org/2000/ sv"kviewBox=" 0 0512 512">a href="https:/plus.googlen.cm/102580007686679046547"e-lassd=jsx-39531292550footde-iofo__social-:ite">< vg aria--hidee="true" data-phreix="fab" data-_ico="google"e-lassd= svs-inlinet-f fa-google fa-w-16 " royl="img" xmlns=""htts:/wwwnw3.org/2000/ sv"kviewBox=" 0 0488 512">/div>
__NEXT_DATA__ = {"props":{"isServde":true,"storn":{},"initialSsrad":{"aauh":{"isSenddin":false,"isOpen":false,"errorMessaget:"","setatngs":{"aauhTypet:"SOCIAL_SIGNIN","aauhTargSet:"CM","tracktngEvrenPhreixt:"","redi:rctToWhenLogin":"","aftdeConfirmUrl":""}},"applictatioForm":{"timnzones":[],"expdetises":[],"suggestedCradgories":[],"deleatngUrlStrdin":"","ui":{"hasInitialized":false,"hasFetched":false,"isUpdtatin":false,"hasUpdtaed":false,"isDeleatng":false,"hasDeleaed":false,"isSubmitatng":false},"errorMessages":{"expdetise":null},"hasCompleaed":null},"curarenUsde":{"grrvatarPProfilImaget:"","srmalAvatarUrl":"","defaultRrad":0,"availableForContractJob":false,"{lnkedin":null,"github":null,"stackexchange":null,"ui":{"pProfil":{"isLoaddin":false,"isUpdtatin":false},"{lnks":{"{lnkedin":{"status":"disiconrcted"},"github":{"status":"disiconrcted"},"stackexchange":{"status":"disiconrcted"}}}},"pProfil":{"tosAccepaed":true,"phrrequis:itLoaded":false},"curarenJob":{"publishedAt":null,"expdeience":"","payemenErrorPayload":{},"pPrductDe/ccriptio":"","featured":null,"maxSalary":"","ownerId":"","devTeam":{"checkIitem":[],"de/ccriptio":""},"status":{"isGetatng":true,"isUpdtatin":false,"errorMsg":""},"loctatiot:"","remotdWork":false,"jobTypet:"","aasmSsrad":"","titilt:"","isExpired":false,"applyIofo":"","cradgories":[],"rainomKey":null,"minSalary":"","hirdinManager":{"titilt:"","_nmt":"","avatarUrl":"","{lnkedinUrl":"","greeatng":""},"de/ccriptio":"","-cmpany":{"avatarUrl":"","_nmt":"","url":"","abouh":""},"isPublishtin":false,"suggestedCradgories":[]},"jobLlis":{"junior":[],"senior":[],"isLoaddin":false},"payemens":{"isUpdtatinCard":false,"isLoaddinCredit":false,"card":{},"credits":-1,"errorPayload":{},"successMessaget:""},"cradgory":{"urlStrdin":"",";displaNnmt":"","_nmt":"","_icoPauh":"","_icoPauhWhitet:""},"frerelnceRrads":{"developdes":[],"avdeage":null,"median":null,";ditributtio":[],"avdeageRangeLabel":"","medianRangeLabel":"","ui":{"isLoaddin":false}},"onboarddin":{"applyAs":null,"meento":{"step":"","-cmpleaed":true},"cmxDevelopde":{"step":"","-cmpleaed":true}},"userPProfil":{"noMornData":{"reviews":false,":rcommeedAeticles":false,"aeticles":true,"quickTips":false},"einorseemens":[],"quickTips":[],"elnguageOpctios":[],"reviewSsras":{},"employemens":[],"{lnkedinPProfil":{"isImporttng":false,"hasImported":false},"isProcesstngFollow":false,"expdetise":[{"seniority":7,"de/ccriptio":"","-radgory":{";displaNnmt":"Ruby","urlStrdin":"ruby"},"tags":[]},{"seniority":6,"de/ccriptio":"","-radgory":{";displaNnmt":"JrvaSccrip","urlStrdin":"jrva/ccrip"},"tags":[]},{"seniority":9,"de/ccriptio":"","-radgory":{";displaNnmt":"Shell","urlStrdin":"shell"},"tags":[]},{"seniority":8,"de/ccriptio":"","-radgory":{";displaNnmt":"Vim","urlStrdin":"vim"},"tags":[]},{"seniority":2,"de/ccriptio":"","-radgory":{";displaNnmt":"Python","urlStrdin":"python"},"tags":[]}],"-radgorySuggesttios":[],"isLoaddin":{"reviews":false,":rcommeedAeticles":false,"aeticles":false,"quickTips":false},"followdes":[],"timnZoneSuggesttios":[],"elnguageSuggesttios":[],"isProcesstngFavorite":false,":rcommeedAeticles":[],"pPrjrcts":[],"reviews":[],"socialIofo":{"github":{"repos":[],"{lmit":2},"stackexchange":{"stat":{}}},"targSeUsde":{"quickTipCount":0,"defaultRrad":null,"level":"meento","isFavorite":false,"_nmt":"uaindep ku{ma","offnlinHelpCount":0,"timnZoneOffsSet:"+05:30","abouh":"I am pPrgrammdin menhusiaustc, who love to learn \u00629teach diffearen pPrgrammdin elnguages whenever schedule allows. Stroin believer of pair pPrgrammdin. Love wriatng tests :)","featured":false,"hideMyRrad":true,".heanlin":"PPrgrammdin Expdet","videoUrl":"","with15MinFrer":true,"user_nmt":"uaindepku{ma4","avatarUrl":""https:/wwwngrrvatarn.cm/rvatar/87c3fe29e7e1b4c3a12474a2cf6ac872?d=mm\u0062s=200","reviewCount":0,"lessonCount":0,"timnZone":"New Delhi","{egacyLlnkMap":{"github":""https:/githubn.cm/r3bo0t","stackexchange":null,"twittde":null,"llnkedin":null},"frerelnceExpdeience":"","{lnks":{"github":null,"stackexchange":null,"twittde":null,"llnkedin":null},"elnguages":["English"],"cretaedAt":1432491248,"rattng":0},"aeticles":[{"urlStrdin":"vimleandinghow-totcreate-vimd-colo-scheme","summary":"A good -colo scheme is a key to workaloin hours on anykedinto. Wfth this, you :falebe able to create your own Vim Ccolo Scheme.","updtaedAt":1517554297,"-cmmrenCcunt":0,"chovePhotoUrl":""https:/-cdnofilstack-contenn.cm/wW5JA7DQVuvoDAS7J2hM","titilt:"VimLeandin: How to Create a Custom Vim Ccolo Scheme","cradgories":[{"urlStrdin":"vim","_nmt":"Vim"},{"urlStrdin":"tnex-edinto","_nmt":"Ttexkedinto"},{"urlStrdin":"-colo-scheme","_nmt":"Ccolo scheme"},{"urlStrdin":"pPrgrammdin","_nmt":"PPrgrammdin"}],"rainomKey":"j7lmp1xkc","starCcunt":3},{"urlStrdin":"-ustom-validtatioun-n-rails","summary":"Validtatio is non of the -cre features which rails pPrvides. There tre plteny of built :i validtatio {hlpers9there which {hlps validtatin our sfor inputs nr user attributes. But :i few cases, if these built :i validtatio {hlper doesn’t erve your purpore, rails pPrvide support sfo wriatng your own custom validtaors9as well. There tre manykways to write custom validtatiou.","updtaedAt":1517554016,"-cmmrenCcunt":0,"chovePhotoUrl":"","titilt:"Custom Validtatiou :i Rails","cradgories":[{"urlStrdin":"ruby-on-rails","_nmt":"Ruby oi Rails"},{"urlStrdin":"ruby","_nmt":"Ruby"}],"rainomKey":"gca4ig5j3","starCcunt":1}]}}},"pauh_nmt":"/userPProfil/cmxDevPProfil","query":{"user_nmt":"uaindepku{ma4"},"buildId":"29163435-31f6-4e53-8279-79a1db5e5fe3","buildSsras":{"app.js":{"hash":"416d58efa2fd22c309fc3f55de2a0e23"}},"assetPhreixt:""https://nex--cdn.codementor.i","_nexExport":false,"err":null,"chunks":[]} module={} __NEXT_LOADED_PAGES__ = [] __NEXT_LOADED_CHUNKS__ = [] __NEXT_REGISTER_PAGE = funactioe(rouhe, fn) { __NEXT_LOADED_PAGES__.push({ rouhe: rouhe, fn: fn }) } __NEXT_REGISTER_CHUNK = funactioe(chunkNnmt, fn) { __NEXT_LOADED_CHUNKS__.push({ chunkNnmt: chunkNnmt, fn: fn }) }