Sha256: 5a0abc73eac0a122292e74ca544318f59696d4d870cbd1bdb9c64b7c5c2b9051

Contents?: true

Size: 1.35 KB

Versions: 1

Compression:

Stored size: 1.35 KB

Contents

# ProtectedConstructor

Provides a module that may be included in a Ruby class, that protects the constructor; good for enforcing
instantiation of classes using, for instance, a class factory. The code itself is not mine, I just wrapped it
in a gem and provided the examples; sorry, I don't remember the origin of the code to give credit.

## Installation

Add this line to your application's Gemfile:

    gem 'ProtectedConstructor'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install ProtectedConstructor

## Usage

    require 'ProtectedConstructor'
 
    class Klass
      include ProtectedConstructor
 
      def initialize
      end
    end
 
    module KlassFactory
      class << self
        public
        def create
          Klass.send(:new)
        end
      end
    end
 
      Constructor is not protected.
    klass = Klass.new   NoMethodError
 
      Example using factory...
    klass = KlassFactory::create   works
    klass.nil?   false
    klass.is_a?(Klass)   true
 
      Example just using  send...
    klass = Klass.send(:new)   works
    klass.nil?   false
    klass.is_a?(Klass)   true
 
## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ProtectedConstructor-1.0.4 README.md