User interface library for AppExpress components (https://appexpress.io)
SVMKit is a machine learninig library in Ruby. SVMKit provides machine learning algorithms with interfaces similar to Scikit-Learn in Python. SVMKit supports Linear / Kernel Support Vector Machine, Logistic Regression, Linear Regression, Ridge, Lasso, Factorization Machine, Naive Bayes, Decision Tree, AdaBoost, Random Forest, K-nearest neighbor algorithm, K-Means, DBSCAN, Principal Component Analysis, and Non-negative Matrix Factorization. Note that the SVMKit has been deprecated and has been renamed to Rumale.
Shared component library and design system for Ably Real-time Ltd (ably.com)
This gem is a documentation site and gem that will copy components from the shadcn-ui library into a Ruby on Rails application.
Common pipeline tasks and libraries to be used for all components of the ProjectDX platform
Provides a set of helpers simplifying the use of the Material Components Web library.
The original lwes gem is a thin wrapper around the c library, and does not handle data types for dynamic LWES events. This gem allows users to define the data type of attributes in an clear way, so that your LWES event listeners will be happy. This library includes the following components.
Wrest is a REST client library which allows you to quickly build object oriented wrappers around any web service. It has two main components - Wrest Core and Wrest::Resource.
The console_view_helper library is used to build clean and beautiful console application interfaces. Customizable components such as banners, tables, menus, lists, text inputs, hidden text inputs and methods as colorize, putsi, printi, align, explain, among others, will help you build a good console application interface with less code and in less time.
Simple library for building view components in Ruby on Rails. A view component is defined by sections and attributes, and its structure is defined once in a partial view in the `app/views/components` folder, and can be invoked by a simple helper method.
A Jekyll library for building component-based UI
Vagrant Like Interface is a library of components extracted from the vagrant project to aid in building command line interfaces.
A complete library of commonly used components to build an admin interface in your Ruby on Rails project.
HTTP/REST API client library with pluggable components
A config generation library to generate a few Dockerfiles, Makefile, and docker-compose.yml file that will get everything setup for local docker development driven by make. Specifically meant for use with non-trivial multi-component development setups. Also handy for trivial single container development settings.
A Guilded component for the Fancybox JavaScript library that makes Rails development with Fancybox a breeze.
# COM # COM is an object-oriented wrapper around WIN32OLE. COM makes it easy to add behavior to WIN32OLE objects, making them easier to work with from Ruby. ## Usage ## Using COM is rather straightforward. There’s basically four concepts to keep track of: 1. COM objects 2. Instantiable COM objects 3. COM events 4. COM errors Let’s look at each concept separately, using the following example as a base. module Word end class Word::Application < COM::Instantiable def without_interaction with_properties('displayalerts' => Word::WdAlertsNone){ yield } end def documents Word::Documents.new(com.documents) end def quit(saving = Word::WdDoNotSaveChanges, *args) com.quit saving, *args end end ### COM Objects ### A COM::Object is a wrapper around a COM object. It provides error specialization, which is discussed later and a few utility methods. You typically use it to wrap COM objects that are returned by COM methods. If we take the example given in the introduction, Word::Documents is a good candidate: class Word::Documents < COM::Object DefaultOpenOptions = { 'confirmconversions' => false, 'readonly' => true, 'addtorecentfiles' => false, 'visible' => false }.freeze def open(path, options = {}) options = DefaultOpenOptions.merge(options) options['filename'] = Pathname(path).to_com Word::Document.new(com.open(options)) end end Here we override the #open method to be a bit easier to use, providing sane defaults for COM interaction. Worth noting is the use of the #com method to access the actual COM object to invoke the #open method on it. Also note that Word::Document is also a COM::Object. COM::Object provides a convenience method called #with_properties, which is used in the #without_interaction method above. It lets you set properties on the COM::Object during the duration of a block, restoring them after it exits (successfully or with an error). ### Instantiable COM Objects ### Instantiable COM objects are COM objects that we can connect to and that can be created. The Word::Application object can, for example, be created. Instantiable COM objects should inherit from COM::Instantiable. Instantiable COM objects can be told what program ID to use, whether or not to allow connecting to an already running object, and to load its associated constants upon creation. The program ID is used to determine what instantiable COM object to connect to. By default the name of the COM::Instantiable class’ name is used, taking the last two double-colon-separated components and joining them with a dot. For Word::Application, the program ID is “Word.Application”. The program ID can be set by using the .program_id method: class IDontCare::ForConventions < COM::Instantiable program_id 'Word.Application' end The program ID can be accessed with the same method: Word::Application.program_id # ⇒ 'Word.Application' Connecting to an already running COM object is not done by default, but is sometimes desirable: the COM object might take a long time to create, or some common state needs to be accessed. If the default for a certain instantiable COM object should be to connect, this can be done using the .connect method: class Word::Application < COM::Instantiable connect end If no running COM object is available, then a new COM object will be created in its stead. Whether or not a class uses the connection method can be queried with the .connect? method: Word::Application.connect? # ⇒ true Whether or not to load constants associated with an instantiable COM object is set with the .constants method: class Word::Application < COM::Instantiable constants true end and can similarly be checked: Word::Application.constants? # ⇒ true Constants are loaded by default. When an instance of the instantiable COM object is created, a check is run to see if constants should be loaded and whether or not they already have been loaded. If they should be loaded and they haven’t already been loaded, they’re, you guessed it, loaded. The constants are added to the module containing the COM::Instantiable. Thus, for Word::Application, the Word module will contain all the constants. Whether or not the constants have already been loaded can be checked with .constants_loaded?: Word::Application.constants_loaded # ⇒ false That concludes the class-level methods. Let’s begin with the #connected? method among the instance-level methods. This method queries whether or not this instance connected to an already running COM object: Word::Application.new.connected? # ⇒ false This can be very important in determining how shutdown of a COM object should be done. If you connected to an already COM object it might be foolish to shut it down if someone else is using it. The #initialize method takes a couple of options: * connect: whether or not to connect to a running instance * constants: whether or not to load constants These options will, when given, override the class-level defaults. ### Events ### COM events are easily dealt with: class Word::Application < COM::Instantiable def initialize(options = {}) super @events = COM::Events.new(com, 'ApplicationEvents', 'OnQuit') end def quit(saving = Word::WdDoNotSaveChanges, *args) @events.observe('OnQuit', proc{ com.quit saving, *args }) do yield if block_given? end end end To tell you the truth this API sucks and will most likely be rewritten. The reason that it is the way it is is that WIN32OLE, which COM wraps, sucks. It’s event API is horrid and the implementation is buggy. It will keep every registered event block in memory for ever, freeing neither the blocks nor the COM objects that yield the events. ### Errors ### All errors generated by COM methods descend from COM::Error, except for those cases where a Ruby error already exists. The following HRESULT error codes are turned into Ruby errors: HRESULT Error Code | Error Class -------------------|------------ 0x80004001 | NotImplementedError 0x80020005 | TypeError 0x80020006 | NoMethodError 0x8002000e | ArgumentError 0x800401e4 | ArgumentError There are also a couple of other HRESULT error codes that are turned into more specific errors than COM::Error: HRESULT Error Code | Error Class -------------------|------------ 0x80020003 | MemberNotFoundError 0x800401e3 | OperationUnavailableError Finally, when a method results in any other error, a COM::MethodInvocationError will be raised, which can be queried for the specifics, specifically #message, #method, #server, #code, #hresult_code, and #hresult_message. ### Pathname ### The Pathname object receives an additional method, #to_com. This method is useful for when you want to pass a Pathname object to a COM method. Simply call #to_com to turn it into a String of the right encoding for COM: Word::Application.new.documents.open(Pathname('a.docx').to_com) # ⇒ Word::Document ## Installation ## Install COM with % gem install com ## License ## You may use, copy and redistribute this library under the same [terms][1] as Ruby itself. [1]: http://www.ruby-lang.org/en/LICENSE.txt ## Contributors ## * Nikolai Weibull
bbv.Common is a library of .NET components and functionality including: * (a)synchronous notification component with thread switching using publisher-subscriber pattern, * hierarchical state machine with fluent definition syntax, * programmatic, loosely coupled, context based rule engine, * support for active objects to build multi-threaded applications
NamespaceHelper is a Ruby library providing a module with methods to ease namespace handling. For example getting the unprefixed name, the namespace parent or a list of namespace components of a class or module.
Reusable components for Scarpe display libraries
Live validator is a Rails Guilded (http://github.com/midas/guilded/tree/master) component that will reflect ActiveRecord validations and use them to live validate forms. Live validator uses the Live Validation (http://www.livevalidation.com) JavaScript library to accomplish this task. It also uses an ActiveRecord extension authored by Michael Schuerig to mre easily reflect on the ActiveRecord valdiations.
Open Source Flex 2 Component Library
ActionScript 3.0 / Flex framework for unit testing. This is the package with flex components.
Open Source Flex 2 Component Library
ActionScript 3.0 / Flex framework for unit testing. This is the package without flex components.
FastCache implements a flexible client side implementation of the memcached protocol. The library comes with a light core as well as some components to wrap the protocol with more advanced behaviors.
A simple component library which seamlessly hooks into your Rails project and allows you to create simple backend components. They work like mini controllers which are bound with their view.
Administrate is heavily inspired by projects like Rails Admin and ActiveAdmin, but aims to provide a better user experience for site admins, and to be easier for developers to customize. To do that, we're following a few simple rules: - No DSLs (domain-specific languages) - Support the simplest use cases, and let the user override defaults with standard tools such as plain Rails controllers and views. - Break up the library into core components and plugins, so each component stays small and easy to maintain.
Ruby wrapper library to call to avataaars React component using NodeJS
Administrate is heavily inspired by projects like Rails Admin and ActiveAdmin, but aims to provide a better user experience for site admins, and to be easier for developers to customize. To do that, we're following a few simple rules: - No DSLs (domain-specific languages) - Support the simplest use cases, and let the user override defaults with standard tools such as plain Rails controllers and views. - Break up the library into core components and plugins, so each component stays small and easy to maintain.
Live validator is a Rails Guilded (http://github.com/midas/guilded/tree/master) component that will reflect ActiveRecord validations and use them to live validate forms. Live validator uses the Live Validation (http://www.livevalidation.com) JavaScript library to accomplish this task. It also uses an ActiveRecord extension authored by Michael Schuerig to mre easily reflect on the ActiveRecord valdiations.
Democritus is library for building classes from reusable components.
== coral This gem is simply a meta package that installs and requires the CORL gem. Note: CORL is still early in development! DO NOT USE IN PRODUCTION YET!! Now you get to hear the story of two names. Short story first; We switched to the CORL name (github.com/coralnexus/corl). If your interested in why: The original name of the CORL project was Coral, and we were exited when we found the Ruby gem name "coral" available. Our first versions of our CORL system were named coral_core, coral_cloud, coral_vagrant, coral_plan, and many more were planned. We created a meta gem (this one) to install a core combination of gems. During the course of development we found another project that came before ours that uses the name coral, so we decided to update our project name, so as to avoid conflicts. For us Coral is more than a word, it is a concept that embodies dynamic ecosystems supporting a rich variety of lifeforms. Coral are very interesting creatures and we endeavor to create software that helps build dynamic ecosystems of digital creatures. We decided to use an acronym that sounds like the word Coral because the acronym fit with our desire to create something good for administration but also good for flexible research, so we came to Cluster Orchestration and Research Library. We split the core components out into a small concurrent plugin framework called Nucleon, upon which CORL is built. All of our coral sub gems are integrated into these two. This gem exists only as a installer for people who accidentally spell coral the right way when trying to install the CORL system. Use the CORL gem instead. == Copyright Licensed under Apache license, version 2. See LICENSE.txt for further details. Copyright (c) 2013-2014 Adrian Webb <adrian.webb@coralnexus.com> Coral Technology Group LLC
Docsplit is a command-line utility and Ruby library for splitting apart documents into their component parts: searchable UTF-8 plain text, page images or thumbnails in any format, PDFs, single pages, and document metadata (title, author, number of pages...)
A utility for generating new extensions or component libraries which hook into `amber_component`. Create your own themes!
Vident makes using Stimulus with your `ViewComponent` or `Phlex` view components as easy as writing Ruby. Vident is the base of your design system implementation, which provides helpers for working with Stimulus. For component libraries with ViewComponent or Phlex.
Help Scout's Jekyll component library
MM::Space is a framework for working with Morphological Metrics and Morphological Mutations in Ruby. A core component of MM::Space is that it has a notion of global distance throughout a series of measurements or transformations. This is what "Space" implies. It uses coworker libraries MM::Metric and MM::Mutation to drive these measurements and transformations.
IN ACTIVE DEVELOPMENT. High-performance Ruby game framework strongly influenced by the RPG Maker series by Enterbrain. The library contains multiple levels of abstraction, leveraging the power of modern OpenGL (C bindings built-in) and shaders, but building upon these low-level abstractions to create the user-friendly components that are to be expected in a 2D game framework, including sprites, textures, fonts, colors, etc. Those experienced with low-level graphics APIs have all the tools at their fingertips already built-in (OpenGL, GLFW, OpenAL, sound/font/image decoding, etc) and ready to build their own engine from, while those who have no interest in such can get started right away with powerful higher-level abstractions. While the library's API surface similar in many ways to RPG Maker XP/VX/VXA, bear in mind that it is merely incluenced by those, and liberal design changes have been taken to not limit the API or add restriction.
Common Library Search Interface - core components
xqsr3 - eXtensions by fine Quantum for Standard Ruby and 3rd-party libraries - is a lightweight, low-coupling library of assorted extensions to standard ruby and 3rd-party libraries. xqsr3-xml contains the XML-related components for xqsr3, so that the core library remains independent of any non-standard libraries.
Ruby library for hosting components composed of independent actors
In computer science, a disjoint-set data structure, also called a union–find data structure or merge–find set, is a data structure that keeps track of a set of elements partitioned into a number of disjoint (non-overlapping) subsets. It provides near-constant-time operations (bounded by the inverse Ackermann function) to add new sets, to merge existing sets, and to determine whether elements are in the same set. In addition to many other uses (see the Applications section), disjoint-sets play a key role in Kruskal's algorithm for finding the minimum spanning tree of a graph. A disjoint-set forest consists of a number of elements each of which stores an id, a parent pointer, and, in efficient algorithms, a value called the "rank". The parent pointers of elements are arranged to form one or more trees, each representing a set. If an element's parent pointer points to no other element, then the element is the root of a tree and is the representative member of its set. A set may consist of only a single element. However, if the element has a parent, the element is part of whatever set is identified by following the chain of parents upwards until a representative element (one without a parent) is reached at the root of the tree. Forests can be represented compactly in memory as arrays in which parents are indicated by their array index. Disjoint-set data structures model the partitioning of a set, for example to keep track of the connected components of an undirected graph. This model can then be used to determine whether two vertices belong to the same component, or whether adding an edge between them would result in a cycle. The Union–Find algorithm is used in high-performance implementations of unification. This data structure is used by the Boost Graph Library to implement its Incremental Connected Components functionality. It is also a key component in implementing Kruskal's algorithm to find the minimum spanning tree of a graph. Note that the implementation as disjoint-set forests doesn't allow the deletion of edges, even without path compression or the rank heuristic. Sharir and Agarwal report connections between the worst-case behavior of disjoint-sets and the length of Davenport–Schinzel sequences, a combinatorial structure from computational geometry.
Docsplit is a command-line utility and Ruby library for splitting apart documents into their component parts: searchable UTF-8 plain text, page images or thumbnails in any format, PDFs, single pages, and document metadata (title, author, number of pages...)
Common API for mathematical, scientific and engineering libraries
A plug-in that can customize component dependencies, static libraries/dynamic libraries.
UI View Component library built on top of Tailwind CSS and based on the Flowbite Design System.
Volt component providing reactive wrapper for Webix Javascript library.
A library of various Rails Administration Abstractions and Components.