Sha256: 60f309b02b461771ceda01482d3808aa77391ca81949f05767413b4a525f338e

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 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.5 README.md