LCCLasses¶ ↑
A Ruby gem that provides the Library of Congress Classification system main classes and subclasses along with some convenience methods.
Installation¶ ↑
LCCLasses is available on RubyGems:
gem install lcclasses
To install with Bundler, add the following to your Gemfile:
gem 'lcclasses'
Then run bundle install
Usage¶ ↑
To find a classification code:
LCClasses.find_main_class_by_code("T") => ["T", "Technology (General)"] LCClasses.find_subclass_by_code("AM") => ["AM", "Museums. Collectors and collecting"] LCClasses.find_all_by_code("E") => # returns the main "E" class and all subclasses in nested array LCClasses.main_classes => # returns all main classes LCClasses.subclasses => # returns all subclasses
The entire set of classes can be retrieved in 3 formats:
LCClasses::CLASS_HASH => # nested hash of classes and subclasses LCClasses.nested => # nested array of classes and subclasses as LCClasses::LCClass objects LCClasses.flat => # flat array of classes and subclasses as LCClasses::LCClass objects
The CLASS_HASH
constant is in the following format (truncated example):
{ "A" => { :name => "General Works", :subclasses => { "AC" => { :name => "Collections; Series; Collected works" } } } }
Classes are returned as specialized LCClasses::Class arrays in the format [code, name]
. In the case of nested LCClasses:LCClass objects, they are in the format [main_class_code, main_class_name, [[subclass_code, subclass_name]]]
. These objects are normal arrays with the following methods added:
@class = LCClasses.find_main_class_by_code("M") @class.code => "M" @class.name => "Music" @class.subclasses => [["M", "Music"], ["ML", "Literature on music"], ["MT", "Instruction and study"]]
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.
Copyright¶ ↑
Copyright © 2010 William Melody. See LICENSE for details.