Skip to content

Begetter creates a reference to a class constant from a string based name.

License

Notifications You must be signed in to change notification settings

jzahnd/begetter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Begetter creates a reference to a class constant from a string based name.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages