{"id":4994,"date":"2018-06-01T06:12:53","date_gmt":"2018-06-01T06:12:53","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/?p=4994"},"modified":"2018-06-12T06:40:28","modified_gmt":"2018-06-12T06:40:28","slug":"lets-understand-the-ruby-programming-world-in-5-mins","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/lets-understand-the-ruby-programming-world-in-5-mins\/","title":{"rendered":"Lets Understand the Ruby programming world in 5 mins!!!"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5008\" src=\"http:\/\/www.scmgalaxy.com\/tutorials\/wp-content\/uploads\/2018\/06\/ruby-programming-languages.png\" alt=\"\" width=\"600\" height=\"350\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2018\/06\/ruby-programming-languages.png 600w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2018\/06\/ruby-programming-languages-300x175.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>Lets Understand the Ruby programming world in 5 mins?<\/p>\n<p><strong>Ruby<\/strong><br \/>\nRuby is a dynamic, interpreted, reflective, object-oriented, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro &#8220;Matz&#8221; Matsumoto in Japan. The Currnet most latest stable release is Ruby 2.5.<\/p>\n<p><strong>Gem &#8211; A Ruby Package<\/strong><br \/>\nA Gem is a Ruby application package which can contain anything from a collection of code to libraries, and\/or list of dependencies that the packaged code actually needs to run.<\/p>\n<p>Gems are formed of a structure similar to the following:<\/p>\n<p>[code]<br \/>\n\/[package_name] # The main root directory of the Gem package.<br \/>\n|__ \/bin # Location of the executable binaries if the package has any.<br \/>\n|__ \/lib # Directory containing the main Ruby application code (inc. modules).<br \/>\n|__ \/test # Location of test files.<br \/>\n|__ README #<br \/>\n|__ Rakefile # The Rake-file for libraries which use Rake for builds.<br \/>\n|__ [name].gemspec # *.gemspec file, which has the name of the main directory, contains all package meta-data, e.g. name, version, directories etc.<\/p>\n<p>[\/code]<\/p>\n<p>One of the tools we will be using for creating Gems is Bundler.<\/p>\n<p><strong>Bundler<\/strong><br \/>\nBundler a gem to bundle gems. Bundler makes sure Ruby applications run the same code on every machine.<\/p>\n<p>It does this by managing the gems that the application depends on. Given a list of gems, it can automatically download and install those gems, as well as any other gems needed by the gems that are listed. Before installing gems, it checks the versions of every gem to make sure that they are compatible, and can all be loaded at the same time. After the gems have been installed, Bundler can help you update some or all of them when new versions become available. Finally, it records the exact versions that have been installed, so that others can install the exact same gems.<\/p>\n<p><strong>RubyGems &#8211; A Package Manager<\/strong><br \/>\nRubyGems is the default package manager for Ruby. It helps with all application package lifecycle from downloading to distributing Ruby applications and relevant binaries or libraries. RubyGems is a powerful package management tool which provides the developers a standardised structure for packing application in archives called Ruby Gem. The webiste is https:\/\/rubygems.org\/<\/p>\n<p><strong>Rake<\/strong><br \/>\nRake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax. you must write a \u201cRakefile\u201d file which contains the build rules.<\/p>\n<p><strong>Rails<\/strong><br \/>\nRails is a web application development framework written in the Ruby programming language. It is designed to make programming web applications easier by making assumptions about what every developer needs to get started. It allows you to write less code while accomplishing more than many other languages and frameworks. Experienced Rails developers also report that it makes web application development more fun.<\/p>\n<p><strong>bower<\/strong><br \/>\nWeb sites are made of lots of things \u2014 frameworks, libraries, assets, and utilities. Bower manages all these things for you. Bower can manage components that contain HTML, CSS, JavaScript, fonts or even image files. Bower doesn\u2019t concatenate or minify code or do anything else &#8211; it just installs the right versions of the packages you need and their dependencies.<\/p>\n<p><strong>yarn<\/strong><br \/>\nYarn caches every package it has downloaded, so it never needs to download the same package again. It also does almost everything concurrently to maximize resource utilization. This means even faster installs.<\/p>\n<p>If i have missed any tools which is important of Rudy ecospace, please mentioned in the comments sections.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lets Understand the Ruby programming world in 5 mins? Ruby Ruby is a dynamic, interpreted, reflective, object-oriented, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro&#8230; <\/p>\n","protected":false},"author":1,"featured_media":5010,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[4929],"tags":[4934,4930,4931,4932,4933,178,311,4935],"class_list":["post-4994","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ruby","tag-bower","tag-bundler","tag-gem","tag-rails","tag-rake","tag-ruby","tag-tools","tag-yarn"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/4994","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=4994"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/4994\/revisions"}],"predecessor-version":[{"id":5011,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/4994\/revisions\/5011"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/5010"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=4994"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=4994"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=4994"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}