A simple zero-dependency O(1) and asynchronous event dispatcher.
Polyfills the ResizeObserver API and supports box size options from the latest spec
Monitor if a component is inside the viewport, using IntersectionObserver API
Resize observer for React
React MutateObserver Component
A React hook that allows you to use a ResizeObserver to measure an element's size.
Reactive primitives for observing resizing of HTML elements.
Resize observer for React
A polyfill for the Resize Observer API
A React hook for the IntersectionObserver API that uses a polyfill when the native API is not available
A React hook that fires a callback whenever ResizeObserver detects a change to its size
Detect if web fonts are available
🏯 PositionObserver is a JavaScript tool that provides a way to asynchronously observe changes in the position of a target element within its viewport.
Tracks the intersection of a DOM element and its containing element or the viewport.
An implementation and polyfill of the Resize Observer draft.
Observe CSS property changes on any elements
React hook to use IntersectionObserver declaratively.
A React Hooks package for mutation-observer
@vue/reactivity
A simple little class that helps making Observable testing a breeze
TypeScript definitions for resize-observer-browser
React bindings for MobX. Create fully reactive components.
An Implementation of ES Observables
Symbol.observable ponyfill
<p>Sass or the much better approach of scss is really helpful and a big silver bullet for my css structuring in ruby projects.</p> \ <p>Standard sass command works for whole directories or single files only. In general it gets the jobs we want done, but in practical usage i think the sass command tool is a little bit unconvinient. A common scenario for me is, \ that you have whole bunch of sass files, which you want to compile to a single compressed output file. But if you have splitted your sass files in component based modules and you want to watch the complete folder you have to care for dependency handling in each file, because each file will be compiled for its own.</p> \ <pre># compiling a complete folder with scss ~ $ sass css/scss:css/compiled</pre> \ <p>So converting the whole folder is not what i want, because i don\'t want to import for example my color.sass config file in each module again. Compiling a single file seems to be the better solution, and it works in general, as expected, but the devil is in the detail. </p> <pre># compiling a single file where the other files are imported. ~ $ sass css/scss/main.scss:css/compiled/main.css</pre> \ <p>If we change a file with impact to our main.sass file, the --watch handle will not get it, because it observes only the timestamp of the given main.sass.</p> <p>Here is it, where mindful_sass tries to help out. You use it according to the single file variant of sass, but it tries to observe the whole folder the given sass file is placed. If a timestamp of file in the sass folder or its children changes it will compile the specified main.sass again.</p> \ <p>This gem is not aimed to replace anything in the sass universe. It is only a wrapper to avoid the described unconvinience, and i hope that it gets useless as fast as possible, because the sass development gets this feature done for themselves.</p> \ <p>Thanks anyway to the sass developer team.</p>
== FEATURES: * Input your data as an array of hashes * Input a report layout, built using a Ruby DSL * Outputs ASCII pivot tables suitable for fast reports * Pretty fast: takes less than a second to process 1,000 records of data by a report with 100 rows and 10 columns. == SYNOPSIS: require 'rubygems' require 'crosstab' data = [{:gender => "M", :age => 1}, {:gender => "F", :age => 2}, {:gender => "M", :age => 3}] my_crosstab = crosstab data do table do title "Q.A Age:" group "18 - 54" do row "18 - 34", :age => 1 row "35 - 54", :age => 2 end row "55 or older", :age => 3 end banner do column "Total" group "Gender" do column "Male", :gender => "M" column "Female", :gender => "F" end end end puts my_crosstab.to_s # => ... Table 1 Q.A Age: Gender ---------------- Total Male Female (A) (B) (C) ------- ------- ------- (BASE) 3 2 1 18 - 54 2 1 1 ----------------------------- 67% 50% 100% 18 - 34 1 1 -- 33% 50% 35 - 54 1 -- 1 33% 100% 55 or older 1 1 -- 33% 50% == JUST THE BEGINNING: * I hope to add in later releases: * New export formats: html, pdf, csv, excel. * More stats than just frequency and percentage: mean, median, std. deviation, std. error, and significance testing * Optional row and table suppression for low frequencies * Optional table rows populating from the data * Optional table ranking -- automatically reorder rows based in descending order based on frequencies observed == REQUIREMENTS: * None
ALPHA Alert -- just uploaded initial release. Linux inotify is a means to receive events describing file system activity (create, modify, delete, close, etc). Sinotify was derived from aredridel's package (http://raa.ruby-lang.org/project/ruby-inotify/), with the addition of Paul Boon's tweak for making the event_check thread more polite (see http://www.mindbucket.com/2009/02/24/ruby-daemons-verifying-good-behavior/) In sinotify, the classes Sinotify::PrimNotifier and Sinotify::PrimEvent provide a low level wrapper to inotify, with the ability to establish 'watches' and then listen for inotify events using one of inotify's synchronous event loops, and providing access to the events' masks (see 'man inotify' for details). Sinotify::PrimEvent class adds a little semantic sugar to the event in to the form of 'etypes', which are just ruby symbols that describe the event mask. If the event has a raw mask of (DELETE_SELF & IS_DIR), then the etypes array would be [:delete_self, :is_dir]. In addition to the 'straight' wrapper in inotify, sinotify provides an asynchronous implementation of the 'observer pattern' for notification. In other words, Sinotify::Notifier listens in the background for inotify events, adapting them into instances of Sinotify::Event as they come in and immediately placing them in a concurrent queue, from which they are 'announced' to 'subscribers' of the event. [Sinotify uses the 'cosell' implementation of the Announcements event notification framework, hence the terminology 'subscribe' and 'announce' rather then 'listen' and 'trigger' used in the standard event observer pattern. See the 'cosell' package on github for details.] A variety of 'knobs' are provided for controlling the behavior of the notifier: whether a watch should apply to a single directory or should recurse into subdirectores, how fast it should broadcast queued events, etc (see Sinotify::Notifier, and the example in the synopsis section below). An event 'spy' can also be setup to log all Sinotify::PrimEvents and Sinotify::Events. Sinotify::Event simplifies inotify's muddled event model, sending events only for those files/directories that have changed. That's not to say you can't setup a notifier that recurses into subdirectories, just that any individual event will apply to a single file, and not to its children. Also, event types are identified using words (in the form of ruby :symbols) instead of inotify's event masks. See Sinotify::Event for more explanation. The README for inotify: http://www.kernel.org/pub/linux/kernel/people/rml/inotify/README Selected quotes from the README for inotify: * "Rumor is that the 'd' in 'dnotify' does not stand for 'directory' but for 'suck.'" * "The 'i' in inotify does not stand for 'suck' but for 'inode' -- the logical choice since inotify is inode-based." (The 's' in 'sinotify' does in fact stand for 'suck.')
ALPHA Alert -- just uploaded initial release. Linux inotify is a means to receive events describing file system activity (create, modify, delete, close, etc). Sinotify was derived from aredridel's package (http://raa.ruby-lang.org/project/ruby-inotify/), with the addition of Paul Boon's tweak for making the event_check thread more polite (see http://www.mindbucket.com/2009/02/24/ruby-daemons-verifying-good-behavior/) In sinotify, the classes Sinotify::PrimNotifier and Sinotify::PrimEvent provide a low level wrapper to inotify, with the ability to establish 'watches' and then listen for inotify events using one of inotify's synchronous event loops, and providing access to the events' masks (see 'man inotify' for details). Sinotify::PrimEvent class adds a little semantic sugar to the event in to the form of 'etypes', which are just ruby symbols that describe the event mask. If the event has a raw mask of (DELETE_SELF & IS_DIR), then the etypes array would be [:delete_self, :is_dir]. In addition to the 'straight' wrapper in inotify, sinotify provides an asynchronous implementation of the 'observer pattern' for notification. In other words, Sinotify::Notifier listens in the background for inotify events, adapting them into instances of Sinotify::Event as they come in and immediately placing them in a concurrent queue, from which they are 'announced' to 'subscribers' of the event. [Sinotify uses the 'cosell' implementation of the Announcements event notification framework, hence the terminology 'subscribe' and 'announce' rather then 'listen' and 'trigger' used in the standard event observer pattern. See the 'cosell' package on github for details.] A variety of 'knobs' are provided for controlling the behavior of the notifier: whether a watch should apply to a single directory or should recurse into subdirectores, how fast it should broadcast queued events, etc (see Sinotify::Notifier, and the example in the synopsis section below). An event 'spy' can also be setup to log all Sinotify::PrimEvents and Sinotify::Events. Sinotify::Event simplifies inotify's muddled event model, sending events only for those files/directories that have changed. That's not to say you can't setup a notifier that recurses into subdirectories, just that any individual event will apply to a single file, and not to its children. Also, event types are identified using words (in the form of ruby :symbols) instead of inotify's event masks. See Sinotify::Event for more explanation. The README for inotify: http://www.kernel.org/pub/linux/kernel/people/rml/inotify/README Selected quotes from the README for inotify: * "Rumor is that the 'd' in 'dnotify' does not stand for 'directory' but for 'suck.'" * "The 'i' in inotify does not stand for 'suck' but for 'inode' -- the logical choice since inotify is inode-based." (The 's' in 'sinotify' does in fact stand for 'suck.')
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.