A utility function to detect if a string should be wrapped in quotes to work as an object key
quote and parse shell commands
hast utility to serialize to HTML
Quote a value
transform a stream into a quoted string
Block quote feature for CKEditor 5.
TypeScript definitions for shell-quote
Add quotes to given string unless it already has them
remark-lint rule to check mdx jsx quotes
quote and unquote strings. escapes internal quotes and slashes. Automatically decides whether to use single or double quotes.
xast utility to serialize to XML
Quote Tool for Editor.js
unquote a single shell arguments
Temporary file and directory creator
A user interface for JSON.
Java Script Object eXchange.
Uniswap Smart Order Router
Block quote UI for Plate
Styling for blockquotes, pull-quotes and any other types of quote
RegExp.quote = require('regexp-quote')
Node.js port of Python's shlex shell-like lexer
Streaming CSV parser that aims for maximum speed as well as compatibility with the csv-spectrum test suite
Detect if a string is a data URL
Orca's core typescript package.
PythonConfig is a module with classes for parsing and writing Python configuration files created by the ConfigParser classes in Python. These files are structured like this: [Section Name] key = value otherkey: othervalue [Other Section] key: value3 otherkey = value4 Leading whitespace before values are trimmed, and the key must be the at the start of the line - no leading whitespace there. You can use : or = . Multiline values are supported, as long as the second (or third, etc.) lines start with whitespace: [Section] bigstring: This is a very long string, so I'm not sure I'll be able to fit it on one line, but as long as there is one space before each line, I'm ok. Tabs work too. Also, this class supports interpolation: [Awards] output: Congratulations for winning %(prize)! prize: the lottery Will result in: config.sections["Awards"]["output"] == "Congratulations for winning the lottery!" You can also access the sections with the dot operator, but only with all-lowercase: [Awards] key:value [prizes] lottery=3.2 million config.awards["key"] #=> "value" config.prizes["lottery"] #=> "3.2 million" You can modify any values you want, though to add sections, you should use the add_section method. config.sections["prizes"]["lottery"] = "100 dollars" # someone hit the jackpot config.add_section("Candies") config.candies["green"] = "tasty" When you want to output a configuration, just call its +to_s+ method. File.open("output.ini","w") do |out| out.write config.to_s end
== DESCRIPTION: Welcome to the PDF-Labels project. Our aim is to make creating labels programmatically easy in Ruby. This Library builds on top of "PDF::Writer":http://ruby-pdf.rubyforge.org/ and uses the templates from "gLabels":http://glabels.sourceforge.org. What this means is easy, clean Ruby code to create many common label types without measuring the labels yourself! All of this in pure Ruby (we use the XML templates from gLabels, we do NOT have a dependancy on gLabels, nor on Gnome) == FEATURES/PROBLEMS: * Works with all gLabels supported templates for rectangular labels * Does not yet work for CD labels (circles) == SYNOPSIS: p = PDFLabelPage.new("Avery 8160") # label is 2 x 10 #Some examples of adding labels p.add_label() # should add to col 1, row 1 p.add_label(:position => 1) # should add col 1, row 2 p.add_label(:text => "Positoin 15", :position => 15) # should add col 2, row 1 p.add_label(:text => 'No Margin', :position => 5, :use_margin => false) #this doesn't use a margin p.add_label(:position => 9, :text => "X Offset = 4, Y Offset = -6", :offset_x => 4, :offset_y => -6) p.add_label(:text => "Centered", :position => 26, :justification => :center) # should add col 2, row 15 p.add_label(:text => "[Right justified]", :justification => :right, :position => 28)# col 2, row 14, right justified. p.add_label(:position => 29) # should add col 2, row 15 p.add_label(:position => 8, :text => "This was added last and has a BIG font", :font_size => 18)
A command-line tool (wq) to help you learn 500+ words you should know but probably don't and find inspirational quotes.
deplate is a ruby based tool for converting documents written in an unobtrusive, wiki-like markup to LaTeX, HTML, "HTML slides", or docbook. It supports page templates, embedded LaTeX code, footnotes, citations, bibliographies, automatic generation of an index, table of contents etc. It can be used to create web pages and (via LaTeX or Docbook) high-quality printouts from the same source. deplate probably isn't suited for highly technical documents or documents that require a sophisticated graphical layout. For other purposes it should work fine. deplate aims to be modular and easily extensible. It is the accompanying converter for the Vim viki plugin. In the family of wiki engines, the choice of markup originated from the emacs-wiki.
* http://www.rubysideshow.com/ * http://rubysideshow.rubyforge.org/wrong_answer/ == DESCRIPTION: 30 seconds after requiring wrong_answer, 1% of your comparisons will return false when it should have been true, or true when it should have been false. == FEATURES/PROBLEMS: * Sleeps for 30 seconds, then wrecks havoc == SYNOPSIS: require 'rubygems' require 'wrong_answer' sleep 30 (1..1000).each do puts "Wrong answer!" if true == false end # Wrong answer! # Wrong answer! # Wrong answer! # Wrong answer! # Wrong answer! # Wrong answer! # Wrong answer! # Wrong answer! # Wrong answer! == REQUIREMENTS: * an immature sense of humor * a visit to rickroll.com * a fondness for french fries * wasabe * gas money == INSTALL: * sudo gem install wrong_answer
fast_xs provides C extensions for escaping text. The original String#fast_xs method is based on the xchar code by Sam Ruby: * http://intertwingly.net/stories/2005/09/28/xchar.rb * http://intertwingly.net/blog/2005/09/28/XML-Cleansing _why also packages an older version with Hpricot (patches submitted). The version here should be compatible with the latest version of Hpricot code. Ruby on Rails will automatically use String#fast_xs from either Hpricot or this gem version with the bundled Builder package. String#fast_xs is an almost exact translation of Sam Ruby's original implementation (String#to_xs), but it does escape """ (which is an optional, but all parsers are able ot handle it. XML::Builder as packaged in Rails 2.0 will be automatically use String#fast_xs instead of String#to_xs available.
== FEATURES/PROBLEMS: * Presently a superator operand must support having a singleton class. Because true, false, nil, Symbols, and Fixnums are all specially optimized for in MRI and cannot have singleton classes, they can't be given to a superator. There are ways this can be potentially accounted for, but nothing is in place at the moment, causing this to be classified as a bug. * When defining a superator in a class, any operators overloaded after the superator definition will override a superator definition. For example, if you create the superator "<---" and then define the <() operator, the superator will not work. In this case, the superator's definition should be somewhere after the <() definition. * Superators work by handling a binary Ruby operator specially and then building a chain of unary operators after it. For this reason, a superator must match the regexp /^(\*\*|\*|\/|%|\+|\-|<<|>>|&|\||\^|<=>|>=|<=|<|>|===|==|=~)(\-|~|\+)+$/. == SYNOPSIS:
This is the game I made following the exercises in the Pragmatic Studios Ruby Course. Run studio_game to play a silly game. You can add your own players to the game by creating a CSV file. Each line of the file should contain the player's name and starting health like so : Alvin,100 Simon,60 Theo,125 studio_game "YOUR_PLAYER_FILE_NAME.csv" without the quotes will load your players, otherwise the default "players.csv"" is used. When you quit the game, the players scores are written in the high_scores.txt file. Thanks to Mike and Nicole Clark at Pragmatic Studios for putting together such a great course. All typos and bugs are mine KP
go (to project) do (stuffs) godo provides a smart way of opening a project folder in multiple terminal tabs and, in each tab, invoking a commands appropriate to that project. For example if the folder contains a Rails project the actions might include: starting mongrel, tailing one or more logs, starting consoles or IRB sessions, tailing production logs, opening an editor, running autospec, or gitk. godo works by searching your project paths for a given search string and trying to match it against paths found in one or more configured project roots. It will make some straightforward efforts to disambiguate among multiple matches to find the one you want. godo then uses configurable heuristics to figure out what type of project it is, for example "a RoR project using RSpec and Subversion". From that it will invokes a series of action appropriate to the type of project detected with each action being run, from the project folder, in its own terminal session. godo is entirely configured by a YAML file (~/.godo) that contains project types, heuristics, actions, project paths, and a session controller. A sample configuration file is provided that can be installed using godo --install. godo comes with an iTerm session controller for MacOSX that uses the rb-appscript gem to control iTerm (see lib/session.rb and lib/sessions/iterm_session.rb). It should be relatively straightforward to add new controller (e.g. for Leopard Terminal.app), or a controller that works in a different way (e.g. by creating new windows instead of new tabs). There is nothing MacOSX specific about the rest of godo so creating controllers for other unixen should be straightforward if they can be controlled from ruby. godo is a rewrite of my original 'gp' script (http://matt.blogs.it/entries/00002674.html) which fixes a number of the deficiencies of that script, turns it into a gem, has a better name, and steals the idea of using heuristics to detect project types from Solomon White's gp variant (http://onrails.org/articles/2007/11/28/scripting-the-leopard-terminal). godo now includes contributions from Lee Marlow <lee.marlow@gmail.com> including support for project level .godo files to override the global configuration, support for Terminal.app, and maximum depth support to speed up the finder. godo lives at the excellent GitHub: http://github.com/mmower/godo/ and accepts patches and forks.
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.')
The DevCreek gem enables programmers to collect and transmit metrics from their Ruby Test::Unit and RSpec test suites to a DevCreek server. Please visit the DevCreek site (http://devcreek.com/index.html) for more info. == FEATURES/PROBLEMS: Supported frameworks include Test::Unit and RSpec (> 1.10). == SYNOPSIS: The DevCreek Ruby Gem is library that, when loaded, will automatically listen to and collect metrics from your Test::Unit/RSpec unit tests. All you have to do is load the DevCreek library in your code and give it your DevCreek account info so that it can transmit the metrics to the server. Here is the simplest example of how to load DevCreek: -------- #Load the devcreek gem require 'rubygems' require 'devcreek' #set your account info DevCreek::Core.instance().load_from_yaml("#{ENV['HOME']}/.yoursettingsfile.devcreek.yml") -------- There are two ways to provide DevCreek with your account settings. The first (as shown above) is to point DevCreek to a settings file. The 'enabled' attribute tells devcreek whether or not it should actually transmit the metrics that it collects. The yaml file would like this: -------- user: your_devcreek_username password: your_devcreek_password project: your_devcreek_project enabled: true -------- The other way to provide DevCreek with your settings is via a hash. So, instead of loading a yaml file, you could do this: -------- #Load the devcreek gem require 'rubygems' require 'devcreek' #set your account info DevCreek::Core.instance().load( :user => 'your_devcreek_username', :password => 'your_devcreek_password', :project => 'your_devcreek_project', :enabled => true ) -------- The first method is preferrable because it allows you to keep your account settings outside of your project (and therefore your source control tool). If you only have 1 test file, you can place the code to load devcreek in the test file and your done. However, most projects will have many test files. In this case, you need to make sure that the Ruby interpreter loads devcreek before running the test classes. This can be done via the Ruby '-r' option. For example, assuming your code to load devcreek is in a file called foo.rb, you would run your tests from the command line like this: ruby -r foo.rb test/test_* If you run your tests from a Rakefile, then you need to tell rake to include the -r option when it runs the tests (rake runs it's tests in a separate Ruby process). You can do this pretty easily in your Rakefile, like so; -------- require 'rake/testtask' Rake::TestTask.new('all_tests') do |t| t.ruby_opts = ['-r foo.rb'] t.test_files = ['test/test_*.rb'] end --------