disu.se

Software

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 these pieces 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 any of these pieces 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!

Ame

Ame provides a simple command-line interface API for Ruby. It can be used to provide both simple interfaces like that of rm and complex ones like that of git. It uses Ruby’s own classes, methods, and argument lists to provide an interface that is both simple to use from the command-line side and from the Ruby side. The provided command-line interface is flexible and follows commond standards for command-line processing.

Inventory

Inventory keeps track of the contents of your Ruby projects. Such an inventory can be used to load the project, create gem specifications and gems, run unit tests, compile extensions, and verify that the project’s content is what you think it is.

Inventory-Rake

Inventory-Rake provides Rake tasks for your Inventory. This includes tasks for cleaning up our project, compiling extensions, installing dependencies, installing and uninstalling the project itself, and creating and pushing distribution files to distribution points.

Inventory-Rake-Tasks-YARD

Inventory-Rake-Tasks-YARD provides Rake tasks for YARD using your Inventory.

Lookout

Lookout is a unit testing framework for Ruby that puts your results in focus. Tests (expectations) are written as follows

expect 2 do
  1 + 1
end

expect ArgumentError do
  Integer('1 + 1')
end

expect Array do
  [1, 2, 3].select{ |i| i % 2 == 0 }
end

expect [2, 4, 6] do
  [1, 2, 3].map{ |i| i * 2 }
end

Lookout is designed to encourage – force, even – unit testing best practices.

Lookout-Rack

Lookout-Rack provides easy interaction with Rack from Lookout. It provides you with a session connected to your Rack application through which you can make requests, check responses, follow redirects and set, inspect, and clear cookies.

Lookout-Rake

Lookout-Rake provides Rake tasks for testing using Lookout.

U

U extends Ruby’s Unicode support. It provides a string class called U::String with an interface that mimics that of the String class in Ruby 2.0, but that can also be used from both Ruby 1.8. This interface also has more complete Unicode support and never modifies the receiver. Thus, a U::String is a value object.

U comes with complete and very accurate documentation. The documentation can realistically also be used as a reference to the Ruby String API and may actually be preferable, as it’s a lot more explicit and complete than the documentation that comes with Ruby.

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.

YARD-Heuristics

YARD-Heuristics heuristically determines types of parameters and return values for YARD documentation that doesn’t explicitly document it. This allows you to write documentation that isn’t adorned with “obvious” types, but still get that information into the output. It also lets you nice-looking references to parameters and have them be marked up appropriately in HTML output.

YARD-Value

YARD-Value provides YARD handlers for Value objects. It’ll document whether the Value is Comparable and what attributes are used in such comparisons, its #initialize method, and its protected accessors.