class Bibliography::BIC::Subject

Constants

Data

Public Class Methods

all() click to toggle source

Class methods

# File lib/bibliography/bic/subject.rb, line 15
def self.all
  Data.keys.map {|s| Subject.new(s) }
end
new(code) click to toggle source

Instance methods

# File lib/bibliography/bic/subject.rb, line 21
def initialize(code)
  @data = Data[code] || {}
end

Public Instance Methods

children() click to toggle source
# File lib/bibliography/bic/subject.rb, line 41
def children
  return [] unless valid?
  len = code.length
  @children ||= Data.keys.select{ |key|
    key.length > len && key[0..len-1] == code
  }.map {|s| Subject.new(s) }
end
children?() click to toggle source
# File lib/bibliography/bic/subject.rb, line 37
def children?
  !children.empty?
end
code() click to toggle source
# File lib/bibliography/bic/subject.rb, line 25
def code
  @data[:code]
end
description() click to toggle source
# File lib/bibliography/bic/subject.rb, line 29
def description
  @data[:description]
end
parent() click to toggle source
# File lib/bibliography/bic/subject.rb, line 53
def parent
  @parent ||= Subject.new(code[0]) if valid? && code.length > 1
end
parent?() click to toggle source
# File lib/bibliography/bic/subject.rb, line 49
def parent?
  !parent.nil? && parent.valid?
end
valid?() click to toggle source
# File lib/bibliography/bic/subject.rb, line 33
def valid?
  !@data.empty?
end