{"version":"1.0","provider_name":"Visual Paradigm Product Updates Vietnamese","provider_url":"https:\/\/updates.visual-paradigm.com\/vn","author_name":"jick","author_url":"https:\/\/updates.visual-paradigm.com\/vn\/author\/jick\/","title":"Chuy\u1ec3n \u0111\u1ed5i Ruby sang s\u01a1 \u0111\u1ed3 l\u1edbp UML t\u1ee9c th\u00ec: C\u00f4ng c\u1ee5 s\u01a1 \u0111\u1ed3 theo m\u00e3 Ruby tr\u1ef1c tuy\u1ebfn mi\u1ec5n ph\u00ed | VPasCode","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"Jq9FNGe0R2\"><a href=\"https:\/\/updates.visual-paradigm.com\/vn\/releases\/ruby-uml-class-diagram-as-code-vpascode\/\">Tr\u1ef1c quan h\u00f3a m\u00e3 Ruby d\u01b0\u1edbi d\u1ea1ng s\u01a1 \u0111\u1ed3 l\u1edbp UML ngay l\u1eadp t\u1ee9c v\u1edbi VPasCode<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/updates.visual-paradigm.com\/vn\/releases\/ruby-uml-class-diagram-as-code-vpascode\/embed\/#?secret=Jq9FNGe0R2\" width=\"600\" height=\"338\" title=\"&#8220;Tr\u1ef1c quan h\u00f3a m\u00e3 Ruby d\u01b0\u1edbi d\u1ea1ng s\u01a1 \u0111\u1ed3 l\u1edbp UML ngay l\u1eadp t\u1ee9c v\u1edbi VPasCode&#8221; &#8212; Visual Paradigm Product Updates Vietnamese\" data-secret=\"Jq9FNGe0R2\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/updates.visual-paradigm.com\/vn\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","thumbnail_url":"https:\/\/updates.visual-paradigm.com\/vn\/wp-content\/uploads\/sites\/10\/2026\/07\/vpascode-ruby-code-to-uml-hero.jpg","thumbnail_width":1312,"thumbnail_height":816,"description":"Tr\u1ef1c quan h\u00f3a m\u00e3 ngu\u1ed3n Ruby th\u00e0nh s\u01a1 \u0111\u1ed3 l\u1edbp UML ngay l\u1eadp t\u1ee9c v\u1edbi VPasCode. M\u1ed9t c\u00f4ng c\u1ee5 ch\u1ec9nh s\u1eeda Ruby tr\u1ef1c tuy\u1ebfn mi\u1ec5n ph\u00ed v\u00e0 c\u00f4ng c\u1ee5 s\u01a1 \u0111\u1ed3 theo m\u00e3 h\u1ed7 tr\u1ee3 ki\u1ec3u Sorbet, k\u1ebf th\u1eeba l\u1edbp v\u00e0 pha tr\u1ed9n module."}