No commit activity in last 3 years
No release in over 3 years
has_named_bootstraps is a simple way to load bootstrapped records into class-level constants, and generate a list in another constant of all such bootstraps. This is handy for generating <select>s and writing certain kinds of tests.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

 Project Readme
= HasNamedBootstraps

This is alpha code.  The API is subject (and almost certain) to change.  It shouldn't hurt your computer or data, but if it does, I am not obligated to do anything, even feel sorry for you.

has_named_bootstraps is a simple way to load bootstrapped records into class-level constants, making application-level data integrity easier.  You can also generate a list in another constant of all such bootstraps, which is handy for generating <select>s and writing certain kinds of tests.

Getting the bootstrapped data in beforehand is up to you.  I like seed_fu (http://github.com/mbleigh/seed-fu) for this personally.  If has_named_bootstraps can't find a bootstrap, by default it'll raise an error.  It's also possible to have it log a warning and continue, or continue silently.

= Example

    class Department < ActiveRecord::Base
      has_named_bootstraps(
        :R_AND_D         => 'R&D',
        :MARKETING       => 'Marketing', 
        :HANDSOME_DEVILS => 'Web Development' 
      )
    end

    >> Department.find(:all)
    => [#<Department id: 1, name: "R&D">, #<Department id: 2, name: "Marketing">, #<Department id: 3, name: "Web Development">]
    >> Department::R_AND_D
    => #<Department id: 1, name: "R&D">
    >> Department::MARKETING
    => #<Department id: 2, name: "Marketing">
    >> Department::HANDSOME_DEVILS
    => #<Department id: 3, name: "Web Development">

With a master list:

    class Dog < ActiveRecord::Base
      has_named_bootstraps(
        {:FIDO => 'Fido', :ROVER => 'Rover', :SPOT  => 'Spot'},
        :master_list => :GOOD_DOGS
      )
    end

    >> Dog.find(:all)
    => [#<Dog id: 1, name: "Spot">, #<Dog id: 2, name: "Fido">, #<Dog id: 3, name: "Rover">]
    >> Dog::GOOD_DOGS
    => [#<Dog id: 1, name: "Spot">, #<Dog id: 2, name: "Fido">, #<Dog id: 3, name: "Rover">]

See HasNamedBootstraps::ClassMethods for other options.

= TODO

make should_have_named_bootstraps detect multiple missing bootstraps (not just the first)

write tests for shoulda macros, document same

Markdown README for GitHub

= License and copyright

Copyright (c) 2010 Children's Hospital Boston, released under the GNU Lesser General Public License.

= Acknowledgements

Thanks to Wyatt Greene for feedback, Dan Croak for patches and Harold Gimenez for Markdown advice.  Boston.rb can beat up your Ruby group.