SQLTerminal.app
now available

XPath.app
now available
Want fresh tech tips in your inbox?

My First Ruby Gem: Hashed_Attributes

       

I just wrote and released my first Ruby Gem, Hashed Attributes https://rubygems.org/gems/hashed_attributes. It is a very simple ActiveRecord extension for saving variables through a serialized hash. The Gem will let you declare getter and setter methods that use a hash to store assigned data. For instance, instead of doing something like

@user.preferences[:favorite_color] = 'orange'
you can do
@user.favorite_color = 'orange'
The value for favorite color will be kept in a serialized hash.

Setup in the model is very straight forward. The first argument is the column name you want to use followed by a list of methods used as keys on the hash.

Example model

class Person < ActiveRecord::Base hashed_attributes :preferences, :favorite_color, :theme, :plan # etc... end

ActiveRecord is required to use this gem. Additionally, you need to add a column in your database.

Sample migration

create_table :people do |t| t.text :preferences end

To install


gem install hashed_attributes
Or place in your Rails Gemfile

gem 'hashed_attributes'

The project code is hosted on Github: https://github.com/bseanvt/hashed_attributes and https://rubygems.org/gems/hashed_attributes

Releasing this gem was a lot of fun and I'm looking forward to writing more gems!

Tagged w/ #gems #github #hashed_attributes #open source #rubgems.org #rubygemsruby gems

Apps I've Built

XPath Expression Editor
Practice and improve your XPath skills with XPath Editor
Click to buy on the App Store
Photo Location Changer
Easily change the location on your photos and videos
Click here for more info about the app
Photo Date Changer
Easily change the dates and times on your photos and videos
Click here for more info about the app
VocabReminder
English dictionary with notifications so you won't forget what you're studying!
Click here for more info about the app
VocabQuiz
The app that quizzes and scores you on your vocabulary!
Click here for more info about the app