Collection of better replacements for Ruby standard libraries.
The Ruby standard library defines YAML.safe_load and YAML.load_stream but there's no way to safely load a multi document stream. This Gem adds YAML.safe_load_stream.
The pathname2 library provides an implementation of the Pathname class different from the one that ships as part of the Ruby standard library. It is a subclass of String, though several methods have been overridden to better fit a path context. In addition, it supports file URL's as paths, provides additional methods for Windows paths, and handles UNC paths on Windows properly. See the README file for more details.
A simple wrapper for the standard ruby OpenSSL library to encrypt and decrypt strings
Makes Test::Unit::TestCases 'contextable' and thus much easier to read and write. If you've seen RSpec than it's the very same 'context do ... end' re-invendet for Test::Unit. Inspired by gem 'context' that does a similar job for the 'old' Test::Unit bundled with Ruby 1.8.x standard libraries.
An http server built using Ruby's standard library
Adds support to Ruby for encrypting, decrypting, signing and validating the signatures of XML documents, according to the [XML Encryption Syntax and Processing](http://www.w3.org/TR/xmlenc-core/) standard, and the [XML Signature Syntax and Processing](http://www.w3.org/TR/xmldsig-core/) standard by wrapping around the [xmlsec](http://www.aleksey.com/xmlsec) C library and adding relevant methods to `Nokogiri::XML::Document`. Implementation is based off nokogiri-xmlsec by Colin MacKenzie IV with very heavy modifications.
mkdtemp is a C extension that wraps the Standard C Library function of the same name to make secure creation of temporary directories easily available from within Ruby.
A client library for the portable contacts standard
Serverless VPC Access enables you to connect from a serverless environment on Google Cloud (Cloud Run, Cloud Functions, or the App Engine standard environment) directly to your VPC network. This connection makes it possible for your serverless environment to access Compute Engine VM instances, Memorystore instances, and any other resources with an internal IP address. Note that google-cloud-vpc_access-v1 is a version-specific client library. For most uses, we recommend installing the main client library google-cloud-vpc_access instead. See the readme for more details.
Forward proxy using just Ruby standard libraries.
Finder is a general purpose file finder for Ruby. Finder can search RubyGems, Roll libraries and Ruby's standard $LOAD_PATH and system data directory for the active or the most current library files. It is especially useful for implementing library-based plugin systems.
Provide a simple, configurable, and standardized document generation object model. The basic premise is to pass in a dataset and configuration and this library will return rendered documents. The rendering engines can be plugged in so it leaves this as an extendable/open framework.
Minimal Lisp interpreter using 75LOC and only standard libraries excluding the REPL. Inspired by Lis.py.
win32olerot provides an adjunct to the standard WIN32OLE Ruby library for access to the win32 RunningObjectTable (ROT). The RunningObjectTable contains the list of registered monikers that can be connected to using WIN32OLE.connect().
Adds support to Ruby for encrypting, decrypting, signing and validating the signatures of XML documents, according to the [XML Encryption Syntax and Processing](http://www.w3.org/TR/xmlenc-core/) standard, and the [XML Signature Syntax and Processing](http://www.w3.org/TR/xmldsig-core/) standard by wrapping around the [xmlsec](http://www.aleksey.com/xmlsec) C library and adding relevant methods to `Nokogiri::XML::Document`. Implementation is based off nokogiri-xmlsec by Colin MacKenzie IV with very heavy modifications.
Rails I18n de-facto standard library for ActiveRecord 3 model/data translation.
Indy is a log archaeology library that treats logs like data structures. Search standard or custom log formats by field and/or time.
A set of bindings between Ruby and Mapnik. Supports many of the common uses for Mapnik, and one day, might support all of them. Rendering is available using the standard AGG library, or additionally via Cairo, if the rcairo gem is installed and Mapnik has been compiled with Cairo support.
The readline library provides a pure Ruby implementation of the GNU readline C library, as well as the Readline extension that ships as part of the standard library. This fork is maintained by Rapid7 for use with the Metasploit Framework
Ree Lib provides set of packages to extend Ruby Standard Library
Adds support to Ruby for encrypting, decrypting, signing and validating the signatures of XML documents, according to the [XML Encryption Syntax and Processing](http://www.w3.org/TR/xmlenc-core/) standard, by wrapping around the [xmlsec](http://www.aleksey.com/xmlsec) C library and adding relevant methods to `Nokogiri::XML::Document`.
Aims to extend Ruby standard library, providing some useful tools that's not existed in the standard library, especially for functional programming.
The pr-zlib library is a pure Ruby implementation of both the zlib C library, and the Ruby zlib interface that ships as part of the standard library.
Mingle 3.3 introduced a new Events API in the form of an "Atom feed":http://www.thoughtworks-studios.com/mingle/3.3/help/mingle_api_events.html. The Mingle team and ThoughtWorks Studios are big believers in the use of Atom for exposing events. Atom is a widely used standard, and this event API style puts the issue of robust event delivery in the hands of the consumer, where it belongs. In fact, we'd argue this is the only feasible means of robust, scalable event delivery, short of spending hundreds of thousands or millions of dollars on enterprise buses and such. Atom-delivered events are cheap, scalable, standards-based, and robust. However, we do accept that asking integrators wishing to consume events to implement polling is not ideal. Writing polling consumers can be tedious. And this tedium gets in the way of writing sweet Mingle integrations. We are addressing this by publishing libraries such as this, which if effective, fully hide the mechanics of event polling from the consumer. The consumer only need worry about the processing of events. Said processing is modeled in the style of 'pipes and filters.'
Simple, beautiful error messages for Rails. Err_supply unpacks and rekeys the standard Rails error hash to make applying error messages to your views dead simple. Even better, because the library cures Rails' brain-damaged way of recording errors from nested resources/attributes, err_supply works with both simple and complex forms.
This library generates diff reports of CSV files, using the diff capabilities of the CSV Diff gem. Unlike a standard diff that compares line by line, and is sensitive to the ordering of records, CSV-Diff identifies common lines by key field(s), and then compares the contents of the fields in each line. CSV-Diff Report takes the diff information calculated by CSV-Diff, and uses it to produce Excel, HTML, or text diff reports. It also provides a command-line tool (csvdiff) for generating these diff reports from CSV files. The csvdiff command-line tool supports both file and directory diffs. As directories may contain files of different formats, .csvdiff files can be used to match file names to file types, and specify the appropriate diff settings for each file type.
Standard library of commonly reused functions across all Pykih Projects.
Ruby standard library used by rake.
This library creates a common object graph for the RSS/Atom/RDF parsing classes in the ruby standard library. This allows you parse different feed formats and get back the same (or at least a very similar) set of results - item authors are accessible under an "author(s)" attribute, categories/tags/subjects are accessible under "category(ies)" attributes, etc. We do our best to make sure the data makes sense, too - RSS items lack an "updated" attribute, so we use "pubDate" to populate it.
A tiny Ruby library to quickly standardize a postal address
A simple library with common monkey patches for the standard Ruby classes.
"Parse" SCP-like address triplets with the Standard Ruby URI Library.
Additional test assertions for Ruby standard libraries.
Infochimps Simple Schema library: an avro-compatible data description standard. ICSS completely describes a collection of data (and associated assets) in a way that is expressive, scalable and sufficient to drive remarkably complex downstream processes.
Ruby standard library tracer.
Stamps is Stamps.com backed library for creating postage labels, calculate the shipping cost of packages, standardize domestic addresses via USPS CASS certified Address Matching Software, and track shipments.
Value Value is a library for defining immutable value objects in Ruby. A value object is an object whose equality to other objects is determined by its value, not its identity, think dates and amounts of money. A value object should also be immutable, as you don’t want the date “2013-04-22” itself to change but the current date to change from “2013-04-22” to “2013-04-23”. That is, you don’t want entries in a calendar for 2013-04-22 to move to 2013-04-23 simply because the current date changes from 2013-04-22 to 2013-04-23. A value object consists of one or more attributes stored in instance variables. Value sets up an #initialize method for you that let’s you set these attributes, as, value objects being immutable, this’ll be your only chance to do so. Value also adds equality checks ‹#==› and ‹#eql?› (which are themselves equivalent), a ‹#hash› method, a nice ‹#inspect› method, and a protected attribute reader for each attribute. You may of course add any additional methods that your value object will benefit from. That’s basically all there’s too it. Let’s now look at using the Value library. § Usage You create value object class by invoking ‹#Value› inside the class (module) you wish to make into a value object class. Let’s create a class that represent points on a plane: class Point Value :x, :y end A ‹Point› is thus a value object consisting of two sub-values ‹x› and ‹y› (the coordinates). Just from invoking ‹#Value›, a ‹Point› object will have a constructor that takes two arguments to set instance variables ‹@x› and ‹@y›, equality checks ‹#==› and ‹#eql?› (which are the same), a ‹#hash› method, a nice ‹#inspect› method, and two protected attribute readers ‹#x› and ‹#y›. We can thus already creat ‹Point›s: origo = Point.new(0, 0) The default of making the attribute readers protected is often good practice, but for a ‹Point› it probably makes sense to be able to access its coordinates: class Point public(*attributes) end This’ll make all attributes of ‹Point› public. You can of course choose to only make certain attributes public: class Point public :x end Note that this public is standard Ruby functionality. Adding a method to ‹Point› is of course also possible and very much Rubyish: class Point def distance(other) Math.sqrt((other.x - x)**2 + (other.y - y)**2) end end For some value object classes you might want to support optional attributes. This is done by providing a default value for the attribute, like so: class Money Value :amount, [:currency, :USD] end Here, the ‹currency› attribute will default to ‹:USD›. You can create ‹Money› via dollars = Money.new(2) but also kronor = Money.new(2, :SEK) All required attributes must come before any optional attributes. Splat attributes are also supported: class List Value :'*elements' end empty = List.new suits = List.new(:spades, :hearts, :diamonds, :clubs) Splat attributes are optional. Finally, block attributes are also available: class Block Value :'&block' end block = Block.new{ |e| e * 2 } Block attributes are optional. Comparison beyond ‹#==› is possible by specifingy the ‹:comparable› option to ‹#Value›, listing one or more attributes that should be included in the comparison: class Vector Value :a, :b, :comparable => :a end Note that equality (‹#==› and ‹#eql?›) is always defined based on all attributes, regardless of arguments to ‹:comparable›. Here we say that comparisons between ‹Vector›s should be made between the values of the ‹a› attribute only. We can also make comparisons between all attributes of a value object: class Vector Value :a, :b, :comparable => true end To sum things up, let’s use all possible arguments to ‹#Value› at once: class Method Value :file, :line, [:name, 'unnamed'], :'*args', :'&block', :comparable => [:file, :line] end A ‹Method› consists of file and line information, a possible name, some arguments, possibly a block, and is comparable on the file and line on which they appear. Check out the {full API documentation}¹ for a more explicit description, should you need it or should you want to extend it. ¹ See http://disu.se/software/value/api/ § Financing Currently, most of my time is spent at my day job and in my rather busy private life. Please motivate me to spend time on this piece of software by donating some of your money to this project. Yeah, I realize that requesting money to develop software is a bit, well, capitalistic of me. But please realize that I live in a capitalistic society and I need money to have other people give me the things that I need to continue living under the rules of said society. So, if you feel that this piece of software has helped you out enough to warrant a reward, please PayPal a donation to now@disu.se¹. Thanks! Your support won’t go unnoticed! ¹ Send a donation: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=now%40disu%2ese&item_name=Value § Reporting Bugs Please report any bugs that you encounter to the {issue tracker}¹. ¹ See https://github.com/now/value/issues § Authors Nikolai Weibull wrote the code, the tests, the manual pages, and this README. § Licensing Value is free software: you may redistribute it and/or modify it under the terms of the {GNU Lesser General Public License, version 3}¹ or later², as published by the {Free Software Foundation}³. ¹ See http://disu.se/licenses/lgpl-3.0/ ² See http://gnu.org/licenses/ ³ See http://fsf.org/
Java implementation of the krypt-provider API using the standard JDK security library
A library for managing standardized application seed data
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.
A simple wrapper for the standard ruby OpenSSL library
A library for generating and consuming various healthcare related formats. These include HITSP C32, QRDA Category I, and QRDA Category III.
OStruct2 is a reimplementation of Ruby's standard ostruct.rb library. This new OpenStruct class addresses issues the original has with conflicting member names and cloning.
The Ruby standard library defines YAML.safe_load and YAML.load_stream but there's no way to safely load a multi document stream. This Gem adds YAML.safe_load_stream.
This is a distributed Ruby client and server which should work as a drop-in replacement for the standard distributed Ruby implementation available in the Ruby standard library.
A ruby library for working with the Open Archive Initiative Protocol for Metadata Harvesting (OAI-PMH). Fork of the original version by Ed Summers, aims for best standards compatibility (test with http://re.cs.uct.ac.za/)
A library for generating QR Codes for the e-invoice standard by ZATCA in Saudi Arabia.
A direct port of python's 'bisect' standard library to ruby.
The eno standard library