Skip to content

eventide-project/initializer

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Initializer

The initializer library defines initializers that receive parameters and assign to attributes. It also defines the attributes, allowing the attribute visibility to be declared as well.

Usage

Use the initializer macro to define the initializer method and attributes:

class SomeItem
  initializer :name, :age, :address, :phone_number
end

The above usage is equivalent to:

class SomeItem
  attr_reader :name, :age, :address, :phone_number

  def initialize(name, age, address, phone_number)
    @name = name
    @age = age
    @address = address
    @phone_number = phone_number
  end
end

Visibility

class SomeItem
  initializer r(:name), w(:age), rw(:address), na(:phone_number)
end

The above usage is equivalent to:

class SomeItem
  attr_reader :name
  attr_writer :age
  attr_accessor :address

  def initialize(name, age, address, phone_number)
    @name = name
    @age = age
    @address = address
    @phone_number = phone_number
  end
end
Visibility Effect Equivalent
r Read Only attr_reader
w Write Only attr_writer
rw Read/Write attr_accessor
na No Accessor (none)

Note: The rw visibility can also be aliased as a.

Default Visibility

An attribute that is not declared with an explicit visibility is given the r (read only) visibility by default.

class SomeItem
  initializer :name
end

The above usage is equivalent to:

class SomeItem
  initializer r(:name)
end

Setup

Require initializer library and activate the macro in you're project's boot up code (e.g.: an initializer in a rails app, or some init file in a library, etc):

require 'initializer'
Initializer.activate

It's not strictly necessary to activate the macro "globally". Include initializer specifically in the class that you want to use it in:

class SomeItem
  include Initializer

  initializer :name, :age, :address
end

Installation

RubyGems

gem install evt-initializer

Bundler

gem 'evt-initializer'

License

Initializer is released under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •