{"id":8696,"date":"2016-08-23T11:23:51","date_gmt":"2016-08-23T11:23:51","guid":{"rendered":"https:\/\/dev.railscarma.com\/scheduling-recurring-events-ice-cube-gem\/"},"modified":"2021-06-06T11:48:22","modified_gmt":"2021-06-06T11:48:22","slug":"planification-devenements-recurrents-joyau-de-glacon","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/planification-devenements-recurrents-joyau-de-glacon\/","title":{"rendered":"Planification d&#039;\u00e9v\u00e9nements r\u00e9currents avec Ice Cube Gem"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"8696\" class=\"elementor elementor-8696\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3b09b4b1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3b09b4b1\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7b1546b9\" data-id=\"7b1546b9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-71554156 elementor-widget elementor-widget-text-editor\" data-id=\"71554156\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tIce_cube est une biblioth\u00e8que Ruby permettant de g\u00e9rer efficacement les \u00e9v\u00e9nements r\u00e9p\u00e9t\u00e9s (horaires). La force r\u00e9side dans la capacit\u00e9 d&#039;indiquer plusieurs r\u00e8gles et de permettre \u00e0 ice_cube de d\u00e9terminer rapidement si le calendrier tombe \u00e0 une date sp\u00e9cifique (.occurs_on ?), ou \u00e0 quelle heure il se produit (.occurrences, .first, .all_occurrences). Comment obtenir un gla\u00e7on Pour l&#039;installation, utilisez la syntaxe ci-dessous gem install si vous souhaitez obtenir le code\n<blockquote>clone de gemme git:\/\/github.com\/seejohnrun\/ice_cube<\/blockquote>\nPour cr\u00e9er un programme de gla\u00e7ons\n<blockquote>planning = IceCube::Schedule.new si nous voulons sp\u00e9cifier la date de d\u00e9but et la date de fin, nous avons la possibilit\u00e9 de sp\u00e9cifier dans le calendrier mentionn\u00e9 ci-dessus. planning = IceCube::Schedule.new(start = Time.now, :end_time =&gt; start + 600)<\/blockquote>\n<strong>Horaires quotidiens<\/strong>\n\nApr\u00e8s avoir cr\u00e9\u00e9 le calendrier, nous avons la possibilit\u00e9 d&#039;ajouter une r\u00e8gle de r\u00e9currence pour le calendrier mentionn\u00e9 ci-dessus, en consid\u00e9rant \u00ab\u00a0planifier tous les jours\u00a0\u00bb \u00e0 l&#039;heure mentionn\u00e9e ci-dessus.\n<blockquote>planning.add_recurrence_rule IceCube :: Rule.daily<\/blockquote>\nconsid\u00e9rons le m\u00eame horaire en r\u00e9p\u00e9tant le nombre de jours \u00ab\u00a0n\u00a0\u00bb\n<blockquote>planning.add_recurrence_rule IceCube::Rule.daily(repeat_every_n_days)<\/blockquote>\n\u00e0 la place de repeat_every_n_days, vous avez la possibilit\u00e9 de sp\u00e9cifier le nombre de jours\n\n<strong>Horaires hebdomadaires<\/strong>\n\nR\u00e8gle r\u00e9currente pour g\u00e9n\u00e9rer un planning hebdomadaire\n<blockquote>planning.add_recurrence_rule IceCube :: Rule.weekly<\/blockquote>\nr\u00e8gle r\u00e9currente pour ajouter un nombre r\u00e9p\u00e9t\u00e9 de n semaines avec le m\u00eame horaire\n<blockquote>planning.add_recurrence_rule IceCube::Rule.weekly(repeat_every_n_weeks)<\/blockquote>\nPrenons un exemple : r\u00e9p\u00e9tez le programme uniquement les jours de la semaine (du lundi au vendredi).\n<blockquote>planning.add_recurrence_rule IceCube::Rule.weekly.day(1, 2, 3, 4, 5)<\/blockquote>\nUne semaine sur deux le lundi et mardi\n<blockquote>planning.add_recurrence_rule IceCube::Rule.weekly(2).day(:monday, :tuesday) ou vous pouvez mentionner comme<\/blockquote>\n<blockquote>planning.add_recurrence_rule IceCube::Rule.weekly(2).day(:lundi, :mardi)<\/blockquote>\n<strong>Horaires mensuels<\/strong>\n\nr\u00e9p\u00e9ter le m\u00eame programme chaque mois\n<blockquote>planning.add_recurrence_rule IceCube :: Rule.montly<\/blockquote>\nHoraires mensuels (par jour du mois) chaque mois le premier et le dernier jour du mois\n<blockquote>planning.add_recurrence_rule IceCube::Rule.monthly.day_of_month(1, -1)<\/blockquote>\ntous les deux mois, le 15 du mois\n<blockquote>planning.add_recurrence_rule IceCube::Rule.monthly(2).day_of_month(15)<\/blockquote>\n<strong>Mensuel (par jour de la Ni\u00e8me semaine)<\/strong>\n\n# tous les mois le premier et le dernier mardi du mois\n<blockquote>planning.add_recurrence_rule IceCube::Rule.monthly.day_of_week(:tuesday =&gt; [1, -1])<\/blockquote>\n# tous les deux mois le premier lundi et le mardi dernier\n<blockquote>planning.add_recurrence_rule IceCube::Rule.monthly(2).day_of_week(:monday =&gt; [1],:tuesday =&gt; [-1])<\/blockquote>\n<strong>Annuel (par jour de l&#039;ann\u00e9e)<\/strong>\n\n# chaque ann\u00e9e les 100\u00e8mes jours du d\u00e9but et de la fin de l&#039;ann\u00e9e\n<blockquote>planning.add_recurrence_rule IceCube::Rule.yearly.day_of_year(100, -100)<\/blockquote>\n# tous les quatre ans \u00e0 la veille du nouvel an\n<blockquote>planning.add_recurrence_rule IceCube::Rule.yearly(4).day_of_year(-1)<\/blockquote>\n<strong>Annuel (par mois de l&#039;ann\u00e9e)<\/strong>\n\n# chaque ann\u00e9e le m\u00eame jour que start_time mais en janvier et f\u00e9vrier\n<blockquote>planning.add_recurrence_rule IceCube::Rule.yearly.month_of_year(:january, :februrary)<\/blockquote>\n# tous les trois ans en mars\n<blockquote>planning.add_recurrence_rule IceCube::Rule.yearly(3).month_of_year(:mars)<\/blockquote>\n# pour plus de commodit\u00e9 programmatique (comme ci-dessus)\n<blockquote>planning.add_recurrence_rule IceCube::Rule.yearly(3).month_of_year(3)<\/blockquote>\n<strong>Horaire (par heure de la journ\u00e9e)<\/strong>\n\n# toutes les heures \u00e0 la m\u00eame minute et seconde que la date de d\u00e9but\n<blockquote>planning.add_recurrence_rule IceCube :: Rule.hourly<\/blockquote>\n# toutes les deux heures, le lundi\n<blockquote>planning.add_recurrence_rule IceCube::Rule.hourly(2).day(:monday) Minutement (toutes les N minutes)<\/blockquote>\n# toutes les 10 minutes\n<blockquote>planning.add_recurrence_rule IceCube::Rule.minutely(10)<\/blockquote>\n# toutes les heures et demie, le dernier mardi du mois\n<blockquote>planning.add_recurrence_rule IceCube::Rule.minutely(90).day_of_week(:tuesday =&gt; [-1])<\/blockquote>\n<strong>Deuxi\u00e8mement (toutes les N secondes)<\/strong>\n\n# chaque seconde\n<blockquote>planning.add_recurrence_rule IceCube :: Rule.secondly<\/blockquote>\n# toutes les 15 secondes entre 12h00 et 12h59\n<blockquote>planning.add_recurrence_rule IceCube::Rule.secondly(15).hour_of_day(12)<\/blockquote>\nAvec ice_cube, vous pouvez \u00e9galement sp\u00e9cifier des heures d&#039;exception. Exemple R\u00e9p\u00e9ter Tous les jours sauf demain\n<blockquote>planning = IceCube::Schedule.new(now = Time.now) planning.add_recurrence_rule(IceCube::Rule.daily) planning.add_exception_time(now + 1.day) liste les occurrences jusqu&#039;\u00e0 la fin_heure occurrences = planning.occurrences(end_time)<\/blockquote>\n# ou la (n) premi\u00e8re (n) occurrence\n<blockquote>planning.first(n)<\/blockquote>\n# ou les (n) derni\u00e8res occurrences (si le planning se termine)\n<blockquote>planning.last(n)<\/blockquote>\n<strong>Fuseaux horaires et ActiveSupport par rapport aux classes horaires Ruby standard<\/strong>\n\nice_cube fonctionne tr\u00e8s bien sans ActiveSupport mais ne prend en charge que le seul fuseau horaire \u00ab local \u00bb de l&#039;environnement (ENV[&#039;TZ&#039;]) ou UTC. Pour prendre en charge correctement plusieurs fuseaux horaires (en particulier pour l&#039;heure d&#039;\u00e9t\u00e9), vous devez avoir besoin de \u00ab\u00a0active_support\/time\u00a0\u00bb. Les occurrences d&#039;un planning seront renvoy\u00e9es dans la m\u00eame classe et le m\u00eame fuseau horaire que l&#039;heure de d\u00e9but du planning. Les heures de d\u00e9but de planification sont prises en charge comme\u00a0:\n<ul>\n \t<li>Time.local (par d\u00e9faut lorsqu&#039;aucune heure n&#039;est sp\u00e9cifi\u00e9e)<\/li>\n \t<li>Heure.utc<\/li>\n \t<li>ActiveSupport :: TimeWithZone (avec Time.zone.now, Time.zone.local, time.in_time_zone(tz))<\/li>\n \t<li>DateTime (obsol\u00e8te) et Date sont convertis en Time.local<\/li>\n<\/ul>\n<strong>Persistance<\/strong>\n\nice_cube impl\u00e9mente son propre .to_yaml bas\u00e9 sur le hachage, afin que vous puissiez rapidement (et en toute s\u00e9curit\u00e9) s\u00e9rialiser les objets de planification dans et hors de votre magasin de donn\u00e9es. Il prend \u00e9galement en charge la s\u00e9rialisation vers\/depuis ICAL.\n<blockquote>yaml = planning.to_yaml IceCube :: Schedule.from_yaml (yaml) hash = planning.to_hash IceCube :: Schedule.from_hash (hash) ical = planning.to_ical IceCube :: Schedule.from_ical (ical)<\/blockquote>\n<strong>Utiliser vos mots<\/strong>\n\nice_cube peut fournir des repr\u00e9sentations graphiques ou sous forme de cha\u00eene de r\u00e8gles individuelles ou de l&#039;ensemble du programme.\n<blockquote>r\u00e8gle = IceCube::Rule.daily(2).day_of_week(:tuesday =&gt; [1, -1], :mercredi =&gt; [2])<\/blockquote>\n<blockquote>r\u00e8gle.to_ical # &#039;FREQ=DAILY;INTERVAL=2;BYDAY=1TU,-1TU,2WE&#039;<\/blockquote>\n<blockquote>Rule.to_s # &#039;Tous les 2 jours le dernier et le 1er mardi et le 2\u00e8me mercredi&#039;<\/blockquote>\nLire aussi : <a href=\"\/fr\/blog\/articles-techniques\/un-regard-detaille-rails-5-caracteristiques-changements\/\" target=\"_blank\" rel=\"noopener noreferrer\">Un aper\u00e7u d\u00e9taill\u00e9 des fonctionnalit\u00e9s et des modifications de Rails 5<\/a>\n: <a href=\"\/fr\/blog\/gestion\/ruby-on-rails-vs-cakephp-la-bataille-continue\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby on Rails vs CakePHP - La bataille continue<\/a>\n: <a href=\"\/fr\/blog\/articles-techniques\/scraping-de-sites-web-a-laide-de-mechanize-gem\/\" target=\"_blank\" rel=\"noopener noreferrer\">Scraping de sites Web \u00e0 l&#039;aide de Mechanize Gem<\/a>\n\n<a href=\"https:\/\/www.railscarma.com\/fr\/\">RailsCarma<\/a> a fourni <a href=\"https:\/\/www.railscarma.com\/fr\/ruby-on-rails-consulting\/\">services de d\u00e9veloppement et de conseil Ruby on Rails<\/a> des 8 derni\u00e8res ann\u00e9es Nos d\u00e9veloppeurs ma\u00eetrisent parfaitement toutes sortes de travaux de d\u00e9veloppement Ruby on Rails et la gestion de tout type de projet. <a href=\"\/fr\/contactez-nous\/\">Contactez-nous<\/a> pour en savoir plus sur nos comp\u00e9tences en d\u00e9veloppement et les projets que nous pouvons g\u00e9rer.\n<div class=\"author-info\"><strong>Katneni Naga Sai Tejaswi<\/strong><\/div>\n<div class=\"author-info\"><strong>D\u00e9veloppeur de logiciels senior<\/strong><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2b5dd506 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2b5dd506\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7d3b747e\" data-id=\"7d3b747e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2ef5179c elementor-widget elementor-widget-heading\" data-id=\"2ef5179c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Abonnez-vous pour les derni\u00e8res mises \u00e0 jour<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-35ac9b39 elementor-widget elementor-widget-shortcode\" data-id=\"35ac9b39\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"chargeur\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"d7f7626ab9\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"Adresse e-mail\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"Nom\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"S&#039;abonner\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">Articles Similaires<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"joyau kaminari\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n        Gemme de Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"pourquoi embaucher des d\u00e9veloppeurs Ruby on Rails en 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n        Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/importance-de-larchitecture-logicielle-dans-le-developpement-de-logiciels-dentreprise\/?related_post_from=36250\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/importance-de-larchitecture-logicielle-dans-le-developpement-de-logiciels-dentreprise\/?related_post_from=36250\">\r\n        Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE\u00a0: les meilleurs IDE pour le d\u00e9veloppement Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/ruby-ide-les-meilleures-idees-pour-le-developpement-de-ruby-on-rails\/?related_post_from=36125\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"MEILLEURES ID\u00c9ES POUR LE D\u00c9VELOPPEMENT DE RUBY ON RAILS\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby IDE\u00a0: les meilleurs IDE pour le d\u00e9veloppement Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/ruby-ide-les-meilleures-idees-pour-le-developpement-de-ruby-on-rails\/?related_post_from=36125\">\r\n        Ruby IDE\u00a0: les meilleurs IDE pour le d\u00e9veloppement Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>Ice_cube is a ruby library for effectively taking care of repeated events (schedules). The force lies in the ability to indicate multiple rules, and have ice_cube rapidly make sense of whether the schedule falls on a specific date (.occurs_on?), or what times it happens at (.occurrences, .first, .all_occurrences). How to get ice cube For install &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Guide de correspondance des expressions rationnelles en Ruby (2026) avec exemples<\/span> Lire la suite \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31874,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[],"class_list":["post-8696","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Scheduling Recurring Events With Ice Cube Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"Ice_cube is a ruby library for effectively taking care of repeated events (schedules). The force lies in the ability to indicate multiple rules, and have\" \/>\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.railscarma.com\/fr\/blog\/articles-techniques\/planification-devenements-recurrents-joyau-de-glacon\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Scheduling Recurring Events With Ice Cube Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"Ice_cube is a ruby library for effectively taking care of repeated events (schedules). The force lies in the ability to indicate multiple rules, and have\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/planification-devenements-recurrents-joyau-de-glacon\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-08-23T11:23:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-06T11:48:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/08\/Ice-Cube-Gem.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Scheduling Recurring Events With Ice Cube Gem\",\"datePublished\":\"2016-08-23T11:23:51+00:00\",\"dateModified\":\"2021-06-06T11:48:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/\"},\"wordCount\":991,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/08\/Ice-Cube-Gem.jpg\",\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/\",\"url\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/\",\"name\":\"Scheduling Recurring Events With Ice Cube Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/08\/Ice-Cube-Gem.jpg\",\"datePublished\":\"2016-08-23T11:23:51+00:00\",\"dateModified\":\"2021-06-06T11:48:22+00:00\",\"description\":\"Ice_cube is a ruby library for effectively taking care of repeated events (schedules). The force lies in the ability to indicate multiple rules, and have\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/08\/Ice-Cube-Gem.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/08\/Ice-Cube-Gem.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Scheduling Recurring Events With Ice Cube Gem\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Planification d&#039;\u00e9v\u00e9nements r\u00e9currents avec Ice Cube Gem - RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"Ice_cube est une biblioth\u00e8que Ruby permettant de g\u00e9rer efficacement les \u00e9v\u00e9nements r\u00e9p\u00e9t\u00e9s (horaires). La force r\u00e9side dans la capacit\u00e9 \u00e0 indiquer plusieurs r\u00e8gles et \u00e0 avoir","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.railscarma.com\/fr\/blog\/articles-techniques\/planification-devenements-recurrents-joyau-de-glacon\/","og_locale":"fr_FR","og_type":"article","og_title":"Scheduling Recurring Events With Ice Cube Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"Ice_cube is a ruby library for effectively taking care of repeated events (schedules). The force lies in the ability to indicate multiple rules, and have","og_url":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/planification-devenements-recurrents-joyau-de-glacon\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2016-08-23T11:23:51+00:00","article_modified_time":"2021-06-06T11:48:22+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/08\/Ice-Cube-Gem.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Scheduling Recurring Events With Ice Cube Gem","datePublished":"2016-08-23T11:23:51+00:00","dateModified":"2021-06-06T11:48:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/"},"wordCount":991,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/08\/Ice-Cube-Gem.jpg","articleSection":["Technical Articles"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/","url":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/","name":"Planification d&#039;\u00e9v\u00e9nements r\u00e9currents avec Ice Cube Gem - RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/08\/Ice-Cube-Gem.jpg","datePublished":"2016-08-23T11:23:51+00:00","dateModified":"2021-06-06T11:48:22+00:00","description":"Ice_cube est une biblioth\u00e8que Ruby permettant de g\u00e9rer efficacement les \u00e9v\u00e9nements r\u00e9p\u00e9t\u00e9s (horaires). La force r\u00e9side dans la capacit\u00e9 \u00e0 indiquer plusieurs r\u00e8gles et \u00e0 avoir","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/08\/Ice-Cube-Gem.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/08\/Ice-Cube-Gem.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/programacion-de-eventos-recurrentes-joya-del-cubo-de-hielo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Scheduling Recurring Events With Ice Cube Gem"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"RailsCarma est une soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails \u00e0 Bangalore. Nous sommes sp\u00e9cialis\u00e9s dans le d\u00e9veloppement offshore Ruby on Rails, bas\u00e9s aux \u00c9tats-Unis et en Inde. Embauchez des d\u00e9veloppeurs Ruby on Rails exp\u00e9riment\u00e9s pour une exp\u00e9rience Web ultime.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"administrateur","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/8696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/comments?post=8696"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/8696\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media\/31874"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media?parent=8696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/categories?post=8696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/tags?post=8696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}