class Tardef::Base

Attributes

extensions[RW]

Public Class Methods

new() click to toggle source
# File lib/tardef/base.rb, line 48
def initialize
  @extensions = []
end

Public Instance Methods

add_extension(extension) click to toggle source
# File lib/tardef/base.rb, line 7
def add_extension(extension)
  @extensions << extension
end
load_hash(hash) click to toggle source
# File lib/tardef/base.rb, line 30
def load_hash(hash)
  hash.each do |key, value|
    key = "@" + key
    if instance_variable_defined?(key)
      instance_variable_set(key, value)
    end
  end
  return unless @extensions
  
  extension_list = []
  @extensions.each do |extension|
    ext = Extension.new(nil, nil)
    ext.load_hash(extension)
    extension_list << ext
  end
  @extensions = extension_list
end
to_hash() click to toggle source
# File lib/tardef/base.rb, line 11
def to_hash
  hash = {}
  # Add all instance variables
  instance_variables.each do |var| 
    if not instance_variable_get(var) or instance_variable_get(var).empty?
      next
    end
    hash[var.to_s.delete("@")] = instance_variable_get(var)
  end
  # Tidy up the extensions by making them hashes
  return hash if not hash["extensions"]
  extensions = []
  hash["extensions"].each do |extension|
    extensions << extension.to_hash
  end
  hash["extensions"] = extensions
  hash
end