makandra/capybara-lockstep
Flaky end-to-end tests often fail because Capybara outpaces client-side JavaScript and AJAX; synchronizing commands with browser activity makes full-stack integration suites more stable.
Handling Keyboard Shortcuts in JavaScript
Despite the many JavaScript libraries that are available today, I cannot find one that makes it easy to add keyboard shortcuts(or accelerators) to your javascript app. This is because keyboard shortcuts where only used in JavaScript games - no serious web application used keyboard shortcuts to navigate around its interface. But Google apps like Google Reader and Gmail changed that. So, I have created a function to make adding shortcuts to your application much easier.
JavaScript: Don't throw synchronous exceptions from functions that return a Promise
Promise-returning functions are hard to use when they sometimes throw synchronously; returning a rejected promise keeps failure handling consistent.
Jasmine: Reset the location when testing code that uses pushState / replaceState
Browser navigation during pushState or replaceState tests can leave Jasmine on the wrong URL and break test reruns. Saving and restoring the location keeps the suite on the spec page.
Ruby on Rails 4 and Batman.js
Batman.js is a lightweight JavaScript MVC framework with a Rails-friendly style for building small client-side apps and blog tutorials.
Mocking time in Jasmine specs
Control time in Jasmine tests with the built-in jasmine.clock() to fake timers and new Date() without adding SinonJS.
Defining "partials" in pure HTML without additional rendering helpers
Define reusable page fragments directly in HTML without server or client rendering helpers; a tiny JavaScript snippet enables custom elements and partial-like reuse.
Caution when using the || operator to set defaults
|| can overwrite valid falsy values like false, 0, and '' when setting defaults; use nil or null checks, fetch, or nullish coalescing instead.
hyphenator
Javascript that implements client-side hyphenation of HTML-Documents.
OscarGodson/jKey - GitHub
jQuery plugin to register callback functions to keyboard shortkuts. Keyboard events in vanilla Javascripts are super-painful to work with, so hopefully this library can help.
kangax's protolicious - GitHub
Added utility methods for the Prototype Javascript framework.
Prototip 2 - Create beautiful tooltips with ease
Prototip allows you to easily create both simple and complex tooltips using the Prototype javascript framework.
Please note: "Permission to use Prototip on your domain is required and can be obtained by paying a small fee."
flot - Google Code
Flot is a pure Javascript plotting library for jQuery. It produces graphical plots of arbitrary datasets on-the-fly client-side.
mynyml's holygrail at master - GitHub
The Holy Grail of testing for front-end development; execute browser-less, console-based, javascript + DOM code right from within your Rails test suite.
Scroll a textarea to a given line with jQuery
Scrolling a textarea to a specific line depends on pixel line height and can drift when wrapped lines change the visual line count.
How to make your application assets cachable in Rails
Rails asset URLs need fingerprints or timestamps to let browsers cache images, stylesheets, and scripts long-term without serving stale files after updates.
Webpack: Automatically generating an icon font from .svg files
Vector icons are easy to use but tedious to build; webpack plugins can automate SVG-to-icon-font generation and keep icons aligned, scalable, and JavaScript-free.
Async/Await Will Make Your Code Simpler
Async JavaScript can become long and deeply nested when promises are handled awkwardly; async/await offers a cleaner syntax for readable asynchronous code.
Tearing Down Capybara Tests of AJAX Pages
Pending AJAX requests can die when a Capybara test ends or switches scenarios, causing flaky JavaScript specs. Waiting for the page to load helps avoid the failure.
PhantomJS: Headless WebKit with JavaScript API
PhantomJS is a minimalistic headless WebKit.
It has fast and native support for various web standards:
DOM handling, CSS selector, JSON, Canvas, and SVG.
PhantomJS can be fully scripted using JavaScript. It is an optimal solution for headless testing of web-based applications, site scraping, pages capture, SVG renderer, PDF converter and many other usages.
hint.css - A tooltip library in CSS
CSS-only tooltip library for projects with many tooltips, avoiding JavaScript overhead and working in IE9+.
BubbletreeJS: A Javascript data visualization library
Interactive visualization of hierarchical data in bubble trees, built on jQuery and RaphaelJS, for exploring spending and other nested datasets.
Tabs in Textarea Plugin for jQuery
Use Tab and Shift+Tab in regular textareas to indent or outdent code for in-browser editing of HTML, CSS, JavaScript, or server-side languages.