(function(apiKey) { // stub mParticle and major mParticle classes EventType, eCommerce, and Identity to exist before full // mParticle object is initialized window.mParticle = window.mParticle || {}; window.mParticle.EventType = { Unknown: 0, Navigation: 1, Location: 2, Search: 3, Transaction: 4, UserContent: 5, UserPreference: 6, Social: 7, Other: 8, }; window.mParticle.eCommerce = { Cart: {} }; window.mParticle.Identity = {}; window.mParticle.config = window.mParticle.config || {}; window.mParticle.config.rq = []; window.mParticle.config.snippetVersion = 2.3; window.mParticle.ready = function(f) { window.mParticle.config.rq.push(f); }; // methods to be stubbed from the main mParticle object, mParticle.eCommerce, and mParticle.Identity // methods that return objects are not stubbed var mainMethods = [ 'endSession', 'logError', 'logBaseEvent', 'logEvent', 'logForm', 'logLink', 'logPageView', 'setSessionAttribute', 'setAppName', 'setAppVersion', 'setOptOut', 'setPosition', 'startNewSession', 'startTrackingLocation', 'stopTrackingLocation', ]; var ecommerceMethods = ['setCurrencyCode', 'logCheckout']; var identityMethods = ['identify', 'login', 'logout', 'modify']; // iterates through methods above to create stubs mainMethods.forEach(function(method) { window.mParticle[method] = preloadMethod(method); }); ecommerceMethods.forEach(function(method) { window.mParticle.eCommerce[method] = preloadMethod(method, 'eCommerce'); }); identityMethods.forEach(function(method) { window.mParticle.Identity[method] = preloadMethod(method, 'Identity'); }); // stubbing function // pushes an array of 2 arguments into readyQueue: 1. the method, and 2. the arguments passed to the method // if the method is on the eCommerce or identity object, then the 1st argument is base conatenated with "." and the method name // ie: Identity.login, eCommerce.setCurrencyCode // in main.js, the function "processPreloadedItem" will parse and run stubbed methods stored in the readyQueue (config.rq) function preloadMethod(method, base) { return function() { if (base) { method = base + '.' + method; } var args = Array.prototype.slice.call(arguments); args.unshift(method); window.mParticle.config.rq.push(args); }; } // set data planning query parameters var dpId, dpV, config = window.mParticle.config, env = config.isDevelopmentMode ? 1 : 0, dbUrl = '?env=' + env, dataPlan = window.mParticle.config.dataPlan; if (dataPlan) { dpId = dataPlan.planId; dpV = dataPlan.planVersion; if (dpId) { if (dpV && (dpV < 1 || dpV > 1000)) { dpV = null; } dbUrl += '&plan_id=' + dpId + (dpV ? '&plan_version=' + dpV : ''); } } // set version query parameters var versions = window.mParticle.config.versions; var versionQueryArray = []; if (versions) { Object.keys(versions).forEach(function(name) { versionQueryArray.push(name + '=' + versions[name]); }); } // add mParticle script dynamically to the page, insert before the first script tag var mp = document.createElement('script'); mp.type = 'text/javascript'; mp.async = true; mp.src = ('https:' == document.location.protocol ? 'https://jssdkcdns' : 'http://jssdkcdn') + '.mparticle.com/js/v2/' + apiKey + '/mparticle.js' + dbUrl + '&' + versionQueryArray.join('&'); var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(mp, s); })('us2-cc6b8a1b1bc15c4cb5f431d79ba774cb');
top of page

Mid-Term Rentals

Embrace the elegance of Ryndle Property's Mid-Term Rentals, where sophisticated living and exceptional service converge to create the ultimate home away from home experience. Perfectly suited for discerning individuals in search of a luxurious retreat during extended stays or transitional periods, our curated selection of high-end properties ensures you never have to compromise on comfort or style. Allow our dedicated team to anticipate your needs and provide personalized support, as you immerse yourself in the unparalleled quality and charm of a Ryndle Property Mid-Term Rental.

Luxurious Bathroom
bottom of page