Skip to content

obrok/closed_struct

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClosedStruct

Build Status

ClosedStructs work like OpenStruct, with the exception of being immutable and not responding to methods which haven't been listed in the input hash

Installation

Add this line to your application's Gemfile:

gem 'closed_struct'

And then execute:

$ bundle

Or install it yourself as:

$ gem install closed_struct

Usage

ClosedStruct.new(:a => :b).a # => :b
ClosedStruct.new("a" => :b).a # => :b
ClosedStruct.new(:a => :b).c # => raises NoMethodError

# It won't allow you to have name clashes in the input:

ClosedStruct.new(:a => :b, "a" => :b) # => raises ArgumentError

# You can also attach additional methods to your objects like so:
ClosedStruct.new(:a => :b) do
  def some_method(whatever)
    :something
  end
end

Contributing

  1. Fork it ( https://github.com/obrok/closed_struct/fork )
  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 a new Pull Request

About

An immutable, strict version of OpenStruct

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages