| CARVIEW |
intridea / hashie
- Source
- Commits
- Network (6)
- Issues (0)
- Downloads (7)
- Wiki (1)
- Graphs
-
Branch:
master
Pledgie Donations
Once activated, we'll place the following badge in your repository's detail box:
Hashie is a simple collection of useful Hash extensions. — Read more
| name | age | message | |
|---|---|---|---|
| |
.document | Wed Sep 02 18:32:57 -0700 2009 | Initial commit to hashie. [mbleigh] |
| |
.gitignore | Thu Nov 12 22:30:45 -0800 2009 | Removes a debugging puts and updates the .gitig... [hassox] |
| |
LICENSE | Thu Nov 12 06:08:55 -0800 2009 | Adding README [mbleigh] |
| |
README.rdoc | Thu Nov 12 07:06:13 -0800 2009 | Updates README [mbleigh] |
| |
Rakefile | Thu Nov 12 06:08:55 -0800 2009 | Adding README [mbleigh] |
| |
VERSION | Thu Jan 14 09:14:48 -0800 2010 | Version bump to 0.1.8 [mbleigh] |
| |
hashie.gemspec | Thu Jan 14 09:14:48 -0800 2010 | Regenerated gemspec for version 0.1.8 [mbleigh] |
| |
lib/ | Thu Jan 14 09:13:53 -0800 2010 | Swapped out class variables to scale the ancest... [benschwarz] |
| |
spec/ | Thu Jan 14 09:13:53 -0800 2010 | Swapped out class variables to scale the ancest... [benschwarz] |
Hashie
Hashie is a growing collection of tools that extend Hashes and make them more useful.
Installation
Hashie is a gem and is available on Gemcutter. If you don’t have Gemcutter, install it:
gem install gemcutter
gem tumble
Then you can install Hashie:
gem install hashie
Mash
Mash is an extended Hash that gives simple pseudo-object functionality that can be built from hashes and easily extended. It is designed to be used in RESTful API libraries to provide easy object-like access to JSON and XML parsed hashes.
Example:
mash = Hashie::Mash.new
mash.name? # => false
mash.name # => nil
mash.name = "My Mash"
mash.name # => "My Mash"
mash.name? # => true
mash.inspect # => <Hashie::Mash name="My Mash">
mash = Mash.new
# use bang methods for multi-level assignment
mash.author!.name = "Michael Bleigh"
mash.author # => <Hashie::Mash name="Michael Bleigh">
Dash
Dash is an extended Hash that has a discrete set of defined properties and only those properties may be set on the hash. Additionally, you can set defaults for each property.
Example:
class Person < Hashie::Dash
property :name
property :email
property :occupation, :default => 'Rubyist'
end
p = Person.new
p.name # => nil
p.email = 'abc@def.com'
p.occupation # => 'Rubyist'
p.email # => 'abc@def.com'
p[:awesome] # => NoMethodError
p[:occupation] # => 'Rubyist'
p = Person.new(:name => "Bob")
p.name # => 'Bob'
p.occupation # => 'Rubyist'
Note on Patches/Pull Requests
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so I don’t break it in a future version unintentionally.
- Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
- Send me a pull request. Bonus points for topic branches.
Authors
- Michael Bleigh
Copyright
Copyright © 2009 Intridea, Inc (intridea.com/). See LICENSE for details.
