Project

begetter

0.0
No commit activity in last 3 years
No release in over 3 years
Begetter creates a reference to a class constant from a string.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 1.10
~> 10.0
~> 3.3.0
 Project Readme

Begetter Build Status

Begetter is a teeny tiny little gem that creates a class constant from a string based name. It is inspired by ActiveSupport's constantize but with-out the ActiveSupport girth.

Installation

Add this line to your application's Gemfile:

gem 'begetter'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install begetter

Usage

Require Begetter:

require 'begetter'

Call Begetter.get with the name of the class you wish to reference:

class FooBar; end

klass_name = 'FooBar'
klass = Begetter.get(klass_name)

foo_bar = klass.new
#=> FooBar

Classes with-in modules work as well:

module Foo
  class Bar; end
end

klass_name = 'Foo::Bar'
klass = Begetter.get(klass_name)

bar = klass.new
#=> Foo::Bar

That's it!

Why?

Do we really need an entire gem to do this? After no less than 3 projects that had heavily dynamic architecture, I found myself building this functionality as a module into each one. There have to be others who will find this moderately useful.

Contributing

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