Skip to content

Latest commit

 

History

History
executable file
·
66 lines (37 loc) · 2.21 KB

README.md

File metadata and controls

executable file
·
66 lines (37 loc) · 2.21 KB

Cem = Christopher's Ruby Gem of Common Helpers

This gem is an assorted collection of common helpers that I use in a lot of projects.

Installation

$ gem install cem

Usage

require 'cem'

Key things includes:

crequire

crequire is a replacement for require for situations where bundler would be overkill. It solves the frustration of having to manually install gems to run a particular ruby script which requires other gems.

For example when you want to require qml from the ruby-qml gem, use the following line:

crequire 'qml', 'ruby-qml'

This will attempt to require qml and if it can't be found in the local RubyGems, then it will try to gem install ruby-qml

Array::with_progress

Monkey patches Array to return an enumeration which prints progress while lazy evaluating the enumeration.

require 'cem'
[a,b,c].with_progress.each { |x|
  puts x
}

Uses the progress bar gem.

Numeric monkey patch

Make all methods in Math module available as methods for numeric (e.g. 3.sqrt instead of Math.sqrt(3))

Advent of Code Puzzle Helpers

Defines integer based Point2D, Seg2D (line segment), Dir2D (relative direction in 2D), Point3D, Grid (2D array) to help with Advent of Code puzzles, by providing commonly needed methods such as manhattan distances, string to indices conversion, enumeration of adjacent cells, etc.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rspec to run the tests.

To install this gem onto your local machine, run bundle exec rake install.

To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/coezbek/cem.

License

The gem is available as permissive open source under the terms of the MIT License.

What's with the name?

Cem is pronounced like Jam in Turkish, which is close enough to Gem and exactely short enough to type.