Tiny path.extname method
JavaScript utilities with respect to emerging standard
A set of efficient utilities that extend the use of JSON (streaming, estimate size, NDJSON/JSONL, etc.)
ECMAScript extensions and shims
Get the file extension and MIME type from a file
Timers extensions
MCP Apps SDK — Enable MCP servers to display interactive user interfaces in conversational clients.
Replaces a file extension with another one.
A tool to open and run web extensions
m3u8 parser
Extensions to Node.js child_process module
List of known file extensions and their MIME types
JSON Schema validation for Human
A command line tool to help build, run, and test web extensions
A set of cool extensions for OpenLayers (ol) in node modules structure
Type definitions for ol-ext
Type definitions for web-ext CLI options
TypeScript definitions for webgl-ext
lightweight and cute API client for AT Protocol
Extensions to core 'fs' module.
PostCSS plugin to import CSS files
Self-host the Inter font in a neatly bundled NPM package.
A WebGL memory tracker
RDF-Ext is a developer-friendly extension for RDF/JS
A command-line tool that uses OpenAI’s models to automatically translate `gettext` messages in source code and `.po` files. Thought for Phoenix projects.
Set of useful generic EGUI widgets.
An implementation of Gettext translation framework for Rust
A few proc-macros to help internationalizing Rust applications
Model Context Protocol (MCP) server for managing GNU gettext .po/.pot translation files, with CRUD tools and an optional web UI.
A tweaked implementation of Gettext translation framework for Rust for NG's projects
Safe bindings for gettext
Raw FFI bindings for gettext
Utility crate for gettext-macros
A library for getting text from JSON usually for internationalization.
ratatui widgets extended edition
A deserializable struct to translate and format
Finally attr_accessor? & attr_reader? with question marks for booleans/predicates!? To get started, pick one: (1) in your class/module/file, add `using AttrBool::Ref`, or (2) in your class/module, add `extend AttrBool::Ext`, or (3) in your app/script (not library), include `require 'attr_bool/core_ext'`. Now simply use any: [ attr_accessor?, attr_reader?, attr_writer?, attr_bool, attr_bool?, attr_bool! ]. Keywords: attr, attribute, attributes, bool, boolean, booleans, predicate, predicates
{<img src="https://secure.travis-ci.org/socialcast/socialcast-shoulda-ext.png?branch=master" alt="Build Status" />}[http://travis-ci.org/socialcast/socialcast-shoulda-ext] = Socialcast Shoulda Extensions Adds new matchers and functionality to the shoulda test library = Installation In your Gemfile: group :test do gem 'socialcast_shoulda_ext', :git => 'git@github.com:socialcast/socialcast-shoulda-ext.git', :require => 'shoulda_ext' end If you want to include the trigger_callbacks matcher, also add the following to your test helper: ShouldaExt::Matchers::TriggerCallbackMatcher.attach_active_record_callback_hooks! = Matchers == RecordCountChangeMatcher Test if the count for a model has changed, and by how much. Requires the context_with_matcher_before_hooks patch, which is included by default. Provides the following matcher methods: - create_record(klass_or_symbol) Alias for change_record_count.for(klass_or_symbol).by(1) - create_records(klass_or_symbol, amount) Alias for change_record_count.for(klass_or_symbol).by(amount) - destroy_record(klass_or_symbol) Alias for change_record_count.for(klass_or_symbol).by(-1) - destroy_records(klass_or_symbol, amount) Alias for change_record_count.for(klass_or_symbol).by(-amount) - change_record_count Tests the difference in record count before and after the current setup/subject block Can be used with the follow methods: - for(klass_or_symbol) Provides the class which the test is being performed on. Can be a constant or a symbol - by(amount) Provides an expected difference for the number of records for the specified class. Excluding this number will allow the matcher to check for any difference Examples: context "creating a blog article" do context "with good parameters" do setup do post :create, :blog => {:title => 'my blog post', :body => 'Ipsum lorem...'} end should create_record :blog end context "without a body" do setup do post :create, :blog => {:title => 'my blog post' } end should_not create_record Blog end end == RespondWithJson Check if the controller's response is json Examples: context ":index.json" do setup do get :index, :format => 'json' end # Just check to see that the response was json should respond_with_json # Evaluate the hash produced by the json yourself should respond_with_json { |json| json.first['blog']['title'] == 'blog post 1'} # Provide an exact match should respond_with_json.exactly(['blog' => {'id' => 1, 'title' => 'blog post 1'}]) # Provide an exact match with a block should response_with_json.exactly{ |json| JSON.parse(Blog.all.to_json)} end context ":index.html" do setup do get :index end # or the negation should_not respond_with_json end == TriggerCallbackMatcher Test if create, update, destroy, or save callbacks were triggered. Requires running ShouldaExt::Matchers::TriggerCallbackMatcher.attach_active_record_callback_hooks! in your test suite in order to work properly. Examples: context "doing nothing to a record" do subject { Blog.new :title => 'blog title' } should_not trigger_callbacks end context "creating a record" do subject { Blog.create! :title => 'blog title' } should trigger_callbacks.for :create should_not trigger_callbacks.for :update, :destroy end = Integrations Currently only integrates with test/unit. RSpec support to come. = Shoulda Extensions == ContextWithMatcherBeforeHooks Adds the ability to define a 'before' method on any method which will be run before each context's setup/subject block. Used by RecordCountChangeMatcher to record the number of records before the tested operation takes place.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.