-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
1 lines (1 loc) · 13.7 KB
/
index.html
1
<!DOCTYPE html><html><head><meta charset="UTF-8"><meta content="minimum-scale=1.0, width=device-width" name="viewport"><meta name="description" content=" Trap.apex is a versatile functional reactive library to handle Salesforce triggers."><title>Home - Trap.apex</title><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700|Roboto+Mono"><link rel="stylesheet" href="/trap-apex/vendor/galano/galano.css"><link rel="stylesheet" href="/trap-apex/vendor/icon-12/icon-12.css"><link rel="stylesheet" href="/trap-apex/vendor/senna/senna.css"><link rel="stylesheet" href="/trap-apex/vendor/icon-16/icon-16.css"><link rel="stylesheet" href="/trap-apex/vendor/codemirror/lib/codemirror.css"><link rel="stylesheet" href="/trap-apex/vendor/codemirror/theme/dracula.css"><script src="/trap-apex/js/bundles/shared.electric.js"></script><script src="/trap-apex/vendor/senna/senna.js"></script><script src="/trap-apex/vendor/codemirror/lib/codemirror.js"></script><script src="/trap-apex/vendor/codemirror/mode/css/css.js"></script><script src="/trap-apex/vendor/codemirror/mode/javascript/javascript.js"></script><script src="/trap-apex/vendor/codemirror/mode/xml/xml.js"></script><link rel="stylesheet" href="/trap-apex/styles/main.css"></head><body data-senna=""><div data-senna-surface="" id="wrapper"><div class="senna-loading-bar"></div><div id="pageComponent"><div class=""><main class="content"><nav class="topbar topbar-light"><div class="topbar-logo"><a class="topbar-logo-link" href="/trap-apex"><span class="topbar-logo-icon icon-16-hammer"></span><h3 class="topbar-logo-text">Trap.apex</h3></a></div><nav class="topbar-menu"><button class="topbar-toggle">Menu</button><ul class="topbar-list"><li class="topbar-item"><a class="topbar-link " href="/trap-apex/docs/" target="undefined"><span>Docs</span></a></li><li class="topbar-item"><a class="topbar-link " href="/trap-apex/tutorials/getting_started/step_1.html" target="undefined"><span>Tutorials</span></a></li></ul></nav></nav><header class="header"><div class="container"><h1 class="header-title">Trap.apex</h1><h2 class="header-subtitle"> Trap.apex is a versatile functional reactive library to handle Salesforce triggers.</h2><div class="btn-group"><a href="/trap-apex/tutorials/getting_started/step_1.html" class="btn btn-accent btn-sm">Get Started</a><a href="https://github.com/Click-to-Cloud/Trap.apex/" class="btn btn-success btn-sm">GitHub</a><a href="/" onclick="location.assign('/')" class="btn btn-default btn-sm">Not Interested</a></div></div></header><article class="about"><div class="container"><div class="row"><div class="col-md-12 col-md-offset-2"><h3 class="about-title">Why Trap.apex?</h3><p class="about-description">Trap.apex takes its name from 'trigger the trap', which aims to become the delicate device that takes care of Salesforce triggers. Besides adopting the trigger best practices from the community, Trap.apex distinguishes itself from other trigger frameworks in its stream-based trigger execution and rich features.</p></div></div></div></article><div class="features"><div class="container"><div class="row"><section class="feature col-md-4 col-md-offset-2"><h3 class="feature-title">FRP Style</h3><p class="feature-description">Trap.apex adopts the functional reactive style to process trigger logic.</p></section><section class="feature col-md-4"><h3 class="feature-title">Trigger Control</h3><p class="feature-description">Trap.apex offers fine control over trigger handlers.</p></section><section class="feature col-md-4"><h3 class="feature-title">Adaptive</h3><p class="feature-description">Trap.apex can be used with other trigger frameworks.</p></section></div></div></div><article class="about"><div class="container"><div class="row"><div class="col-md-12 col-md-offset-2"><h3 class="about-title">Triggers in Functional Style</h3><p class="about-description">Trap.apex is not a monster. It just puts your triggers into a functional style.</p></div></div></div></article><div class="highlights"><div class="container"><section class="highlight row"><div class="col-md-6 col-md-offset-2"><h4 class="highlight-title">Stream Style</h4><p class="highlight-description">Trap.apex uses stream-based API to handle trigger logic.</p></div><div class="col-md-5 col-md-offset-1"><img class="highlight-image" src="/trap-apex/images/highlight_1.png" alt="Stream Style" height="200"></div></section><section class="highlight row"><div class="col-md-6 col-md-push-9"><h4 class="highlight-title">Trigger Control</h4><p class="highlight-description">Trap.apex executes fine controls over trigger handlers.</p></div><div class="col-md-5 col-md-offset-2 col-md-pull-6"><img class="highlight-image" src="/trap-apex/images/highlight_2.png" alt="Trigger Control" height="200"></div></section><section class="highlight row"><div class="col-md-6 col-md-offset-2"><h4 class="highlight-title">Easy Unit Test</h4><p class="highlight-description">Trap.apex makes it easy to do unit test with triggers.</p></div><div class="col-md-5 col-md-offset-1"><img class="highlight-image" src="/trap-apex/images/highlight_3.png" alt="Easy Unit Test" height="200"></div></section></div></div><footer class="footer"><div class="container"><div class="row"><p class="footer-description col-md-6 col-md-offset-2">Copyright © <a href="http://www.clicktocloud.com/">Click to Cloud Pty Ltd</a></p></div></div></footer></main></div></div><script src="/trap-apex/js/bundles/pageIndex.js"></script><script>var data = '{"pageLocation":"index","site":{"title":"Trap.apex","githubRepo":"Click-to-Cloud/Trap.apex","googleAnalytics":"","index":{"title":"Home","description":" Trap.apex is a versatile functional reactive library to handle Salesforce triggers.","srcFilePath":"src/pages/index.soy","id":"pages","location":"/./","url":"/trap-apex/./","children":{"docs":{"title":"Docs","description":"Everything you need to know to get started.","srcFilePath":"src/pages/docs/index.soy","id":"docs","location":"/docs/","url":"/trap-apex/docs/","children":{"search":{"title":"Search","description":"Find what you\'re looking for in the documentation.","hidden":true,"srcFilePath":"src/pages/docs/search.soy","id":"search","location":"/docs/search.html","url":"/trap-apex/docs/search.html"},"Trigger_Controller":{"title":"Trigger Controller","description":"Trigger Controller","layout":"guide","icon":"cloud","weight":4,"srcFilePath":"src/pages/docs/Trigger_Controller/index.md","id":"Trigger_Controller","location":"/docs/Trigger_Controller/","url":"/trap-apex/docs/Trigger_Controller/"},"Trigger_Execution":{"children":{"bulk_object":{"title":"Bulk Objects","description":"Bulk Objects","layout":"guide","icon":"code-file","weight":2,"srcFilePath":"src/pages/docs/Trigger_Execution/bulk_object.md","id":"bulk_object","location":"/docs/Trigger_Execution/bulk_object.html","url":"/trap-apex/docs/Trigger_Execution/bulk_object.html"},"data_sharing":{"title":"Data Sharing","description":"Data Sharing","layout":"guide","icon":"code-file","weight":4,"srcFilePath":"src/pages/docs/Trigger_Execution/data_sharing.md","id":"data_sharing","location":"/docs/Trigger_Execution/data_sharing.html","url":"/trap-apex/docs/Trigger_Execution/data_sharing.html"},"function":{"title":"Functions","description":"Functions","layout":"guide","icon":"code-file","weight":3,"srcFilePath":"src/pages/docs/Trigger_Execution/function.md","id":"function","location":"/docs/Trigger_Execution/function.html","url":"/trap-apex/docs/Trigger_Execution/function.html"}},"title":"Trigger Execution","description":"Trigger Execution","layout":"guide","icon":"code-file","weight":2,"srcFilePath":"src/pages/docs/Trigger_Execution/index.md","id":"Trigger_Execution","location":"/docs/Trigger_Execution/","url":"/trap-apex/docs/Trigger_Execution/","childIds":["bulk_object","function","data_sharing"]},"Trigger_Handler":{"title":"Trigger Handlers","description":"Trigger Handlers","layout":"guide","icon":"flash","weight":1,"srcFilePath":"src/pages/docs/Trigger_Handler/index.md","id":"Trigger_Handler","location":"/docs/Trigger_Handler/","url":"/trap-apex/docs/Trigger_Handler/"}},"childIds":["Trigger_Handler","Trigger_Execution","Trigger_Controller","search"]},"tutorials":{"title":"Tutorials","description":"The tutorials","url":"/trap-apex/tutorials/getting_started/step_1.html","layout":false,"srcFilePath":"src/pages/tutorials/index.soy","id":"tutorials","location":"/tutorials/","customURL":true,"children":{"getting_started":{"title":"Getting Started","description":"The Getting Started Tutorial","tutorialTitle":"Getting started with Trap.apex","url":"/trap-apex/tutorials/getting_started/step_1.html","layout":false,"srcFilePath":"src/pages/tutorials/getting_started/index.soy","id":"getting_started","location":"/tutorials/getting_started/","customURL":true,"children":{"step_1":{"title":"Installation","description":"Include Apex files","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":1,"srcFilePath":"src/pages/tutorials/getting_started/step_1.md","id":"step_1","location":"/tutorials/getting_started/step_1.html","url":"/trap-apex/tutorials/getting_started/step_1.html"},"step_10":{"title":"Normal Trigger Event Handler","description":"Normal Trigger Event Handler","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":10,"srcFilePath":"src/pages/tutorials/getting_started/step_10.md","id":"step_10","location":"/tutorials/getting_started/step_10.html","url":"/trap-apex/tutorials/getting_started/step_10.html"},"step_11":{"title":"Trigger Context","description":"Trigger Context","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":11,"srcFilePath":"src/pages/tutorials/getting_started/step_11.md","id":"step_11","location":"/tutorials/getting_started/step_11.html","url":"/trap-apex/tutorials/getting_started/step_11.html"},"step_12":{"title":"Unit Test","description":"Unit Test","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":12,"srcFilePath":"src/pages/tutorials/getting_started/step_12.md","id":"step_12","location":"/tutorials/getting_started/step_12.html","url":"/trap-apex/tutorials/getting_started/step_12.html"},"step_13":{"title":"Take Only Trigger Execution","description":"Take Only Trigger Execution","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":13,"srcFilePath":"src/pages/tutorials/getting_started/step_13.md","id":"step_13","location":"/tutorials/getting_started/step_13.html","url":"/trap-apex/tutorials/getting_started/step_13.html"},"step_2":{"title":"Preliminary Knowledge","description":"Preliminary Knowledge","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":2,"srcFilePath":"src/pages/tutorials/getting_started/step_2.md","id":"step_2","location":"/tutorials/getting_started/step_2.html","url":"/trap-apex/tutorials/getting_started/step_2.html"},"step_3":{"title":"Create Triggers","description":"Create Triggers","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":3,"srcFilePath":"src/pages/tutorials/getting_started/step_3.md","id":"step_3","location":"/tutorials/getting_started/step_3.html","url":"/trap-apex/tutorials/getting_started/step_3.html"},"step_4":{"title":"Trigger Handler","description":"Trigger Handler","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":4,"srcFilePath":"src/pages/tutorials/getting_started/step_4.md","id":"step_4","location":"/tutorials/getting_started/step_4.html","url":"/trap-apex/tutorials/getting_started/step_4.html"},"step_5":{"title":"Bulk Object","description":"Bulk Object","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":5,"srcFilePath":"src/pages/tutorials/getting_started/step_5.md","id":"step_5","location":"/tutorials/getting_started/step_5.html","url":"/trap-apex/tutorials/getting_started/step_5.html"},"step_6":{"title":"Find Specific Objects","description":"Find Specific Objects","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":6,"srcFilePath":"src/pages/tutorials/getting_started/step_6.md","id":"step_6","location":"/tutorials/getting_started/step_6.html","url":"/trap-apex/tutorials/getting_started/step_6.html"},"step_7":{"title":"Data Sharing","description":"Data Sharing","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":7,"srcFilePath":"src/pages/tutorials/getting_started/step_7.md","id":"step_7","location":"/tutorials/getting_started/step_7.html","url":"/trap-apex/tutorials/getting_started/step_7.html"},"step_8":{"title":"Catch All Events","description":"Catch All Events","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":8,"srcFilePath":"src/pages/tutorials/getting_started/step_8.md","id":"step_8","location":"/tutorials/getting_started/step_8.html","url":"/trap-apex/tutorials/getting_started/step_8.html"},"step_9":{"title":"Trigger Controller","description":"Trigger Controller","buttonTitle":"Done","parentId":"getting_started","layout":"tutorial","time":90,"weight":9,"srcFilePath":"src/pages/tutorials/getting_started/step_9.md","id":"step_9","location":"/tutorials/getting_started/step_9.html","url":"/trap-apex/tutorials/getting_started/step_9.html"}},"childIds":["step_1","step_2","step_3","step_4","step_5","step_6","step_7","step_8","step_9","step_10","step_11","step_12","step_13"]}},"childIds":["getting_started"]}},"childIds":["docs","tutorials"],"active":true},"basePath":"/trap-apex","topbar":[{"href":"/trap-apex/docs/","label":"Docs"},{"href":"/trap-apex/tutorials/getting_started/step_1.html","label":"Tutorials"}]}}'; if (typeof electric !== 'undefined') {electric.init(data);}else {document.addEventListener('DOMContentLoaded', function() {electric.init(data);});}</script></div><script data-senna-track="permanent" src="/trap-apex/js/electric/electric.js"></script></body></html>