{"id":84,"date":"2008-05-30T21:03:33","date_gmt":"2008-05-31T05:03:33","guid":{"rendered":"http:\/\/fernyb.net\/blog\/?p=84"},"modified":"2008-05-31T21:03:37","modified_gmt":"2008-06-01T05:03:37","slug":"something-in-ruby","status":"publish","type":"post","link":"http:\/\/fernyb.net\/blog\/2008\/05\/30\/something-in-ruby\/","title":{"rendered":"Something in Ruby"},"content":{"rendered":"<div class=\"ruby\" style=\"width:490px;height:500px;overflow:scroll;padding:10px;background: #0d0e24;\">\n<pre><span class=\"comment\">#!\/usr\/bin\/env ruby<\/span>\r\n\r\n<span class=\"constant\">String<\/span><span class=\"punct\">.<\/span><span class=\"ident\">class_eval<\/span> <span class=\"punct\">{<\/span>\r\n  <span class=\"ident\">define_method<\/span><span class=\"punct\">(<\/span><span class=\"symbol\">:translate_to<\/span><span class=\"punct\">)<\/span> <span class=\"keyword\">do<\/span> <span class=\"punct\">|<\/span><span class=\"ident\">lang<\/span><span class=\"punct\">|<\/span>\r\n    <span class=\"ident\">text<\/span> <span class=\"punct\">=<\/span> <span class=\"keyword\">case<\/span> <span class=\"ident\">lang<\/span>\r\n           <span class=\"keyword\">when<\/span> <span class=\"symbol\">:spanish<\/span> \r\n           <span class=\"punct\">\"<\/span><span class=\"string\">Buenos Dias, Como estas hoy?<\/span><span class=\"punct\">\"<\/span>\r\n           <span class=\"keyword\">when<\/span> <span class=\"symbol\">:english<\/span>\r\n           <span class=\"punct\">\"<\/span><span class=\"string\">Good Morning, How are you today?<\/span><span class=\"punct\">\"<\/span>\r\n           <span class=\"keyword\">else<\/span>\r\n           <span class=\"punct\">\"<\/span><span class=\"string\">I don't speak any other language.<\/span><span class=\"punct\">\"<\/span>\r\n           <span class=\"keyword\">end<\/span>\r\n  <span class=\"keyword\">end<\/span>\r\n<span class=\"punct\">}<\/span>\r\n\r\n<span class=\"ident\">puts<\/span> <span class=\"punct\">\"<\/span><span class=\"string\">Sentence<\/span><span class=\"punct\">\".<\/span><span class=\"ident\">translate_to<\/span> <span class=\"symbol\">:spanish<\/span>\r\n<span class=\"comment\"># => Prints out \"Buenos Dias, Como estas hoy?\"<\/span>\r\n\r\n<span class=\"ident\">puts<\/span> <span class=\"punct\">\"<\/span><span class=\"string\">Sentence<\/span><span class=\"punct\">\".<\/span><span class=\"ident\">translate_to<\/span> <span class=\"symbol\">:english<\/span>\r\n<span class=\"comment\"># => Prints out \"Good Morning, How are you today?\"<\/span>\r\n\r\n<span class=\"ident\">puts<\/span> <span class=\"punct\">\"<\/span><span class=\"string\">Setenece<\/span><span class=\"punct\">\".<\/span><span class=\"ident\">translate_to<\/span> <span class=\"symbol\">:portuguese<\/span>\r\n<span class=\"comment\"># => Prints out \"I don't speak any other language.\"<\/span>\r\n\r\n<span class=\"ident\">puts<\/span> <span class=\"punct\">\"<\/span><span class=\"string\">Sentence<\/span><span class=\"punct\">\"<\/span>\r\n<span class=\"comment\"># => Prints out \"Sentence\"<\/span>\r\n\r\n<\/pre>\n<\/div>\n<p>\nSo while messing round I made this in Ruby&#8230; I&#8217;m not sure if it is considered meta programming? Well, it&#8217;s just adding a method to the String class. I get confused when to consider things to be meta programming.. Maybe I over think about it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>#!\/usr\/bin\/env ruby String.class_eval { define_method(:translate_to) do |lang| text = case lang when :spanish &#8220;Buenos Dias, Como estas hoy?&#8221; when :english &#8220;Good Morning, How are you today?&#8221; else &#8220;I don&#8217;t speak any other language.&#8221; end end } puts &#8220;Sentence&#8221;.translate_to :spanish # => Prints out &#8220;Buenos Dias, Como estas hoy?&#8221; puts &#8220;Sentence&#8221;.translate_to :english # => Prints out [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,21],"tags":[32,31,115],"_links":{"self":[{"href":"http:\/\/fernyb.net\/blog\/wp-json\/wp\/v2\/posts\/84"}],"collection":[{"href":"http:\/\/fernyb.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/fernyb.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/fernyb.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/fernyb.net\/blog\/wp-json\/wp\/v2\/comments?post=84"}],"version-history":[{"count":0,"href":"http:\/\/fernyb.net\/blog\/wp-json\/wp\/v2\/posts\/84\/revisions"}],"wp:attachment":[{"href":"http:\/\/fernyb.net\/blog\/wp-json\/wp\/v2\/media?parent=84"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/fernyb.net\/blog\/wp-json\/wp\/v2\/categories?post=84"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/fernyb.net\/blog\/wp-json\/wp\/v2\/tags?post=84"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}