Guest User

Untitled

a guest
Nov 19th, 2018
575
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.30 KB | None | 0 0
  1. require "benchmark/memory"
  2.  
  3. input = [{:Id=>"2688",
  4. :Name=>"Amanda ",
  5. :Surname=>"Haines",
  6. :Title=>"",
  7. :Phone=>"",
  8. :Email=>"amanda.haines@brent.gov.uk",
  9. :SecondEmail=>"",
  10. :Global=>"FALSE",
  11. :Groups=>"Borough Safety Advisory Group (BSAG)"},
  12. {:Id=>"4228",
  13. :Name=>"Andy ",
  14. :Surname=>"Marr",
  15. :Title=>"Security Manager Apleona",
  16. :Phone=>"+44 7766 602 673",
  17. :Email=>"andy.marr@apleona.com",
  18. :SecondEmail=>"",
  19. :Global=>"FALSE"},
  20. {:Id=>"1131",
  21. :Name=>"Bhavi",
  22. :Surname=>"Shah",
  23. :Title=>"",
  24. :Phone=>"",
  25. :Email=>"bhavi.shah@brent.gov.uk",
  26. :SecondEmail=>"",
  27. :Global=>"FALSE"},
  28. {:Id=>"2679",
  29. :Name=>"Bob",
  30. :Surname=>"Barrett",
  31. :Title=>"Parks Contact",
  32. :Phone=>"",
  33. :Email=>"bob.barrett@veolia.com",
  34. :SecondEmail=>"",
  35. :Global=>"FALSE",
  36. :Groups=>"Parks"},
  37. {:Id=>"4223",
  38. :Name=>"Bob Cox",
  39. :Surname=>"20th Willesden Scouts",
  40. :Title=>"Site manager",
  41. :Phone=>"",
  42. :Email=>"coxbob008@hotmail.co.uk",
  43. :SecondEmail=>"",
  44. :Global=>"FALSE"},
  45. {:Id=>"2681",
  46. :Name=>"Brent Cemeteries",
  47. :Surname=>"Generic Email",
  48. :Title=>"",
  49. :Phone=>"",
  50. :Email=>"CEMETERIES@brent.gov.uk",
  51. :SecondEmail=>"",
  52. :Global=>"FALSE",
  53. :Groups=>"Cemeteries"},
  54. {:Id=>"232",
  55. :Name=>"Caroline",
  56. :Surname=>"Davies",
  57. :Title=>"",
  58. :Phone=>"",
  59. :Email=>"caroline.davies@brent.gov.uk",
  60. :SecondEmail=>"",
  61. :Global=>"FALSE",
  62. :Groups=>"Property and Asset Management"},
  63. {:Id=>"854",
  64. :Name=>"Catherine",
  65. :Surname=>"Fourcampre",
  66. :Title=>"Bridge Park Centre Manager",
  67. :Phone=>"",
  68. :Email=>"catherine.fourcampre@brent.gov.uk",
  69. :SecondEmail=>"",
  70. :Global=>"FALSE",
  71. :Groups=>"Bridge Park Leisure Centre"},
  72. {:Id=>"3724",
  73. :Name=>"Chris ",
  74. :Surname=>"Whyte",
  75. :Title=>"Operational Director Environment",
  76. :Phone=>"",
  77. :Email=>"chris.whyte@brent.gov.uk",
  78. :SecondEmail=>"",
  79. :Global=>"TRUE",
  80. :Groups=>"Borough Safety Advisory Group (BSAG)"},
  81. {:Id=>"4231",
  82. :Name=>"Chris",
  83. :Surname=>"Williams",
  84. :Title=>"Vale Farm Sports Centre Manager",
  85. :Phone=>"",
  86. :Email=>"chriswilliams@everyoneactive.com",
  87. :SecondEmail=>"",
  88. :Global=>"FALSE"},
  89. {:Id=>"4224",
  90. :Name=>"Christian Rouffaer",
  91. :Surname=>"20th Willesden Scouts",
  92. :Title=>"Treasurer",
  93. :Phone=>"",
  94. :Email=>"chris.roufffaert@outlook.com",
  95. :SecondEmail=>"",
  96. :Global=>"FALSE"},
  97. {:Id=>"233",
  98. :Name=>"Colin ",
  99. :Surname=>"Rhodes",
  100. :Title=>"",
  101. :Phone=>"",
  102. :Email=>"filming@wembleystadium.com",
  103. :SecondEmail=>"",
  104. :Global=>"FALSE",
  105. :Groups=>"Wembley Stadium"},
  106. {:Id=>"3966",
  107. :Name=>"Courtney ",
  108. :Surname=>"Vaz",
  109. :Title=>"Traffic Management Engineer",
  110. :Phone=>"",
  111. :Email=>"courtney.vaz@brent.gov.uk",
  112. :SecondEmail=>"",
  113. :Global=>"TRUE"},
  114. {:Id=>"1750",
  115. :Name=>"Craik",
  116. :Surname=>"Court",
  117. :Title=>"Tara or Cyril",
  118. :Phone=>"",
  119. :Email=>"mnn_tr@yahoo.co.uk",
  120. :SecondEmail=>"cyrilramsay@yahoo.co.uk",
  121. :Global=>"FALSE"},
  122. {:Id=>"1751",
  123. :Name=>"Dundonald",
  124. :Surname=>"Road",
  125. :Title=>"Ruth Dar",
  126. :Phone=>"020 8969 6522",
  127. :Email=>"ruthdar@aol.com",
  128. :SecondEmail=>"",
  129. :Global=>"FALSE"},
  130. {:Id=>"3754",
  131. :Name=>"Eugene",
  132. :Surname=>"Buckley",
  133. :Title=>"Parks contact at Veolia",
  134. :Phone=>"",
  135. :Email=>"eugene.buckley@veolia.com",
  136. :SecondEmail=>"",
  137. :Global=>"FALSE",
  138. :Groups=>"Parks"},
  139. {:Id=>"4226",
  140. :Name=>"Events Team ",
  141. :Surname=>"The Drum",
  142. :Title=>"",
  143. :Phone=>"",
  144. :Email=>"events@thedrumwembley.com",
  145. :SecondEmail=>"",
  146. :Global=>"FALSE"},
  147. {:Id=>"4045",
  148. :Name=>"Jane ",
  149. :Surname=>"Hylton",
  150. :Title=>"Willesden Sports Centre Manager",
  151. :Phone=>"",
  152. :Email=>"Jane.Hylton@1Life.co.uk",
  153. :SecondEmail=>"",
  154. :Global=>"FALSE"},
  155. {:Id=>"731",
  156. :Name=>"Jennifer",
  157. :Surname=>"Barrett",
  158. :Title=>"Service Manager",
  159. :Phone=>"",
  160. :Email=>"jennifer.barrett@brent.gov.uk",
  161. :SecondEmail=>"",
  162. :Global=>"TRUE",
  163. :Groups=>"Environmental Health"},
  164. {:Id=>"239",
  165. :Name=>"John",
  166. :Surname=>"Woods",
  167. :Title=>"",
  168. :Phone=>"",
  169. :Email=>"chairman@bhra.co.uk",
  170. :SecondEmail=>"",
  171. :Global=>"FALSE",
  172. :Groups=>"Barn Hill Residents Association"},
  173. {:Id=>"4227",
  174. :Name=>"Jolanta",
  175. :Surname=>"Lvova",
  176. :Title=>"Commercial Manager",
  177. :Phone=>"",
  178. :Email=>"jolanta.lvova@brent.gov.uk",
  179. :SecondEmail=>"",
  180. :Global=>"FALSE"},
  181. {:Id=>"3688",
  182. :Name=>"Jonathan ",
  183. :Surname=>"Max",
  184. :Title=>"BHP Health & Safety ",
  185. :Phone=>"",
  186. :Email=>"jonathan.max@brent.gov.uk",
  187. :SecondEmail=>"",
  188. :Global=>"FALSE",
  189. :Groups=>"housing"},
  190. {:Id=>"241",
  191. :Name=>"Judy",
  192. :Surname=>"Langley",
  193. :Title=>"",
  194. :Phone=>"",
  195. :Email=>"judymapra@googlemail.com",
  196. :SecondEmail=>"",
  197. :Global=>"FALSE",
  198. :Groups=>"Mapesbury Resident Association"},
  199. {:Id=>"4048",
  200. :Name=>"Kensal Triangle ",
  201. :Surname=>"Resident Association",
  202. :Title=>"",
  203. :Phone=>"",
  204. :Email=>"info@ktra.co.uk",
  205. :SecondEmail=>"",
  206. :Global=>"FALSE"},
  207. {:Id=>"4229",
  208. :Name=>"Luke",
  209. :Surname=>"Lester",
  210. :Title=>"AV Manager ",
  211. :Phone=>"",
  212. :Email=>"luke.lester@brent.gov.uk",
  213. :SecondEmail=>"",
  214. :Global=>"FALSE"},
  215. {:Id=>"4046",
  216. :Name=>"Mark Stewart",
  217. :Surname=>"Willesden Sports Centre",
  218. :Title=>"",
  219. :Phone=>"",
  220. :Email=>"OpsWillesden@1Life.co.uk",
  221. :SecondEmail=>"",
  222. :Global=>"FALSE"},
  223. {:Id=>"2683",
  224. :Name=>"Meenal ",
  225. :Surname=>"Shah",
  226. :Title=>"Conference and Events Manager",
  227. :Phone=>"",
  228. :Email=>"meenal.shah@brent.gov.uk",
  229. :SecondEmail=>"",
  230. :Global=>"FALSE",
  231. :Groups=>"Brent Civic Centre"},
  232. {:Id=>"3725",
  233. :Name=>"Met Police Film Unit",
  234. :Surname=>"Notifications Only",
  235. :Title=>"",
  236. :Phone=>"",
  237. :Email=>"topsheets@met.police.uk",
  238. :SecondEmail=>"",
  239. :Global=>"TRUE"},
  240. {:Id=>"230",
  241. :Name=>"Met Police Film Unit",
  242. :Surname=>"Assistance Required",
  243. :Title=>"",
  244. :Phone=>"020 3054 5555",
  245. :Email=>"filmunit@met.police.uk",
  246. :SecondEmail=>"",
  247. :Global=>"TRUE",
  248. :Groups=>"Police"},
  249. {:Id=>"247",
  250. :Name=>"Nadia",
  251. :Surname=>"Khan",
  252. :Title=>"",
  253. :Phone=>"",
  254. :Email=>"nadia.khan@bhphousing.co.uk",
  255. :SecondEmail=>"",
  256. :Global=>"FALSE",
  257. :Groups=>"housing"},
  258. {:Id=>"248",
  259. :Name=>"Nirmala",
  260. :Surname=>"Kerai",
  261. :Title=>"",
  262. :Phone=>"",
  263. :Email=>"nirmala.kerai@brent.gov.uk",
  264. :SecondEmail=>"",
  265. :Global=>"FALSE",
  266. :Groups=>"Facilities (council buildings)"},
  267. {:Id=>"2680",
  268. :Name=>"Parks ",
  269. :Surname=>"Generic Email",
  270. :Title=>"",
  271. :Phone=>"",
  272. :Email=>"brent.parks.services@brent.gov.uk",
  273. :SecondEmail=>"",
  274. :Global=>"FALSE",
  275. :Groups=>"Parks"},
  276. {:Id=>"3967",
  277. :Name=>"Paul ",
  278. :Surname=>"McDonagh",
  279. :Title=>"Traffic Management Engineer",
  280. :Phone=>"",
  281. :Email=>"paul.mcdonagh@brent.gov.uk",
  282. :SecondEmail=>"",
  283. :Global=>"TRUE"},
  284. {:Id=>"249",
  285. :Name=>"Paul",
  286. :Surname=>"McGhie",
  287. :Title=>"",
  288. :Phone=>"",
  289. :Email=>"paul.mcghie@brent.gov.uk",
  290. :SecondEmail=>"",
  291. :Global=>"FALSE",
  292. :Groups=>"Education Welfare (child licences)"},
  293. {:Id=>"250",
  294. :Name=>"Paul",
  295. :Surname=>"Richards",
  296. :Title=>"Traffic Manager",
  297. :Phone=>"5145",
  298. :Email=>"paul.richards@brent.gov.uk",
  299. :SecondEmail=>"",
  300. :Global=>"TRUE",
  301. :Groups=>"Borough Safety Advisory Group (BSAG)"},
  302. {:Id=>"253",
  303. :Name=>"Rashmi",
  304. :Surname=>"Agarwal",
  305. :Title=>"",
  306. :Phone=>"",
  307. :Email=>"rashmi.agarwal@brent.gov.uk",
  308. :SecondEmail=>"",
  309. :Global=>"FALSE",
  310. :Groups=>"Libraries"},
  311. {:Id=>"2366",
  312. :Name=>"Rennie ",
  313. :Surname=>"Mulley",
  314. :Title=>"",
  315. :Phone=>"",
  316. :Email=>"rennie.mulley@brent.gov.uk",
  317. :SecondEmail=>"",
  318. :Global=>"TRUE"},
  319. {:Id=>"2685",
  320. :Name=>"Richard",
  321. :Surname=>"Barrett",
  322. :Title=>"Head of Regeneration",
  323. :Phone=>"",
  324. :Email=>"richard.barrett@brent.gov.uk",
  325. :SecondEmail=>"",
  326. :Global=>"FALSE",
  327. :Groups=>"housing"},
  328. {:Id=>"4230",
  329. :Name=>"Ricky ",
  330. :Surname=>"Shah",
  331. :Title=>"Operation Officer Client FM",
  332. :Phone=>"",
  333. :Email=>"ricky.shah@brent.gov.uk",
  334. :SecondEmail=>"",
  335. :Global=>"FALSE"},
  336. {:Id=>"3723",
  337. :Name=>"Robert ",
  338. :Surname=>"Anderton",
  339. :Title=>"Head of Public Realm Contract",
  340. :Phone=>"",
  341. :Email=>"robert.anderton@brent.gov.uk",
  342. :SecondEmail=>"",
  343. :Global=>"TRUE",
  344. :Groups=>"Borough Safety Advisory Group (BSAG)"},
  345. {:Id=>"4225",
  346. :Name=>"Russell",
  347. :Surname=>"Burnaby",
  348. :Title=>"Facilities Manager Civic Centre",
  349. :Phone=>"",
  350. :Email=>"russell.burnaby@brent.gov.uk",
  351. :SecondEmail=>"",
  352. :Global=>"FALSE"},
  353. {:Id=>"255",
  354. :Name=>"Ruth",
  355. :Surname=>"Dar",
  356. :Title=>"",
  357. :Phone=>"",
  358. :Email=>"ruthdar@aol.com",
  359. :SecondEmail=>"",
  360. :Global=>"FALSE",
  361. :Groups=>"Aylestone Park Residents and Tenants Association"},
  362. {:Id=>"2117",
  363. :Name=>"Samantha",
  364. :Surname=>"Haines",
  365. :Title=>"",
  366. :Phone=>"",
  367. :Email=>"samantha.haines@brent.gov.uk",
  368. :SecondEmail=>"",
  369. :Global=>"TRUE"},
  370. {:Id=>"4047",
  371. :Name=>"Steph",
  372. :Surname=>"Wilson",
  373. :Title=>"Brent Libraries Manager",
  374. :Phone=>"",
  375. :Email=>"stephanie.wilson@brent.gov.uk",
  376. :SecondEmail=>"",
  377. :Global=>"FALSE",
  378. :Groups=>"Libraries"},
  379. {:Id=>"3722",
  380. :Name=>"Yogini",
  381. :Surname=>"Patel",
  382. :Title=>"Senior Regulatory Service Manager",
  383. :Phone=>"",
  384. :Email=>"yogini.patel@brent.gov.uk",
  385. :SecondEmail=>"",
  386. :Global=>"TRUE",
  387. :Groups=>"Borough Safety Advisory Group (BSAG)"}]
  388.  
  389. class Hash
  390. def keys_to_downcase_raul
  391. hash_with_lowercase_keys = {}
  392. self.each_pair do |key, value|
  393. hash_with_lowercase_keys.merge!({key.downcase => value})
  394. end
  395. hash_with_lowercase_keys
  396. end
  397.  
  398. def keys_to_downcase_peter
  399. self.map{|k,_|k.downcase}
  400. end
  401. end
  402.  
  403. Benchmark.memory do |x|
  404. x.report("Raul") { input.map{|h| h.keys_to_downcase_raul} }
  405. x.report("Peter") { input.map{|h| h.keys_to_downcase_peter} }
  406.  
  407. x.compare!
  408. end
Add Comment
Please, Sign In to add comment