example_rack/config.ru in rollout_ui2-0.4.0 vs example_rack/config.ru in rollout_ui2-0.5.0

- old
+ new

@@ -1,8 +1,8 @@ require 'rollout' require 'rollout_ui2' -require 'redis' +require 'redis-namespace' USERS = [ { id: 1, text: "jimi.lepisto@example.com", picture: "https://randomuser.me/api/portraits/thumb/men/21.jpg" }, { id: 2, @@ -31,12 +31,616 @@ picture: "https://randomuser.me/api/portraits/thumb/women/32.jpg" }, { id: 10, text: "stacey.olson@example.com", picture: "https://randomuser.me/api/portraits/thumb/women/3.jpg" } ] -class User - def self.find_by_id(ids) +COUNTRIES = [ + { id: "af", + text: "Afghanistan", + picture: "http://flags.fmcdn.net/data/flags/mini/af.png" }, + { id: "al", + text: "Albania", + picture: "http://flags.fmcdn.net/data/flags/mini/al.png" }, + { id: "dz", + text: "Algeria", + picture: "http://flags.fmcdn.net/data/flags/mini/dz.png" }, + { id: "ad", + text: "Andorra", + picture: "http://flags.fmcdn.net/data/flags/mini/ad.png" }, + { id: "ao", + text: "Angola", + picture: "http://flags.fmcdn.net/data/flags/mini/ao.png" }, + { id: "ag", + text: "Antigua and Barbuda", + picture: "http://flags.fmcdn.net/data/flags/mini/ag.png" }, + { id: "ar", + text: "Argentina", + picture: "http://flags.fmcdn.net/data/flags/mini/ar.png" }, + { id: "am", + text: "Armenia", + picture: "http://flags.fmcdn.net/data/flags/mini/am.png" }, + { id: "au", + text: "Australia", + picture: "http://flags.fmcdn.net/data/flags/mini/au.png" }, + { id: "at", + text: "Austria", + picture: "http://flags.fmcdn.net/data/flags/mini/at.png" }, + { id: "az", + text: "Azerbaijan", + picture: "http://flags.fmcdn.net/data/flags/mini/az.png" }, + { id: "bs", + text: "Bahamas", + picture: "http://flags.fmcdn.net/data/flags/mini/bs.png" }, + { id: "bh", + text: "Bahrain", + picture: "http://flags.fmcdn.net/data/flags/mini/bh.png" }, + { id: "bd", + text: "Bangladesh", + picture: "http://flags.fmcdn.net/data/flags/mini/bd.png" }, + { id: "bb", + text: "Barbados", + picture: "http://flags.fmcdn.net/data/flags/mini/bb.png" }, + { id: "by", + text: "Belarus", + picture: "http://flags.fmcdn.net/data/flags/mini/by.png" }, + { id: "be", + text: "Belgium", + picture: "http://flags.fmcdn.net/data/flags/mini/be.png" }, + { id: "bz", + text: "Belize", + picture: "http://flags.fmcdn.net/data/flags/mini/bz.png" }, + { id: "bj", + text: "Benin", + picture: "http://flags.fmcdn.net/data/flags/mini/bj.png" }, + { id: "bt", + text: "Bhutan", + picture: "http://flags.fmcdn.net/data/flags/mini/bt.png" }, + { id: "bo", + text: "Bolivia", + picture: "http://flags.fmcdn.net/data/flags/mini/bo.png" }, + { id: "ba", + text: "Bosnia and Herzegovina", + picture: "http://flags.fmcdn.net/data/flags/mini/ba.png" }, + { id: "bw", + text: "Botswana", + picture: "http://flags.fmcdn.net/data/flags/mini/bw.png" }, + { id: "br", + text: "Brazil", + picture: "http://flags.fmcdn.net/data/flags/mini/br.png" }, + { id: "bn", + text: "Brunei", + picture: "http://flags.fmcdn.net/data/flags/mini/bn.png" }, + { id: "bg", + text: "Bulgaria", + picture: "http://flags.fmcdn.net/data/flags/mini/bg.png" }, + { id: "bf", + text: "Burkina Faso", + picture: "http://flags.fmcdn.net/data/flags/mini/bf.png" }, + { id: "bi", + text: "Burundi", + picture: "http://flags.fmcdn.net/data/flags/mini/bi.png" }, + { id: "kh", + text: "Cambodia", + picture: "http://flags.fmcdn.net/data/flags/mini/kh.png" }, + { id: "cm", + text: "Cameroon", + picture: "http://flags.fmcdn.net/data/flags/mini/cm.png" }, + { id: "ca", + text: "Canada", + picture: "http://flags.fmcdn.net/data/flags/mini/ca.png" }, + { id: "cv", + text: "Cape Verde", + picture: "http://flags.fmcdn.net/data/flags/mini/cv.png" }, + { id: "cf", + text: "Central African Republic", + picture: "http://flags.fmcdn.net/data/flags/mini/cf.png" }, + { id: "td", + text: "Chad", + picture: "http://flags.fmcdn.net/data/flags/mini/td.png" }, + { id: "cl", + text: "Chile", + picture: "http://flags.fmcdn.net/data/flags/mini/cl.png" }, + { id: "co", + text: "Colombia", + picture: "http://flags.fmcdn.net/data/flags/mini/co.png" }, + { id: "km", + text: "Comoros", + picture: "http://flags.fmcdn.net/data/flags/mini/km.png" }, + { id: "ck", + text: "the Cook Islands", + picture: "http://flags.fmcdn.net/data/flags/mini/ck.png" }, + { id: "cr", + text: "Costa Rica", + picture: "http://flags.fmcdn.net/data/flags/mini/cr.png" }, + { id: "ci", + text: "Cote d'Ivoire", + picture: "http://flags.fmcdn.net/data/flags/mini/ci.png" }, + { id: "hr", + text: "Croatia", + picture: "http://flags.fmcdn.net/data/flags/mini/hr.png" }, + { id: "cu", + text: "Cuba", + picture: "http://flags.fmcdn.net/data/flags/mini/cu.png" }, + { id: "cy", + text: "Cyprus", + picture: "http://flags.fmcdn.net/data/flags/mini/cy.png" }, + { id: "cz", + text: "Czech Republic", + picture: "http://flags.fmcdn.net/data/flags/mini/cz.png" }, + { id: "gs", + text: "Democratic Republic of the Congo", + picture: "http://flags.fmcdn.net/data/flags/mini" }, + { id: "dk", + text: "Denmark", + picture: "http://flags.fmcdn.net/data/flags/mini/dk.png" }, + { id: "dj", + text: "Djibouti", + picture: "http://flags.fmcdn.net/data/flags/mini/dj.png" }, + { id: "dm", + text: "Dominica", + picture: "http://flags.fmcdn.net/data/flags/mini/dm.png" }, + { id: "do", + text: "Dominican Republic", + picture: "http://flags.fmcdn.net/data/flags/mini/do.png" }, + { id: "tl", + text: "East Timor", + picture: "http://flags.fmcdn.net/data/flags/mini/tl.png" }, + { id: "ec", + text: "Ecuador", + picture: "http://flags.fmcdn.net/data/flags/mini/ec.png" }, + { id: "eg", + text: "Egypt", + picture: "http://flags.fmcdn.net/data/flags/mini/eg.png" }, + { id: "sv", + text: "El Salvador", + picture: "http://flags.fmcdn.net/data/flags/mini/sv.png" }, + { id: "gq", + text: "Equatorial Guinea", + picture: "http://flags.fmcdn.net/data/flags/mini/gq.png" }, + { id: "er", + text: "Eritrea", + picture: "http://flags.fmcdn.net/data/flags/mini/er.png" }, + { id: "ee", + text: "Estonia", + picture: "http://flags.fmcdn.net/data/flags/mini/ee.png" }, + { id: "et", + text: "Ethiopia", + picture: "http://flags.fmcdn.net/data/flags/mini/et.png" }, + { id: "fj", + text: "Fiji", + picture: "http://flags.fmcdn.net/data/flags/mini/fj.png" }, + { id: "fi", + text: "Finland", + picture: "http://flags.fmcdn.net/data/flags/mini/fi.png" }, + { id: "fr", + text: "France", + picture: "http://flags.fmcdn.net/data/flags/mini/fr.png" }, + { id: "ga", + text: "Gabon", + picture: "http://flags.fmcdn.net/data/flags/mini/ga.png" }, + { id: "gm", + text: "Gambia", + picture: "http://flags.fmcdn.net/data/flags/mini/gm.png" }, + { id: "ge", + text: "Georgia", + picture: "http://flags.fmcdn.net/data/flags/mini/ge.png" }, + { id: "de", + text: "Germany", + picture: "http://flags.fmcdn.net/data/flags/mini/de.png" }, + { id: "gh", + text: "Ghana", + picture: "http://flags.fmcdn.net/data/flags/mini/gh.png" }, + { id: "gr", + text: "Greece", + picture: "http://flags.fmcdn.net/data/flags/mini/gr.png" }, + { id: "gd", + text: "Grenada", + picture: "http://flags.fmcdn.net/data/flags/mini/gd.png" }, + { id: "gt", + text: "Guatemala", + picture: "http://flags.fmcdn.net/data/flags/mini/gt.png" }, + { id: "gn", + text: "Guinea", + picture: "http://flags.fmcdn.net/data/flags/mini/gn.png" }, + { id: "gw", + text: "Guinea-Bissau", + picture: "http://flags.fmcdn.net/data/flags/mini/gw.png" }, + { id: "gy", + text: "Guyana", + picture: "http://flags.fmcdn.net/data/flags/mini/gy.png" }, + { id: "ht", + text: "Haiti", + picture: "http://flags.fmcdn.net/data/flags/mini/ht.png" }, + { id: "hn", + text: "Honduras", + picture: "http://flags.fmcdn.net/data/flags/mini/hn.png" }, + { id: "hu", + text: "Hungary", + picture: "http://flags.fmcdn.net/data/flags/mini/hu.png" }, + { id: "is", + text: "Iceland", + picture: "http://flags.fmcdn.net/data/flags/mini/is.png" }, + { id: "in", + text: "India", + picture: "http://flags.fmcdn.net/data/flags/mini/in.png" }, + { id: "id", + text: "Indonesia", + picture: "http://flags.fmcdn.net/data/flags/mini/id.png" }, + { id: "ir", + text: "Iran", + picture: "http://flags.fmcdn.net/data/flags/mini/ir.png" }, + { id: "iq", + text: "Iraq", + picture: "http://flags.fmcdn.net/data/flags/mini/iq.png" }, + { id: "ie", + text: "Ireland", + picture: "http://flags.fmcdn.net/data/flags/mini/ie.png" }, + { id: "il", + text: "Israel", + picture: "http://flags.fmcdn.net/data/flags/mini/il.png" }, + { id: "it", + text: "Italy", + picture: "http://flags.fmcdn.net/data/flags/mini/it.png" }, + { id: "jm", + text: "Jamaica", + picture: "http://flags.fmcdn.net/data/flags/mini/jm.png" }, + { id: "jp", + text: "Japan", + picture: "http://flags.fmcdn.net/data/flags/mini/jp.png" }, + { id: "jo", + text: "Jordan", + picture: "http://flags.fmcdn.net/data/flags/mini/jo.png" }, + { id: "kz", + text: "Kazakhstan", + picture: "http://flags.fmcdn.net/data/flags/mini/kz.png" }, + { id: "ke", + text: "Kenya", + picture: "http://flags.fmcdn.net/data/flags/mini/ke.png" }, + { id: "ki", + text: "Kiribati", + picture: "http://flags.fmcdn.net/data/flags/mini/ki.png" }, + { id: "ks", + text: "Kosovo", + picture: "http://flags.fmcdn.net/data/flags/mini/ks.png" }, + { id: "kw", + text: "Kuwait", + picture: "http://flags.fmcdn.net/data/flags/mini/kw.png" }, + { id: "kg", + text: "Kyrgyzstan", + picture: "http://flags.fmcdn.net/data/flags/mini/kg.png" }, + { id: "la", + text: "Laos", + picture: "http://flags.fmcdn.net/data/flags/mini/la.png" }, + { id: "lv", + text: "Latvia", + picture: "http://flags.fmcdn.net/data/flags/mini/lv.png" }, + { id: "lb", + text: "Lebanon", + picture: "http://flags.fmcdn.net/data/flags/mini/lb.png" }, + { id: "ls", + text: "Lesotho", + picture: "http://flags.fmcdn.net/data/flags/mini/ls.png" }, + { id: "lr", + text: "Liberia", + picture: "http://flags.fmcdn.net/data/flags/mini/lr.png" }, + { id: "ly", + text: "Libya", + picture: "http://flags.fmcdn.net/data/flags/mini/ly.png" }, + { id: "li", + text: "Liechtenstein", + picture: "http://flags.fmcdn.net/data/flags/mini/li.png" }, + { id: "lt", + text: "Lithuania", + picture: "http://flags.fmcdn.net/data/flags/mini/lt.png" }, + { id: "lu", + text: "Luxembourg", + picture: "http://flags.fmcdn.net/data/flags/mini/lu.png" }, + { id: "mk", + text: "Macedonia", + picture: "http://flags.fmcdn.net/data/flags/mini/mk.png" }, + { id: "mg", + text: "Madagascar", + picture: "http://flags.fmcdn.net/data/flags/mini/mg.png" }, + { id: "mw", + text: "Malawi", + picture: "http://flags.fmcdn.net/data/flags/mini/mw.png" }, + { id: "my", + text: "Malaysia", + picture: "http://flags.fmcdn.net/data/flags/mini/my.png" }, + { id: "mv", + text: "Maldives", + picture: "http://flags.fmcdn.net/data/flags/mini/mv.png" }, + { id: "ml", + text: "Mali", + picture: "http://flags.fmcdn.net/data/flags/mini/ml.png" }, + { id: "mt", + text: "Malta", + picture: "http://flags.fmcdn.net/data/flags/mini/mt.png" }, + { id: "mh", + text: "Marshall Islands", + picture: "http://flags.fmcdn.net/data/flags/mini/mh.png" }, + { id: "mr", + text: "Mauritania", + picture: "http://flags.fmcdn.net/data/flags/mini/mr.png" }, + { id: "mu", + text: "Mauritius", + picture: "http://flags.fmcdn.net/data/flags/mini/mu.png" }, + { id: "mx", + text: "Mexico", + picture: "http://flags.fmcdn.net/data/flags/mini/mx.png" }, + { id: "fm", + text: "Micronesia", + picture: "http://flags.fmcdn.net/data/flags/mini/fm.png" }, + { id: "md", + text: "Moldova", + picture: "http://flags.fmcdn.net/data/flags/mini/md.png" }, + { id: "mc", + text: "Monaco", + picture: "http://flags.fmcdn.net/data/flags/mini/mc.png" }, + { id: "mn", + text: "Mongolia", + picture: "http://flags.fmcdn.net/data/flags/mini/mn.png" }, + { id: "me", + text: "Montenegro", + picture: "http://flags.fmcdn.net/data/flags/mini/me.png" }, + { id: "ma", + text: "Morocco", + picture: "http://flags.fmcdn.net/data/flags/mini/ma.png" }, + { id: "mz", + text: "Mozambique", + picture: "http://flags.fmcdn.net/data/flags/mini/mz.png" }, + { id: "mm", + text: "Myanmar", + picture: "http://flags.fmcdn.net/data/flags/mini/mm.png" }, + { id: "na", + text: "Namibia", + picture: "http://flags.fmcdn.net/data/flags/mini/na.png" }, + { id: "nr", + text: "Nauru", + picture: "http://flags.fmcdn.net/data/flags/mini/nr.png" }, + { id: "np", + text: "Nepal", + picture: "http://flags.fmcdn.net/data/flags/mini/np.png" }, + { id: "nl", + text: "Netherlands", + picture: "http://flags.fmcdn.net/data/flags/mini/nl.png" }, + { id: "nz", + text: "New Zealand", + picture: "http://flags.fmcdn.net/data/flags/mini/nz.png" }, + { id: "ni", + text: "Nicaragua", + picture: "http://flags.fmcdn.net/data/flags/mini/ni.png" }, + { id: "ne", + text: "Niger", + picture: "http://flags.fmcdn.net/data/flags/mini/ne.png" }, + { id: "ng", + text: "Nigeria", + picture: "http://flags.fmcdn.net/data/flags/mini/ng.png" }, + { id: "nu", + text: "Niue", + picture: "http://flags.fmcdn.net/data/flags/mini/nu.png" }, + { id: "kp", + text: "North Korea", + picture: "http://flags.fmcdn.net/data/flags/mini/kp.png" }, + { id: "no", + text: "Norway", + picture: "http://flags.fmcdn.net/data/flags/mini/no.png" }, + { id: "om", + text: "Oman", + picture: "http://flags.fmcdn.net/data/flags/mini/om.png" }, + { id: "pk", + text: "Pakistan", + picture: "http://flags.fmcdn.net/data/flags/mini/pk.png" }, + { id: "pw", + text: "Palau", + picture: "http://flags.fmcdn.net/data/flags/mini/pw.png" }, + { id: "pa", + text: "Panama", + picture: "http://flags.fmcdn.net/data/flags/mini/pa.png" }, + { id: "pg", + text: "Papua New Guinea", + picture: "http://flags.fmcdn.net/data/flags/mini/pg.png" }, + { id: "py", + text: "Paraguay", + picture: "http://flags.fmcdn.net/data/flags/mini/py.png" }, + { id: "cn", + text: "People's Republic of China", + picture: "http://flags.fmcdn.net/data/flags/mini/cn.png" }, + { id: "pe", + text: "Peru", + picture: "http://flags.fmcdn.net/data/flags/mini/pe.png" }, + { id: "ph", + text: "Philippines", + picture: "http://flags.fmcdn.net/data/flags/mini/ph.png" }, + { id: "pl", + text: "Poland", + picture: "http://flags.fmcdn.net/data/flags/mini/pl.png" }, + { id: "pt", + text: "Portugal", + picture: "http://flags.fmcdn.net/data/flags/mini/pt.png" }, + { id: "qa", + text: "Qatar", + picture: "http://flags.fmcdn.net/data/flags/mini/qa.png" }, + { id: "tw", + text: "Republic of China", + picture: "http://flags.fmcdn.net/data/flags/mini/tw.png" }, + { id: "cg", + text: "Republic of the Congo", + picture: "http://flags.fmcdn.net/data/flags/mini/cg.png" }, + { id: "ro", + text: "Romania", + picture: "http://flags.fmcdn.net/data/flags/mini/ro.png" }, + { id: "ru", + text: "Russia", + picture: "http://flags.fmcdn.net/data/flags/mini/ru.png" }, + { id: "rw", + text: "Rwanda", + picture: "http://flags.fmcdn.net/data/flags/mini/rw.png" }, + { id: "kn", + text: "Saint Kitts and Nevis", + picture: "http://flags.fmcdn.net/data/flags/mini/kn.png" }, + { id: "lc", + text: "Saint Lucia", + picture: "http://flags.fmcdn.net/data/flags/mini/lc.png" }, + { id: "ni", + text: "Saint Vincent and the Grenadines", + picture: "http://flags.fmcdn.net/data/flags/mini/vc" }, + { id: "ws", + text: "Samoa", + picture: "http://flags.fmcdn.net/data/flags/mini/ws.png" }, + { id: "sm", + text: "San Marino", + picture: "http://flags.fmcdn.net/data/flags/mini/sm.png" }, + { id: "st", + text: "Sao Tome and Principe", + picture: "http://flags.fmcdn.net/data/flags/mini/st.png" }, + { id: "sa", + text: "Saudi Arabia", + picture: "http://flags.fmcdn.net/data/flags/mini/sa.png" }, + { id: "sn", + text: "Senegal", + picture: "http://flags.fmcdn.net/data/flags/mini/sn.png" }, + { id: "rs", + text: "Serbia", + picture: "http://flags.fmcdn.net/data/flags/mini/rs.png" }, + { id: "sc", + text: "Seychelles", + picture: "http://flags.fmcdn.net/data/flags/mini/sc.png" }, + { id: "sl", + text: "Sierra Leone", + picture: "http://flags.fmcdn.net/data/flags/mini/sl.png" }, + { id: "sg", + text: "Singapore", + picture: "http://flags.fmcdn.net/data/flags/mini/sg.png" }, + { id: "sk", + text: "Slovakia", + picture: "http://flags.fmcdn.net/data/flags/mini/sk.png" }, + { id: "si", + text: "Slovenia", + picture: "http://flags.fmcdn.net/data/flags/mini/si.png" }, + { id: "sb", + text: "Solomon Islands", + picture: "http://flags.fmcdn.net/data/flags/mini/sb.png" }, + { id: "so", + text: "Somalia", + picture: "http://flags.fmcdn.net/data/flags/mini/so.png" }, + { id: "za", + text: "South Africa", + picture: "http://flags.fmcdn.net/data/flags/mini/za.png" }, + { id: "kr", + text: "South Korea", + picture: "http://flags.fmcdn.net/data/flags/mini/kr.png" }, + { id: "ss", + text: "South Sudan", + picture: "http://flags.fmcdn.net/data/flags/mini/ss.png" }, + { id: "es", + text: "Spain", + picture: "http://flags.fmcdn.net/data/flags/mini/es.png" }, + { id: "lk", + text: "Sri Lanka", + picture: "http://flags.fmcdn.net/data/flags/mini/lk.png" }, + { id: "sd", + text: "Sudan", + picture: "http://flags.fmcdn.net/data/flags/mini/sd.png" }, + { id: "sr", + text: "Suriname", + picture: "http://flags.fmcdn.net/data/flags/mini/sr.png" }, + { id: "sz", + text: "Swaziland", + picture: "http://flags.fmcdn.net/data/flags/mini/sz.png" }, + { id: "se", + text: "Sweden", + picture: "http://flags.fmcdn.net/data/flags/mini/se.png" }, + { id: "ch", + text: "Switzerland", + picture: "http://flags.fmcdn.net/data/flags/mini/ch.png" }, + { id: "sy", + text: "Syria", + picture: "http://flags.fmcdn.net/data/flags/mini/sy.png" }, + { id: "tj", + text: "Tajikistan", + picture: "http://flags.fmcdn.net/data/flags/mini/tj.png" }, + { id: "tz", + text: "Tanzania", + picture: "http://flags.fmcdn.net/data/flags/mini/tz.png" }, + { id: "th", + text: "Thailand", + picture: "http://flags.fmcdn.net/data/flags/mini/th.png" }, + { id: "tg", + text: "Togo", + picture: "http://flags.fmcdn.net/data/flags/mini/tg.png" }, + { id: "to", + text: "Tonga", + picture: "http://flags.fmcdn.net/data/flags/mini/to.png" }, + { id: "tt", + text: "Trinidad and Tobago", + picture: "http://flags.fmcdn.net/data/flags/mini/tt.png" }, + { id: "tn", + text: "Tunisia", + picture: "http://flags.fmcdn.net/data/flags/mini/tn.png" }, + { id: "tr", + text: "Turkey", + picture: "http://flags.fmcdn.net/data/flags/mini/tr.png" }, + { id: "tm", + text: "Turkmenistan", + picture: "http://flags.fmcdn.net/data/flags/mini/tm.png" }, + { id: "tv", + text: "Tuvalu", + picture: "http://flags.fmcdn.net/data/flags/mini/tv.png" }, + { id: "ug", + text: "Uganda", + picture: "http://flags.fmcdn.net/data/flags/mini/ug.png" }, + { id: "ua", + text: "Ukraine", + picture: "http://flags.fmcdn.net/data/flags/mini/ua.png" }, + { id: "ae", + text: "United Arab Emirates", + picture: "http://flags.fmcdn.net/data/flags/mini/ae.png" }, + { id: "gb", + text: "United Kingdom", + picture: "http://flags.fmcdn.net/data/flags/mini/gb.png" }, + { id: "us", + text: "United States", + picture: "http://flags.fmcdn.net/data/flags/mini/us.png" }, + { id: "uy", + text: "Uruguay", + picture: "http://flags.fmcdn.net/data/flags/mini/uy.png" }, + { id: "uz", + text: "Uzbekistan", + picture: "http://flags.fmcdn.net/data/flags/mini/uz.png" }, + { id: "vu", + text: "Vanuatu", + picture: "http://flags.fmcdn.net/data/flags/mini/vu.png" }, + { id: "va", + text: "Vatican City", + picture: "http://flags.fmcdn.net/data/flags/mini/va.png" }, + { id: "ve", + text: "Venezuela", + picture: "http://flags.fmcdn.net/data/flags/mini/ve.png" }, + { id: "vn", + text: "Vietnam", + picture: "http://flags.fmcdn.net/data/flags/mini/vn.png" }, + { id: "eh", + text: "Western Sahara", + picture: "http://flags.fmcdn.net/data/flags/mini/eh.png" }, + { id: "ye", + text: "Yemen", + picture: "http://flags.fmcdn.net/data/flags/mini/ye.png" }, + { id: "zm", + text: "Zambia", + picture: "http://flags.fmcdn.net/data/flags/mini/zm.png" }, + { id: "zw", + text: "Zimbabwe", + picture: "http://flags.fmcdn.net/data/flags/mini/zw.png" } +] + +class UserFinder + def self.find(id) + USERS.find { |it| it[:id].to_s == id.to_s }[:id] + end + + def self.find_by_ids(ids) USERS.select { |it| ids.include?(it[:id].to_s) } end def self.search(query, page) result = USERS.select { |it| %r{#{query}} =~ it[:text] } @@ -47,10 +651,37 @@ total_count: result.count } end end -RolloutUi2.wrap(Rollout.new(Redis.new)).with_finder(User) +class CountryFinder + def self.find(id) + COUNTRIES.find { |it| it[:id].to_s.downcase == id.to_s.downcase }[:id] + end + + def self.find_by_ids(ids) + COUNTRIES.select { |it| ids.include?(it[:id].to_s.downcase) } + end + + def self.search(query, page) + result = COUNTRIES.select { |it| %r{#{query.downcase}} =~ it[:text].downcase } + per_page = 3 + { + results: result[(page-1) * per_page...page * per_page], + per_page: per_page, + total_count: result.count + } + end +end + + +redis_connection = Redis.new + +rollout_user = Rollout.new(Redis::Namespace.new(:user, redis: redis_connection)) +rollout_country = Rollout.new(Redis::Namespace.new(:country, redis: redis_connection)) + +RolloutUi2.wrap(rollout_user, finder: UserFinder, key: :user) +RolloutUi2.wrap(rollout_country, finder: CountryFinder, key: :country) RolloutUi2::Server.use Rack::Auth::Basic do |user, pass| user == pass end