binarylogic / addresslogic

A simple ruby solution to displaying addresses.

This URL has Read+Write access

name age message
file .gitignore Thu May 14 10:29:16 -0700 2009 Release v1.1.1 [binarylogic]
file CHANGELOG.rdoc Sat Aug 15 23:45:51 -0700 2009 * Change :composition_namespace to :namespace [binarylogic]
file LICENSE Sun Jun 28 00:35:16 -0700 2009 Switch to jeweler from hoe [binarylogic]
file README.rdoc Sun Jun 28 00:37:14 -0700 2009 Update readme [binarylogic]
file Rakefile Wed Nov 18 00:10:50 -0800 2009 Updating to use gemcutter [binarylogic]
file VERSION.yml Sat Aug 15 23:46:14 -0700 2009 Version bump to 1.2.1 [binarylogic]
file addresslogic.gemspec Wed Nov 18 00:10:58 -0800 2009 Regenerated gemspec for version 1.2.1 [binarylogic]
file init.rb Thu May 14 09:54:57 -0700 2009 Release v1.1.0 [binarylogic]
directory lib/ Sat Aug 15 23:45:51 -0700 2009 * Change :composition_namespace to :namespace [binarylogic]
directory rails/ Sun Jun 28 00:35:16 -0700 2009 Switch to jeweler from hoe [binarylogic]
directory test/ Sun Jun 28 00:35:16 -0700 2009 Switch to jeweler from hoe [binarylogic]
README.rdoc

Address Logic

This is a simple library that takes away the annoyances of displaying addresses in a view. Since various parts of an address can sometimes be optional, such as "street2", displaying addresses was not fun:

  # some HAML view
  = address.street1
  %br
  - if !address.street2.blank?
    = address.street2
    %br
  == #{address.city}, #{address.state} #{address.zip}
  %br
  = address.country

That’s just ugly. Instead, you can do this with Address Logic:

  = address.address_parts.join("<br />")

Or, what about a single line address?

  = address.address_parts.join(", ")

Maybe you only want city and state:

  = address.address_parts(:only => [:city, :state]).join(", ")

Granted the above is probably easier without using AddressLogic, but it will purge any blank items in the address, so if city or state are optional then it would be cleaner to use AddressLogic.

Install and use

Install from rubyforge

  $ sudo gem install addresslogic

Install from github:

  $ sudo gem install binarylogic-addresslogic

Or as a plugin

  $ sudo script/plugin install git://github.com/binarylogic/addresslogic.git

Then just include the AddressLogic module into any class of your choice. All that it assumes is that you have the street1, street2, city, state, zip, country (optional) methods.

  class Address
    apply_addresslogic
  end

You can specify the fields too:

  class Address
    apply_addresslogic :fields => [:street1, :street2, :city, [:state, :zip], :country]
  end

Helpful links

Copyright © 2009 Ben Johnson of [Binary Logic](www.binarylogic.com), released under the MIT license