appraisal-rb Logo by Aboling0, CC BY-SA 4.0 kettle-rb Logo by Aboling0, CC BY-SA 4.0 floss-funding Logo by Aboling0, CC BY-SA 4.0 galtzo-floss Logo by Aboling0, CC BY-SA 4.0 rubocop-lts Logo by Aboling0, CC BY-SA 4.0 oauth Logo by Chris Messina, CC BY-SA 3.0 ruby-openid Logo by Aboling0, CC BY-SA 4.0 omniauth Logo by (presumed) tomeara, (presumed) MIT resque Logo by Resque development team, MIT

Projects

Open source projects I maintain across various platforms. For an interactive presentation of this list with useful filters, head over to galtzo.com.

*-merge Gem Family

tree_haver

ðŸŒī TreeHaver is a cross-Ruby adapter for many AST parsing libraries; supporting MRI Ruby, JRuby, & TruffleRuby. Provides unified parsing API & AST when using ruby_tree_sitter, parslet, citrus, ffi, tree_stump (Rust), JRuby JARs, etc. As Faraday is to HTTP clients, this is for ASTs: 'Learn once & write once & run anywhere'

👊 ast-merge kettle-rb kettle-rb tree_haver tree_haver 🏷ïļ api 🏷ïļ cli ruby ruby 🏷ïļ ast 🏷ïļ tree-sitter
View tree_haver blog →

token-resolver

🊙 Token::Resolver provides configurable PEG-based (parslet) parsing and resolution of structured tokens (e.g., {KJ|GEM_NAME}) in arbitrary text. Useful for template ETL pipelines where tokens in template files must be resolved before format-specific merging.

👊 ast-merge kettle-rb kettle-rb token-resolver token-resolver 🏷ïļ grammar ruby ruby 🏷ïļ templating
View token-resolver blog →

ast-merge

â˜Ŋïļ Ast::Merge provides base classes, modules, and RSpec shared examples for building intelligent file mergers using AST analysis. It powers prism-merge, psych-merge, json-merge, and other format-specific merge gems.

👊 ast-merge kettle-rb kettle-rb 🏷ïļ ast ruby ruby 🏷ïļ templating 🏷ïļ test 🏷ïļ grammar 🏷ïļ tree-sitter
View ast-merge blog →

bash-merge

â˜Ŋïļ Bash::Merge provides smart Bash script merging that preserves comments, understands shell structure, and supports freeze blocks for protecting destination content. Perfect for merging configuration scripts and shell templates with customized destination files.

👊 ast-merge kettle-rb kettle-rb bash-merge bash-merge ruby ruby 🏷ïļ ast 🏷ïļ templating bash bash 🏷ïļ tree-sitter 🏷ïļ api
View bash-merge blog →

commonmarker-merge

â˜Ŋïļ Commonmarker::Merge provides smart Markdown file merging using Comrak (Rust) via Commonmarker. It understands document structure including headings, lists, code blocks, and tables. Perfect for merging documentation templates with customized files.

👊 ast-merge kettle-rb kettle-rb commonmarker-merge commonmarker-merge ruby ruby 🏷ïļ ast 🏷ïļ templating 🏷ïļ markdown 🏷ïļ api
View commonmarker-merge blog →

dotenv-merge

â˜Ŋïļ Dotenv::Merge provides smart .env file merging that preserves comments, understands variable assignments, and supports freeze blocks for protecting sensitive configuration. Perfect for merging environment templates with local overrides.

👊 ast-merge kettle-rb kettle-rb dotenv-merge dotenv-merge ruby ruby 🏷ïļ ast 🏷ïļ templating 🏷ïļ dotenv 🏷ïļ grammar 🏷ïļ tree-sitter 🏷ïļ api
View dotenv-merge blog →

json-merge

â˜Ŋïļ Json::Merge provides smart JSON file merging that understands JSON structure. Perfect for merging strict JSON configuration files like package.json, tsconfig.json (without comments), and other standard JSON files. For JSON with Comments (JSONC) files like devcontainer.json and VS Code settings, use jsonc-merge instead.

👊 ast-merge kettle-rb kettle-rb json-merge json-merge ruby ruby 🏷ïļ json 🏷ïļ ast 🏷ïļ templating 🏷ïļ tree-sitter 🏷ïļ api
View json-merge blog →

jsonc-merge

â˜Ŋïļ Jsonc::Merge provides smart JSONC (JSON with Comments) file merging that preserves comments, understands JSON structure, and supports freeze blocks for protecting destination content. Perfect for merging configuration files like devcontainer.json, tsconfig.json, package.json, and VS Code settings.

👊 ast-merge kettle-rb kettle-rb jsonc-merge jsonc-merge ruby ruby 🏷ïļ json 🏷ïļ ast 🏷ïļ templating 🏷ïļ tree-sitter 🏷ïļ api
View jsonc-merge blog →

markdown-merge

â˜Ŋïļ Ast::Merge-based structure for merging Markdown files with tools like markly-merge and commonmarker-merge

👊 ast-merge kettle-rb kettle-rb markdown-merge markdown-merge ruby ruby 🏷ïļ ast 🏷ïļ templating 🏷ïļ markdown 🏷ïļ tree-sitter 🏷ïļ api
View markdown-merge blog →

markly-merge

â˜Ŋïļ Markly::Merge provides smart Markdown file merging using libcmark-gfm via Markly. It understands document structure including headings, lists, code blocks, and tables. Perfect for merging documentation templates with customized files.

👊 ast-merge kettle-rb kettle-rb markly-merge markly-merge ruby ruby 🏷ïļ ast 🏷ïļ templating 🏷ïļ markdown 🏷ïļ api
View markly-merge blog →

prism-merge

â˜Ŋïļ Intelligently merge two versions of a Ruby file using Prism AST analysis, similar to a smart 'git merge' specifically designed for Ruby code.

👊 ast-merge kettle-rb kettle-rb prism-merge prism-merge ruby ruby 🏷ïļ ast 🏷ïļ templating 🏷ïļ api
View prism-merge blog →

psych-merge

â˜Ŋïļ Psych::Merge provides smart YAML file merging that preserves comments, anchors/aliases, and supports freeze blocks for protecting destination content. Perfect for merging configuration templates with customized destination files.

👊 ast-merge kettle-rb kettle-rb psych-merge psych-merge ruby ruby 🏷ïļ ast 🏷ïļ templating 🏷ïļ yaml 🏷ïļ api
View psych-merge blog →

rbs-merge

â˜Ŋïļ Intelligently merge RBS type signature files by parsing and comparing AST structures. Supports freeze blocks to protect customizations, signature-based matching, and configurable merge strategies.

👊 ast-merge kettle-rb kettle-rb rbs-merge rbs-merge ruby ruby 🏷ïļ ast 🏷ïļ templating 🏷ïļ rbs 🏷ïļ tree-sitter 🏷ïļ api
View rbs-merge blog →

toml-merge

â˜Ŋïļ Intelligently merges TOML files by analyzing their AST structure with tree-sitter, preserving key organization and resolving conflicts based on structural similarity.

👊 ast-merge kettle-rb kettle-rb toml-merge toml-merge ruby ruby 🏷ïļ ast 🏷ïļ templating 🏷ïļ toml 🏷ïļ tree-sitter 🏷ïļ api 🏷ïļ grammar
View toml-merge blog →

tree_stump

Ruby bindings for Tree-sitter written in Rust using rb_sys and magnus.

👊 ast-merge 🏷ïļ joker1007 tree_stump tree_stump ruby ruby rust rust 🏷ïļ ast 🏷ïļ tree-sitter 🏷ïļ api
View tree_stump blog →

magnus

High level Ruby bindings. Write Ruby extension gems in Rust, or call Ruby code from a Rust binary.

👊 ast-merge 🏷ïļ matsadler magnus magnus ruby ruby rust rust 🏷ïļ rubygems 🏷ïļ api
View magnus blog →

rb-sys

Rust bindings for the CRuby API

👊 ast-merge 🏷ïļ oxidize-rb rb-sys rb-sys rust rust ruby ruby 🏷ïļ api
View rb-sys blog →

rb_sys

Helpers for compiling Rust extensions for ruby

👊 ast-merge 🏷ïļ oxidize-rb rb_sys rb_sys ruby ruby rust rust 🏷ïļ api
View rb_sys blog →

ruby_tree_sitter

Ruby bindings for Tree-Sitter

👊 ast-merge 🏷ïļ Faveod ruby_tree_sitter ruby_tree_sitter ruby ruby 🏷ïļ ast 🏷ïļ tree-sitter 🏷ïļ api
View ruby_tree_sitter blog →

ActiveRecord Plugins

flag_shih_tzu

Bit fields for ActiveRecord - store multiple boolean flags in a single integer column

👊 active-record galtzo-floss galtzo-floss flag_shih_tzu flag_shih_tzu 🏷ïļ activerecord 🏷ïļ bitfields rails rails ruby ruby
View flag_shih_tzu blog →

active_security

Disallow insecure, unscoped, finds

👊 active-record galtzo-floss galtzo-floss active_security active_security 🏷ïļ activerecord rails rails ruby ruby
View active_security blog →

activerecord-tablefree

ActiveRecord Tablefree Models provides a simple mixin for creating models that are not bound to the database. Take advantage of ActiveRecord features like validation, relationships, and nested_attributes.

👊 active-record galtzo-floss galtzo-floss activerecord-tablefree activerecord-tablefree 🏷ïļ activerecord rails rails ruby ruby 🏷ïļ validation
View activerecord-tablefree blog →

activerecord-transactionable

Getting transactions right is hard, and this gem makes it easier.

👊 active-record galtzo-floss galtzo-floss activerecord-transactionable activerecord-transactionable 🏷ïļ activerecord rails rails ruby ruby
View activerecord-transactionable blog →

anonymous_active_record

Replacement for broken Class.new(ActiveRecord::Base)

👊 active-record galtzo-floss galtzo-floss anonymous_active_record anonymous_active_record 🏷ïļ activerecord rails rails ruby ruby
View anonymous_active_record blog →

csv_pirate

CsvPirate is the easy way to create a CSV of essentially anything in Ruby, in full pirate regalia. It works better if you are wearing a tricorne!

👊 active-record galtzo-floss galtzo-floss csv_pirate csv_pirate 🏷ïļ activerecord 🏷ïļ data rails rails ruby ruby
View csv_pirate blog →

each_in_batches

Batch Processing of Records with Blocks in Rails

👊 active-record galtzo-floss galtzo-floss each_in_batches each_in_batches 🏷ïļ activerecord rails rails ruby ruby
View each_in_batches blog →

shiftable

Move single records (has_one) or collections (has_many) from one parent (belongs_to) to another

👊 active-record galtzo-floss galtzo-floss shiftable shiftable 🏷ïļ activerecord rails rails ruby ruby
View shiftable blog →

seed_migration

Rails gem for Data Migrations

👊 active-record galtzo-floss galtzo-floss seed_migration seed_migration 🏷ïļ activerecord rails rails ruby ruby
View seed_migration blog →

simple_column-scopes

Dynamic modules which define dynamic methods for scopes based on a dynamic array of column names

👊 active-record galtzo-floss galtzo-floss simple_column-scopes simple_column-scopes 🏷ïļ activerecord rails rails ruby ruby
View simple_column-scopes blog →

spyke-connection_lambda

Dynamic Spyke API connection plugin for the Enterprise Cloud

👊 active-record galtzo-floss galtzo-floss spyke-connection_lambda spyke-connection_lambda 🏷ïļ activerecord 🏷ïļ api rails rails ruby ruby
View spyke-connection_lambda blog →

destination_errors

Useful when a presenter deals with multiple objects that may enter into error states, and the errors need to be collected at a single point.

👊 active-record galtzo-floss galtzo-floss destination_errors destination_errors 🏷ïļ activerecord 🏷ïļ errors rails rails ruby ruby 🏷ïļ view
View destination_errors blog →

month-serializer

Serialize Month objects to Integer

👊 active-record galtzo-floss galtzo-floss month-serializer month-serializer 🏷ïļ data ruby ruby 🏷ïļ serialization
View month-serializer blog →

Logging Tools

debug_logging

Unobtrusive debug logging for Ruby. NO LITTERING. Automatically log selected methods and their arguments as they are called at runtime!

👊 logging-family galtzo-floss galtzo-floss debug_logging debug_logging 🏷ïļ log ruby ruby
View debug_logging blog →

require_bench

Ruby app loading slowly, or never? Discover bootstrapping issues in Ruby by logging/benchmarking/timing-out/rescuing 'Kernel.require' & 'load'

👊 logging-family galtzo-floss galtzo-floss require_bench require_bench 🏷ïļ errors 🏷ïļ log 🏷ïļ perf ruby ruby
View require_bench blog →

activesupport-logger

Rails v8 ActiveSupport::Logger backported to Rails v5.2+ & Ruby 2.7+

👊 logging-family galtzo-floss galtzo-floss activesupport-logger activesupport-logger 🏷ïļ activesupport 🏷ïļ log rails rails ruby ruby
View activesupport-logger blog →

activesupport-broadcast_logger

Rails v8 ActiveSupport::BroadcastLogger, fixed & backported to Rails v5.2+ & Ruby 2.7+

👊 logging-family galtzo-floss galtzo-floss activesupport-broadcast_logger activesupport-broadcast_logger 🏷ïļ activesupport 🏷ïļ log rails rails ruby ruby
View activesupport-broadcast_logger blog →

activesupport-tagged_logging

Rails v8 ActiveSupport::TaggedLogging, fixed & backported to Rails v5.2+ & Ruby 2.7+

👊 logging-family galtzo-floss galtzo-floss activesupport-tagged_logging activesupport-tagged_logging 🏷ïļ activesupport 🏷ïļ log rails rails ruby ruby
View activesupport-tagged_logging blog →

pretty_feed

PrettyFeed provides a modulizer you can include in a job, worker, class, rake task, etc, which allows for simple pass/fail logging colorization. Defaults are `truthy: 'green'` and `falsey: 'red'`.

👊 logging-family galtzo-floss galtzo-floss pretty_feed pretty_feed 🏷ïļ log ruby ruby
View pretty_feed blog →

react-rails-benchmark_renderer

Concern::Instrumentation Plugin for React::Rails Render Benchmarking with a reference implementation

👊 logging-family galtzo-floss galtzo-floss react-rails-benchmark_renderer react-rails-benchmark_renderer 🏷ïļ log rails rails 🏷ïļ react ruby ruby 🏷ïļ view
View react-rails-benchmark_renderer blog →

humorous_log_formatter

Humorous Log Levels and Color For Rails. Customizable!

👊 logging-family galtzo-floss galtzo-floss humorous_log_formatter humorous_log_formatter 🏷ïļ log ruby ruby
View humorous_log_formatter blog →

RSpec Plugins

appraisal2

Appraisal2 integrates with bundler and rake to test your library against different versions of dependencies in repeatable scenarios called "appraisals."

👊 rspec-family appraisal-rb appraisal-rb appraisal2 appraisal2 bundler bundler ruby ruby 🏷ïļ test
View appraisal2 blog →

rspec-stubbed_env

Stub or hide environment variables in a scoped context for testing stub_env('REDIS_URL' => 'redis://localhost:6379/') hide_env('SESSION_SECRET')

👊 rspec-family galtzo-floss galtzo-floss rspec-stubbed_env rspec-stubbed_env 🏷ïļ env ruby ruby 🏷ïļ test
View rspec-stubbed_env blog →

timecop-rspec

⌚ïļ Timecop::Rspec provides Timecop time-machines for RSpec that allow youto time-travel test examples, context/describes, and/or your entire test suite. Find out how your code will behave... in the future! Fund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev

👊 rspec-family galtzo-floss galtzo-floss timecop-rspec timecop-rspec 🏷ïļ data ruby ruby 🏷ïļ test
View timecop-rspec blog →

rspec-block_is_expected

subject { Integer(nil) }; it('raises') { block_is_expected.to raise_error(TypeError) }

👊 rspec-family galtzo-floss galtzo-floss rspec-block_is_expected rspec-block_is_expected 🏷ïļ errors ruby ruby 🏷ïļ test
View rspec-block_is_expected blog →

rspec-pending_for

âģïļ Mark specs pending or skipped for specific Ruby engine (e.g. MRI or JRuby) & versions, or version ranges. Fund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev

👊 rspec-family galtzo-floss galtzo-floss rspec-pending_for rspec-pending_for ruby ruby 🏷ïļ test
View rspec-pending_for blog →

silent_stream

🔕 (formerly) ActiveSupport Kernel Reporting Detritus with a few enhancementsFund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev

👊 rspec-family galtzo-floss galtzo-floss silent_stream silent_stream 🏷ïļ log ruby ruby 🏷ïļ test
View silent_stream blog →

json_schemer-fuzz

Fuzz generator for json_schemer

👊 rspec-family galtzo-floss galtzo-floss json_schemer-fuzz json_schemer-fuzz ruby ruby 🏷ïļ test
View json_schemer-fuzz blog →

Looking for Maintainers!

rack-insight

Debugging toolbar for Rack applications implemented as middleware. Based on logical-insight and rack-bug.

👊 adoptable-family 🏷ïļ pboling rack-insight rack-insight 🏷ïļ rack ruby ruby 🏷ïļ view
View rack-insight blog →

rack-toolbar

Provides an easy way to create Rack Middleware that injects things into the response body. Extracted from rack-insight.

👊 adoptable-family galtzo-floss galtzo-floss rack-toolbar rack-toolbar 🏷ïļ rack ruby ruby 🏷ïļ view
View rack-toolbar blog →

capistrano_mailer

Capistrano Deployment Email Notification. Keep the whole team informed of each release!

👊 adoptable-family galtzo-floss galtzo-floss capistrano_mailer capistrano_mailer 🏷ïļ email 🏷ïļ release ruby ruby
View capistrano_mailer blog →

remit

An API for using the Amazon Flexible Payment Service (FPS).

👊 adoptable-family 🏷ïļ tylerhunt remit remit 🏷ïļ api 🏷ïļ aws ruby ruby
View remit blog →

celluloid-io-pg-listener

Asynchronously LISTEN for Postgresql NOTIFY messages with payloads and Do Something

👊 adoptable-family galtzo-floss galtzo-floss celluloid-io-pg-listener celluloid-io-pg-listener 🏷ïļ concurrency ruby ruby
View celluloid-io-pg-listener blog →

letter_group

Organize data results from raw sql queries (as with PGresult, or Dossier) intelligently.

👊 adoptable-family galtzo-floss galtzo-floss letter_group letter_group 🏷ïļ data ruby ruby
View letter_group blog →

awesome_search

Organize complicated search results

👊 adoptable-family galtzo-floss galtzo-floss awesome_search awesome_search 🏷ïļ api ruby ruby
View awesome_search blog →

include_with_respect

Find out if your Module include/extend hooks are misbehaving!

👊 adoptable-family galtzo-floss galtzo-floss include_with_respect include_with_respect ruby ruby 🏷ïļ test
View include_with_respect blog →

sequential_file

Create Files Named Sequentially Intelligently

👊 adoptable-family galtzo-floss galtzo-floss sequential_file sequential_file ruby ruby 🏷ïļ shell
View sequential_file blog →

strict_states

Safely access state machine states with guarantee that there are no typos. Compatible with all Ruby state machine libraries.

👊 adoptable-family galtzo-floss galtzo-floss strict_states strict_states ruby ruby 🏷ïļ state-machine 🏷ïļ validation
View strict_states blog →

Thanks for the Memories!

cacheable_flash

Allows caching of pages with flash messages by rendering flash messages from a cookie using JavaScript, instead of statically in your Rails view template. Flash contents are converted to JSON and placed in a cookie by an after_filter (default) or a Rack Middleware (option).

👊 archived-family 🏷ïļ pboling cacheable_flash cacheable_flash 🏷ïļ flash rails rails ruby ruby
View cacheable_flash blog →

stackable_flash

Allows flashes to stack intelligently, while preserving existing behavior of the Rails FlashHash

👊 archived-family 🏷ïļ pboling stackable_flash stackable_flash 🏷ïļ flash ruby ruby
View stackable_flash blog →

Rails Plugins

dynamoid

Dynamoid is an ORM for Amazon's DynamoDB that supports offline development, associations, querying, and everything else you'd expect from an ActiveRecord-style replacement.

👊 rails-family Dynamoid Dynamoid 🏷ïļ api 🏷ïļ aws ruby ruby
View dynamoid blog →

sanitize_email

Email Condom for your Ruby Server. In Rails, Sinatra, et al, or simply the mail gem: Aids in development, testing, qa, and production troubleshooting of email issues without worrying that emails will get sent to actual live addresses.

👊 rails-family galtzo-floss galtzo-floss sanitize_email sanitize_email 🏷ïļ email rails rails ruby ruby 🏷ïļ test
View sanitize_email blog →

rails

Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.

👊 rails-family rails rails
View rails blog →

dry_views

Provides extensions to ActionView::Helpers::CaptureHelper: content_for_with_default, no_content_for, and an enhanced content_for that plays nice with friends

👊 rails-family galtzo-floss galtzo-floss dry_views dry_views rails rails ruby ruby 🏷ïļ view
View dry_views blog →

status_tag

Provides content_tag_for method signature to create customizable and logic-gated labels from objects. Also includes a presenter base class to allow any Ruby web framework to create logic around HTML tags

👊 rails-family galtzo-floss galtzo-floss status_tag status_tag rails rails ruby ruby 🏷ïļ view
View status_tag blog →

controller_validator

Use the familiar ActiveModel::Errors pattern for controller validations

👊 rails-family galtzo-floss galtzo-floss controller_validator controller_validator rails rails ruby ruby 🏷ïļ validation
View controller_validator blog →

rails_env_local

If existing infrastructure for deployed environments has names that conflict with Rails' default non-deployed environments, e.g., "development" and "test", this gem allows renaming them locally. You can rename "development" to "localdev", for example, to prevent confusion. But before using this gem, consider whether renaming your existing environments to remove the conflict might be a better long-term solution.

👊 rails-family 🏷ïļ pboling rails_env_local rails_env_local 🏷ïļ env rails rails ruby ruby
View rails_env_local blog →

super_exception_notifier

In the Rails v2 era, this was a popular fork of exception_notification, with many extra features. It is now deprecated in favor of the original gem.

👊 rails-family 🏷ïļ pboling super_exception_notifier super_exception_notifier 🏷ïļ email 🏷ïļ errors ruby ruby
View super_exception_notifier blog →

RubyGems/Bundler Plugins

rv

💎ðŸ’Ļ Extremely fast Ruby version and gem manager

👊 rubygems-bundler-family 🏷ïļ spinel-coop rv rv rust rust bundler bundler 🏷ïļ rubygems ruby ruby
View rv blog →

cyclonedx-ruby

Creates CycloneDX Software Bill of Materials (SBOM) from Ruby projects

👊 rubygems-bundler-family 🏷ïļ CycloneDX cyclonedx-ruby cyclonedx-ruby ruby ruby bundler bundler 🏷ïļ gem 🏷ïļ owasp 🏷ïļ sbom
View cyclonedx-ruby blog →

stone_checksums

ðŸ—ŋ Generate both SHA256 & SHA512 checksums into the checksums directory, and git commit them. gem install stone_checksums Then, use the rake task or the script: rake build:generate_checksums gem_checksums Control options with ENV variables! Fund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev

👊 rubygems-bundler-family galtzo-floss galtzo-floss stone_checksums stone_checksums 🏷ïļ cli 🏷ïļ release ruby ruby 🏷ïļ rubygems 🏷ïļ security 🏷ïļ shell
View stone_checksums blog →

bundler

Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably

👊 rubygems-bundler-family ruby ruby bundler bundler
View bundler blog →

gem_bench

* Benchmark different versions of same or similar gems * Copy & Re-namespace any gem to benchmark side-by-side with `benchmarks-ips` * Enforce Gemfile version constraints * Regex search across all installed gem's source code to find issues quickly * Trim down app load times by keeping your worst players on the bench (useful for beating Heroku slug load time cutoff)

👊 rubygems-bundler-family galtzo-floss galtzo-floss gem_bench gem_bench bundler bundler 🏷ïļ log 🏷ïļ parsing 🏷ïļ perf ruby ruby
View gem_bench blog →

ore-light

Lean, Bundler-compatible gem manager written in Go

👊 rubygems-bundler-family 🏷ïļ contriboss ore-light ore-light bundler bundler 🏷ïļ cli go go ruby ruby 🏷ïļ rubygems
View ore-light blog →

floss_funding

Help overlooked open source projects - the ones at the bottom of the stack, and the dev dependencies - by funding them.

👊 rubygems-bundler-family floss-funding floss-funding floss_funding floss_funding 🏷ïļ experimental 🏷ïļ meta ruby ruby
View floss_funding blog →

gemfile-go

Pure Go parser for Ruby Gemfile and Gemfile.lock files

👊 rubygems-bundler-family 🏷ïļ contriboss gemfile-go gemfile-go bundler bundler 🏷ïļ cli go go ruby ruby 🏷ïļ rubygems 🏷ïļ grammar
View gemfile-go blog →

setup-ruby-flash

GHA: ⚡ïļFast Setup of Ruby & Gems via rv & ore (alternative to setup-ruby, with fallback to setup-ruby)

👊 rubygems-bundler-family appraisal-rb appraisal-rb setup-ruby-flash setup-ruby-flash ruby ruby rust rust go go bundler bundler 🏷ïļ rubygems 🏷ïļ ci 🏷ïļ test
View setup-ruby-flash blog →

skywalking-eyes

A full-featured license tool to check and fix license headers and resolve dependencies' licenses. I added compatibility with rubygems and bundler. Enhanced the license checker dataset to include all licenses on spdx.org. Added configurations for ASF Category A and B licenses. Enabled specification of FSF Free/Libre and OSI Approved requirements. Learn how to add it to your project!

👊 rubygems-bundler-family 🏷ïļ apache skywalking-eyes skywalking-eyes 🏷ïļ ci 🏷ïļ cli go go 🏷ïļ license 🏷ïļ shell bundler bundler 🏷ïļ rubygems 🏷ïļ validation
View skywalking-eyes blog →

Kettle-RB Family

kettle-dev

ðŸē Kettle::Dev is a meta tool from kettle-rb to streamline development and testing. Acts as a shim dependency, pulling in many other dependencies, to give you OOTB productivity with a RubyGem, or Ruby app project. Configures a complete set of Rake tasks, for all the libraries is brings in, so they arrive ready to go. Fund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev

👊 kettle-rb-family kettle-rb kettle-rb kettle-dev kettle-dev 🏷ïļ ci 🏷ïļ cli 🏷ïļ env 🏷ïļ license 🏷ïļ log 🏷ïļ markdown 🏷ïļ rake 🏷ïļ release ruby ruby 🏷ïļ shell 🏷ïļ test 🏷ïļ vcs
View kettle-dev blog →

kettle-test

ðŸē Kettle::Test is a meta tool from kettle-rb to streamline testing. Acts as a shim dependency, pulling in many other dependencies, to give you OOTB productivity with a RubyGem, or Ruby app project. Configures RSpec w/ syntactic sugar to make writing tests, and testing more scenarios, easier.Configures each dependency library for proper use in the test suite, so they arrive ready to go. Fund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev

👊 kettle-rb-family kettle-rb kettle-rb kettle-test kettle-test 🏷ïļ env 🏷ïļ rake ruby ruby 🏷ïļ test
View kettle-test blog →

kettle-soup-cover

A Covered Kettle of Test Coverage SOUP (Software of Unknown Provenance) Four-line SimpleCov config, w/ curated, opinionated, pre-configured, dependencies for every CI platform, batteries included.

👊 kettle-rb-family kettle-rb kettle-rb kettle-soup-cover kettle-soup-cover 🏷ïļ env ruby ruby 🏷ïļ test
View kettle-soup-cover blog →

Ruby OpenID Family

ruby-openid

A library for consuming and serving OpenID identities.

ruby-openid ruby-openid 🏷ïļ api 🏷ïļ openid ruby ruby 🏷ïļ security
View ruby-openid blog →

rack-openid

Provides a more HTTPish API around the ruby-openid library

ruby-openid ruby-openid rack-openid rack-openid 🏷ïļ api 🏷ïļ openid ruby ruby 🏷ïļ security
View rack-openid blog →

omniauth-openid

OpenID (not OIDC) strategy for OmniAuth.

ruby-openid ruby-openid omniauth-openid omniauth-openid 🏷ïļ api 🏷ïļ openid ruby ruby 🏷ïļ security
View omniauth-openid blog →

open_id_authentication

Provides a thin wrapper around the excellent rack-openid2 gem.

ruby-openid ruby-openid open_id_authentication open_id_authentication 🏷ïļ api 🏷ïļ openid ruby ruby 🏷ïļ security
View open_id_authentication blog →

masq

Masq supports OpenID 2.0 and supports SReg, AX (fetch and store requests) and PAPE as well as some custom additions like multi-factor authentication using a yubikey

ruby-openid ruby-openid masq masq 🏷ïļ api 🏷ïļ openid ruby ruby 🏷ïļ security
View masq blog →

rots

Ruby OpenID Test Server (ROTS) provides a basic OpenID server made in top of the Rack gem. With this small server, you can make dummy OpenID request for testing purposes, the success of the response will depend on a parameter given on the URL of the authentication request.

ruby-openid ruby-openid rots rots 🏷ïļ openid ruby ruby 🏷ïļ security 🏷ïļ test
View rots blog →

ruby-openid2

Originally a fork. Has been merged back to the original gem.

ruby-openid ruby-openid ruby-openid2 ruby-openid2 🏷ïļ api 🏷ïļ openid ruby ruby 🏷ïļ security
View ruby-openid2 blog →

rack-openid2

Originally a fork. Has been merged back to the original gem.

ruby-openid ruby-openid rack-openid2 rack-openid2 🏷ïļ api 🏷ïļ openid ruby ruby 🏷ïļ security
View rack-openid2 blog →

masq2

Originally a fork. Has been merged back to the original gem.

ruby-openid ruby-openid masq2 masq2 🏷ïļ api 🏷ïļ openid ruby ruby 🏷ïļ security
View masq2 blog →

Ruby OAuth Family

oauth2

Ruby OAuth 2.0 framework for building OAuth providers and clients

ruby-oauth ruby-oauth oauth2 oauth2 🏷ïļ api oauth oauth ruby ruby 🏷ïļ security
View oauth2 blog →

oauth

🔑 A Ruby wrapper for the original OAuth 1.0 / 1.0a spec.

ruby-oauth ruby-oauth oauth oauth 🏷ïļ api ruby ruby 🏷ïļ security
View oauth blog →

oauth-tty

ðŸ–Ĩïļ OAuth 1.0 / 1.0a TTY Command Line Interface

ruby-oauth ruby-oauth oauth-tty oauth-tty 🏷ïļ api 🏷ïļ cli oauth oauth ruby ruby 🏷ïļ security
View oauth-tty blog →

warden_oauth

warden_oauth will help you create oauth authentication strategies using the oauth helper method on the Warden::Manager config setup

ruby-oauth ruby-oauth warden_oauth warden_oauth 🏷ïļ api oauth oauth ruby ruby 🏷ïļ security
View warden_oauth blog →

snaky_hash

A Hashie::Mash joint to make #snakelife better

ruby-oauth ruby-oauth snaky_hash snaky_hash ruby ruby 🏷ïļ serialization
View snaky_hash blog →

version_gem

🔖 Versions are good. Versions are cool. Versions will win.

ruby-oauth ruby-oauth version_gem version_gem 🏷ïļ release ruby ruby 🏷ïļ test
View version_gem blog →

OmniAuth Family

omniauth-identity

Traditional username/password based authentication system for OmniAuth

👊 omniauth-family omniauth omniauth omniauth-identity omniauth-identity 🏷ïļ api ruby ruby 🏷ïļ security
View omniauth-identity blog →

omniauth-ldap

A LDAP strategy for OmniAuth.

👊 omniauth-family omniauth omniauth omniauth-ldap omniauth-ldap 🏷ïļ api ruby ruby 🏷ïļ security
View omniauth-ldap blog →

omniauth-jwt

An OmniAuth strategy to accept JWT-based single sign-on.

👊 omniauth-family omniauth omniauth omniauth-jwt omniauth-jwt 🏷ïļ api ruby ruby 🏷ïļ security
View omniauth-jwt blog →

omniauth-jwt2

Originally a fork. Has been merged back to the original gem.

👊 omniauth-family omniauth omniauth omniauth-jwt2 omniauth-jwt2 🏷ïļ api ruby ruby 🏷ïļ security
View omniauth-jwt2 blog →

Resque Family

resque

Resque is a Redis-backed Ruby library for creating background jobs, placing them on multiple queues, and processing them later.

👊 resque-family resque resque 🏷ïļ cli 🏷ïļ queue ruby ruby 🏷ïļ shell
View resque blog →

resque-unique_in_queue

A resque plugin that ensures job uniqueness at enqueue time.

👊 resque-family resque resque resque-unique_in_queue resque-unique_in_queue 🏷ïļ queue ruby ruby 🏷ïļ uniq
View resque-unique_in_queue blog →

resque-unique_at_runtime

Ensures that for a given queue, only one worker is working on a job at any given time. Example: require 'resque/plugins/unique_at_runtime' class StrictlySerialJob include Resque::Plugins::UniqueAtRuntime @queue = :serial_work def self.perform # only one at a time in this block, no parallelism allowed for this # particular queue end end

👊 resque-family resque resque resque-unique_at_runtime resque-unique_at_runtime 🏷ïļ queue ruby ruby 🏷ïļ uniq
View resque-unique_at_runtime blog →

resque-unique_by_arity

Configure resque-unique_in_queue and resque-unique_at_runtime uniqueness by arity of perform method, with automated cleanup tools

👊 resque-family resque resque resque-unique_by_arity resque-unique_by_arity 🏷ïļ queue ruby ruby 🏷ïļ uniq
View resque-unique_by_arity blog →

resque-lonely_job

Ensures that for a given queue, only one worker is working on a job at any given time. Example: require 'resque/plugins/lonely_job' class StrictlySerialJob extend Resque::Plugins::LonelyJob @queue = :serial_work def self.perform # only one at a time in this block, no parallelism allowed for this # particular queue end end

👊 resque-family resque resque resque-lonely_job resque-lonely_job 🏷ïļ queue ruby ruby 🏷ïļ uniq
View resque-lonely_job blog →

qfill

Advanced Queue Transformation

👊 resque-family galtzo-floss galtzo-floss qfill qfill 🏷ïļ data 🏷ïļ queue resque resque ruby ruby
View qfill blog →

RuboCop-LTS Family

rubocop-lts

Configure RuboCop + a bevy of friends to gradually lint Ruby code

rubocop-lts rubocop-lts 🏷ïļ rubocop ruby ruby
View rubocop-lts blog →

rubocop-ruby1_8

Configure RuboCop + a bevy of friends to gradually lint Ruby 1.8 code

rubocop-lts rubocop-lts rubocop-ruby1_8 rubocop-ruby1_8 🏷ïļ rubocop ruby ruby
View rubocop-ruby1_8 blog →

rubocop-ruby1_9

Configure RuboCop + a bevy of friends to gradually lint Ruby 1.9 code

rubocop-lts rubocop-lts rubocop-ruby1_9 rubocop-ruby1_9 🏷ïļ rubocop ruby ruby
View rubocop-ruby1_9 blog →

rubocop-ruby2_0

Configure RuboCop + a bevy of friends to gradually lint Ruby 2.0 code

rubocop-lts rubocop-lts rubocop-ruby2_0 rubocop-ruby2_0 🏷ïļ rubocop ruby ruby
View rubocop-ruby2_0 blog →

rubocop-ruby2_1

Configure RuboCop + a bevy of friends to gradually lint Ruby 2.1 code

rubocop-lts rubocop-lts rubocop-ruby2_1 rubocop-ruby2_1 🏷ïļ rubocop ruby ruby
View rubocop-ruby2_1 blog →

rubocop-ruby2_2

Configure RuboCop + a bevy of friends to gradually lint Ruby 2.2 code

rubocop-lts rubocop-lts rubocop-ruby2_2 rubocop-ruby2_2 🏷ïļ rubocop ruby ruby
View rubocop-ruby2_2 blog →

rubocop-ruby2_3

Configure RuboCop + a bevy of friends to gradually lint Ruby 2.3 code

rubocop-lts rubocop-lts rubocop-ruby2_3 rubocop-ruby2_3 🏷ïļ rubocop ruby ruby
View rubocop-ruby2_3 blog →

rubocop-ruby2_4

Configure RuboCop + a bevy of friends to gradually lint Ruby 2.4 code

rubocop-lts rubocop-lts rubocop-ruby2_4 rubocop-ruby2_4 🏷ïļ rubocop ruby ruby
View rubocop-ruby2_4 blog →

rubocop-ruby2_5

Configure RuboCop + a bevy of friends to gradually lint Ruby 2.5 code

rubocop-lts rubocop-lts rubocop-ruby2_5 rubocop-ruby2_5 🏷ïļ rubocop ruby ruby
View rubocop-ruby2_5 blog →

rubocop-ruby2_6

Configure RuboCop + a bevy of friends to gradually lint Ruby 2.6 code

rubocop-lts rubocop-lts rubocop-ruby2_6 rubocop-ruby2_6 🏷ïļ rubocop ruby ruby
View rubocop-ruby2_6 blog →

rubocop-ruby2_7

Configure RuboCop + a bevy of friends to gradually lint Ruby 2.7 code

rubocop-lts rubocop-lts rubocop-ruby2_7 rubocop-ruby2_7 🏷ïļ rubocop ruby ruby
View rubocop-ruby2_7 blog →

rubocop-ruby3_0

Configure RuboCop + a bevy of friends to gradually lint Ruby 3.0 code

rubocop-lts rubocop-lts rubocop-ruby3_0 rubocop-ruby3_0 🏷ïļ rubocop ruby ruby
View rubocop-ruby3_0 blog →

rubocop-ruby3_1

Configure RuboCop + a bevy of friends to gradually lint Ruby 3.1 code

rubocop-lts rubocop-lts rubocop-ruby3_1 rubocop-ruby3_1 🏷ïļ rubocop ruby ruby
View rubocop-ruby3_1 blog →

rubocop-ruby3_2

Configure RuboCop + a bevy of friends to gradually lint Ruby 3.2 code

rubocop-lts rubocop-lts rubocop-ruby3_2 rubocop-ruby3_2 🏷ïļ rubocop ruby ruby
View rubocop-ruby3_2 blog →

standard-rubocop-lts

Enables Ruby projects to more confidently support even the most finely-aged Rubies. Part of the rubocop-lts family.

rubocop-lts rubocop-lts standard-rubocop-lts standard-rubocop-lts 🏷ïļ rubocop ruby ruby
View standard-rubocop-lts blog →

Miscellanous

rexml

An XML toolkit for Ruby

👊 miscellaneous ruby ruby rexml rexml 🏷ïļ data 🏷ïļ serialization 🏷ïļ xml
View rexml blog →

archivist-client

archivist-client queries archive.org for book data and downloads some things.

👊 miscellaneous 🏷ïļ wordtreefoundation archivist-client archivist-client 🏷ïļ api 🏷ïļ cli ruby ruby 🏷ïļ shell
View archivist-client blog →

awesome-sponsorships

💖 An Open Source Funding How To Awesome List: checklist and inspiration to earn more as a FLOSS developer

👊 miscellaneous galtzo-floss galtzo-floss awesome-sponsorships awesome-sponsorships 🏷ïļ markdown 🏷ïļ meta ruby ruby
View awesome-sponsorships blog →

bash_step

Bash Step Function Library

👊 miscellaneous 🏷ïļ pboling bash_step bash_step bash bash 🏷ïļ cli 🏷ïļ shell
View bash_step blog →

bsfl

Bash Script Function Library

👊 miscellaneous 🏷ïļ pboling bsfl bsfl bash bash 🏷ïļ cli 🏷ïļ shell
View bsfl blog →

bson

A fully featured BSON specification implementation in Ruby

👊 miscellaneous 🏷ïļ mongodb bson bson ruby ruby 🏷ïļ json 🏷ïļ data 🏷ïļ serialization
View bson blog →

gitmoji-regex

😜 A regular expression matching Gitmoji (a subset of Unicode Emoji) symbolsFund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev

👊 miscellaneous galtzo-floss galtzo-floss gitmoji-regex gitmoji-regex 🏷ïļ parsing ruby ruby 🏷ïļ vcs
View gitmoji-regex blog →

hashie

Hashie is a collection of classes and mixins that make hashes more powerful.

👊 miscellaneous hashie hashie ruby ruby 🏷ïļ data
View hashie blog →

library_tree

Builds a tree of module inclusion of a target module into other modules

👊 miscellaneous galtzo-floss galtzo-floss library_tree library_tree 🏷ïļ experimental ruby ruby
View library_tree blog →

logos

ðŸŠĩ A resource for logos, with proper attribution information, including license and copyright, for open source projects I care about.

👊 miscellaneous galtzo-floss galtzo-floss logos logos 🏷ïļ license 🏷ïļ markdown ruby ruby
View logos blog →

os

Easily determine which OS your Ruby code is running on.

👊 miscellaneous 🏷ïļ rdp os os ruby ruby 🏷ïļ test
View os blog →

service_actor-promptable

TTY Prompt plugin for your service objects for your application logic

👊 miscellaneous galtzo-floss galtzo-floss service_actor-promptable service_actor-promptable 🏷ïļ cli ruby ruby 🏷ïļ service-objects
View service_actor-promptable blog →

shields-badge

Shields::Badge.gem_total_downloads(path_parameters: {gem: 'rails'}) => "[![RubyGems Total Downloads](https://img.shields.io/gem/dt/rails?)](https://rubygems.org/gems/rails)"

👊 miscellaneous galtzo-floss galtzo-floss shields-badge shields-badge 🏷ïļ markdown ruby ruby
View shields-badge blog →

undrive_google

ðŸī Liberate files from your Google Drive with transformations

👊 miscellaneous galtzo-floss galtzo-floss undrive_google undrive_google 🏷ïļ api 🏷ïļ cli ruby ruby 🏷ïļ shell
View undrive_google blog →

yacs

Yet Another Crypto Scanner; Alternative Front End Demo for DEX

👊 miscellaneous 🏷ïļ pboling yacs yacs 🏷ïļ api 🏷ïļ react typescript typescript
View yacs blog →

yaml-converter

ðŸĨĻ yaml-converter parses YAML files (with inline #note: annotations and validation markers) and emits polished Markdown, HTML, and PDF/DOCX (via pandoc) outputs including a validation status line, fenced YAML blocks, and extracted notes.

👊 miscellaneous galtzo-floss galtzo-floss yaml-converter yaml-converter ruby ruby
View yaml-converter blog →

yard-fence

ðŸĪš Convert ASCII braces ('{}') to full-width braces ('{}') within code fences (triple-or-single backticks) during YARD processing, and back to ASCII braces afterward

👊 miscellaneous galtzo-floss galtzo-floss yard-fence yard-fence ruby ruby
View yard-fence blog →

yard-yaml

ðŸĨĻ A YARD plugin for YAML documents

👊 miscellaneous galtzo-floss galtzo-floss yard-yaml yard-yaml ruby ruby
View yard-yaml blog →