{"id":6419,"date":"2019-04-29T11:00:42","date_gmt":"2019-04-29T11:00:42","guid":{"rendered":"https:\/\/www.botreetechnologies.com\/blog\/?p=6419"},"modified":"2021-09-15T17:20:33","modified_gmt":"2021-09-15T11:50:33","slug":"deploy-new-feature-on-production-in-controlled-way-rollout-gem","status":"publish","type":"post","link":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/","title":{"rendered":"Rollout Gem in Ruby on Rails: Deploy New Feature on Production in Controlled Way"},"content":{"rendered":"\n<p>Hi Guys&#8230;<\/p>\n\n\n\n<p>Today I would like to give you a basic understanding of Rollout Gem in this blog post.<\/p>\n\n\n\n<p>So first of all,<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Rollout Gem Can Do?<\/h2>\n\n\n\n<p>Rollout gem gives us control on deploying a new feature to the Staging\/Production environment for the specific number of users. By using Rollout gem, the user has control on the feature enabling\/disabling to a specific user or group of users or percentage of users. We will learn how to roll out a feature to a few users before it reaches out to the masses by using this gem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How Do We Do That?<\/h3>\n\n\n\n<p>In short, simply we just wrap a conditional around some feature in your application, and then we trigger that conditional (or not) at runtime based on a configuration setting.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How Does It Work?<\/h3>\n\n\n\n<p>Basically, It uses Redis backend to manage which users are able to see which given feature. So make sure Redis is installed.<\/p>\n\n\n\n<p>Add gems to the gem file<\/p>\n\n\n\n<p><code>gem 'redis'<\/code><\/p>\n\n\n\n<p><code>gem 'rollout'<\/code><\/p>\n\n\n\n<p>Don\u2019t forget to run bundle install to install the above gems<\/p>\n\n\n\n<p><code>bundle install<\/code><\/p>\n\n\n\n<p>Then setup rollout inside the initializers directory which is in the config. Make a new file called rollout_setup.rb in initializers directory.<\/p>\n\n\n\n<p>Now, the documentation recommends using global variables, So first setup redis and then roll out in the rollout_setup file that we created.<\/p>\n\n\n\n<p><code>$redis = Redis.new<\/code><\/p>\n\n\n\n<p><code>$rollout = Rollout.new($redis)<\/code><\/p>\n\n\n\n<p>And we might want to provide access to groups of users to access the feature. So, use define_group on rollout instance. Here, we have admins.<\/p>\n\n\n\n<p><code>$rollout.define_group(:admins) do |user|<\/code><\/p>\n\n\n\n<p><code>user.admin?<\/code><\/p>\n\n\n\n<p><code>End<\/code><\/p>\n\n\n\n<p>Now that we have rollout set up, we have to figure out which feature we have to roll out for the specific group of users. We are using the feature \u201csend in email\u201d<\/p>\n\n\n\n<p>Here, only admins can see the link \u201csend in email\u201d see below image.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"276\" src=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output1-1024x276.png\" alt=\"Rollout output1\" class=\"wp-image-13533\" srcset=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output1-1024x276.png 1024w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output1-300x81.png 300w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output1-768x207.png 768w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output1.png 1279w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"259\" src=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output2-1024x259.png\" alt=\"Rollout Output2\" class=\"wp-image-13534\" srcset=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output2-1024x259.png 1024w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output2-300x76.png 300w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output2-768x194.png 768w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output2.png 1293w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>On clicking the link, the page to enter email address opens and on clicking \u201csend in email\u201d button the list is sent on the email<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"212\" src=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output3-1024x212.png\" alt=\"Rollout Output 3\" class=\"wp-image-13535\" srcset=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output3-1024x212.png 1024w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output3-300x62.png 300w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output3-768x159.png 768w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output3.png 1297w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>After that, wrap the feature code in the view with the if clause to check whether a user has access to the feature<\/p>\n\n\n\n<p><code>$rollout.active?(:email, current_user)<\/code><\/p>\n\n\n\n<p>Here, If the current_user is selected to access the feature then the feature code is executed.<\/p>\n\n\n\n<p>Now we have to tell rollout to activate this feature for the defined group. We can do this from rails console or you can also do this through the rake task.<\/p>\n\n\n\n<p><code>$rollout.activate_group(:email, :admin)<\/code><\/p>\n\n\n\n<p>So, this will activate the feature for the given group<\/p>\n\n\n\n<p>If we want to activate every user you can use: all that will activate all users because there is an all group set up by default i.e for all users<\/p>\n\n\n\n<p><code>$rollout.activate_group(:email, :all)<\/code><\/p>\n\n\n\n<p>Or we want to activate the feature for a single user<\/p>\n\n\n\n<p><code>$rollout.activate_user(:email, User.find_by_name(\u201cLeena\u201d))<\/code><\/p>\n\n\n\n<p>After activating the feature of email for Leena from the console, we can see the link \u201csend in an email\u201d in the below image.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"290\" src=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output4-1024x290.png\" alt=\"Rollout output 4\" class=\"wp-image-13536\" srcset=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output4-1024x290.png 1024w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output4-300x85.png 300w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output4-768x217.png 768w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/rollout-output4.png 1243w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>We can activate a percentage of users<\/p>\n\n\n\n<p><code>$rollout.activate_percentage(:email, 20)<\/code><\/p>\n\n\n\n<p>Each of these methods has a deactivate version for removing the activation or you can remove all activation for the given feature<\/p>\n\n\n\n<p><code>$rollout.deactivate_user(:email, User.first)<\/code><\/p>\n\n\n\n<p><code>$rollout.deactivate_all(:email)<\/code><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>Read Also: <a href=\"https:\/\/www.botreetechnologies.com\/blog\/ruby-on-rails-gems\/\" target=\"_blank\" rel=\"noreferrer noopener\">Most useful Ruby on Rails Gems<\/a><\/strong><\/p><\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">About Rollout &#8211; Dashboard<\/h3>\n\n\n\n<p>We also have an interactive user interface for rollout gem called <a href=\"https:\/\/github.com\/fiverr\/rollout_dashboard\" target=\"_blank\" rel=\"noopener noreferrer\">Rollout &#8211; Dashboard<\/a>.<\/p>\n\n\n\n<p>With Rollout-Dashboard, we can manage all of our features from a single dashboard and Monitor user\u2019s feature distribution and usage while keeping an eye on deployment percentages.<\/p>\n\n\n\n<p>To perform actions on rollout gem Rollout-Dashboard communicates with <a href=\"https:\/\/github.com\/fiverr\/rollout_service\" target=\"_blank\" rel=\"noopener noreferrer\">Rollout-Service<\/a> via AJAX requests.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.botreetechnologies.com\/ruby-on-rails-development\"><strong><b>Click here for more<\/b> details&#8230;<\/strong><\/a><\/p>\n\n\n\n<p>At<a href=\"https:\/\/www.botreetechnologies.com\/\"> BoTree Technologies<\/a>, we build enterprise applications with our RoR team of 25+ engineers.<\/p>\n\n\n\n<p>We also specialize in Python, RPA, AI, Django, JavaScript and ReactJS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.botreetechnologies.com\/contact\">Consulting is free<\/a> &#8211; let us help you grow!<\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Hi Guys&#8230; Today I would like to give you a&#8230;<\/p>\n","protected":false},"author":40,"featured_media":13525,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73,10],"tags":[],"class_list":["post-6419","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ruby-on-rails","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Deploy New Feature on Production in Controlled Way - Rollout Gem<\/title>\n<meta name=\"description\" content=\"Basic understanding of Rollout Gem. Learn more how to deploy a feature to a selected group of users using Rollout Gem\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploy New Feature on Production in Controlled Way - Rollout Gem\" \/>\n<meta property=\"og:description\" content=\"Basic understanding of Rollout Gem. Learn more how to deploy a feature to a selected group of users using Rollout Gem\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/\" \/>\n<meta property=\"og:site_name\" content=\"BoTree Technologies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BoTreeTechnologies\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-29T11:00:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-15T11:50:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/04\/rollout-gem-github.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1280\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Leena Chaudhari\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:site\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Leena Chaudhari\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/\"},\"author\":{\"name\":\"Leena Chaudhari\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/d59428bd83da770d96e2c2764a5f74c2\"},\"headline\":\"Rollout Gem in Ruby on Rails: Deploy New Feature on Production in Controlled Way\",\"datePublished\":\"2019-04-29T11:00:42+00:00\",\"dateModified\":\"2021-09-15T11:50:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/\"},\"wordCount\":614,\"commentCount\":15,\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/04\/rollout-gem-github.jpg\",\"articleSection\":[\"Ruby on Rails\",\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/\",\"name\":\"Deploy New Feature on Production in Controlled Way - Rollout Gem\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/04\/rollout-gem-github.jpg\",\"datePublished\":\"2019-04-29T11:00:42+00:00\",\"dateModified\":\"2021-09-15T11:50:33+00:00\",\"author\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/d59428bd83da770d96e2c2764a5f74c2\"},\"description\":\"Basic understanding of Rollout Gem. Learn more how to deploy a feature to a selected group of users using Rollout Gem\",\"breadcrumb\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#primaryimage\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/04\/rollout-gem-github.jpg\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/04\/rollout-gem-github.jpg\",\"width\":1920,\"height\":1280,\"caption\":\"Rollout Gem - Rubygem\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.botreetechnologies.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rollout Gem in Ruby on Rails: Deploy New Feature on Production in Controlled Way\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/\",\"name\":\"BoTree Technologies\",\"description\":\"Committed to inspire generation.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/d59428bd83da770d96e2c2764a5f74c2\",\"name\":\"Leena Chaudhari\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/leena-chaudhari-150x150.png\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/leena-chaudhari-150x150.png\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/leena-chaudhari-150x150.png\",\"caption\":\"Leena Chaudhari\"},\"description\":\"Leena is a Ruby On Rails Developer. She loves to make small applications that help in everyday life. She loves to do crafting and calligraphy in her spare moments.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploy New Feature on Production in Controlled Way - Rollout Gem","description":"Basic understanding of Rollout Gem. Learn more how to deploy a feature to a selected group of users using Rollout Gem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/","og_locale":"en_US","og_type":"article","og_title":"Deploy New Feature on Production in Controlled Way - Rollout Gem","og_description":"Basic understanding of Rollout Gem. Learn more how to deploy a feature to a selected group of users using Rollout Gem","og_url":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/","og_site_name":"BoTree Technologies","article_publisher":"https:\/\/www.facebook.com\/BoTreeTechnologies\/","article_published_time":"2019-04-29T11:00:42+00:00","article_modified_time":"2021-09-15T11:50:33+00:00","og_image":[{"width":1920,"height":1280,"url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/04\/rollout-gem-github.jpg","type":"image\/jpeg"}],"author":"Leena Chaudhari","twitter_card":"summary_large_image","twitter_creator":"@BoTreeTech","twitter_site":"@BoTreeTech","twitter_misc":{"Written by":"Leena Chaudhari","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#article","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/"},"author":{"name":"Leena Chaudhari","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/d59428bd83da770d96e2c2764a5f74c2"},"headline":"Rollout Gem in Ruby on Rails: Deploy New Feature on Production in Controlled Way","datePublished":"2019-04-29T11:00:42+00:00","dateModified":"2021-09-15T11:50:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/"},"wordCount":614,"commentCount":15,"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/04\/rollout-gem-github.jpg","articleSection":["Ruby on Rails","Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/","url":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/","name":"Deploy New Feature on Production in Controlled Way - Rollout Gem","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#primaryimage"},"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/04\/rollout-gem-github.jpg","datePublished":"2019-04-29T11:00:42+00:00","dateModified":"2021-09-15T11:50:33+00:00","author":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/d59428bd83da770d96e2c2764a5f74c2"},"description":"Basic understanding of Rollout Gem. Learn more how to deploy a feature to a selected group of users using Rollout Gem","breadcrumb":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#primaryimage","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/04\/rollout-gem-github.jpg","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/04\/rollout-gem-github.jpg","width":1920,"height":1280,"caption":"Rollout Gem - Rubygem"},{"@type":"BreadcrumbList","@id":"https:\/\/www.botreetechnologies.com\/blog\/deploy-new-feature-on-production-in-controlled-way-rollout-gem\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.botreetechnologies.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Rollout Gem in Ruby on Rails: Deploy New Feature on Production in Controlled Way"}]},{"@type":"WebSite","@id":"https:\/\/www.botreetechnologies.com\/blog\/#website","url":"https:\/\/www.botreetechnologies.com\/blog\/","name":"BoTree Technologies","description":"Committed to inspire generation.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/d59428bd83da770d96e2c2764a5f74c2","name":"Leena Chaudhari","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/leena-chaudhari-150x150.png","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/leena-chaudhari-150x150.png","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/leena-chaudhari-150x150.png","caption":"Leena Chaudhari"},"description":"Leena is a Ruby On Rails Developer. She loves to make small applications that help in everyday life. She loves to do crafting and calligraphy in her spare moments."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/6419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=6419"}],"version-history":[{"count":2,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/6419\/revisions"}],"predecessor-version":[{"id":16321,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/6419\/revisions\/16321"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media\/13525"}],"wp:attachment":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=6419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=6419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=6419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}