class UncleKryon::BaseIsos

Constants

DEFAULT_DIR

Attributes

id[R]
values[R]

Public Class Methods

get_class_name(class_var) click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 166
def self.get_class_name(class_var)
  return class_var.class.name.split('::').last
end
new() click to toggle source
Calls superclass method
# File lib/unclekryon/iso/base_iso.rb, line 67
def initialize
  super()

  @id = self.class.get_class_name(self)
  @values = {}
end

Public Instance Methods

[](code) click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 158
def [](code)
  @values[code]
end
[]=(code,value) click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 162
def []=(code,value)
  @values[code] = value
end
find(text) click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 74
def find(text)
  lang = find_by_name(text)
  return lang unless lang.nil?

  lang = find_by_code(text)
  return lang
end
find_by_code(code) click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 82
def find_by_code(code)
  code = code.gsub(/[[:space:]]+/,'').downcase

  @values.each do |k,v|
    codes = nil

    if v.respond_to?(:codes)
      codes = v.codes()
    elsif v.respond_to?(:code)
      codes = [v.code]
    else
      raise "No codes()/code() method for class #{v.class.name}"
    end

    codes.each do |c|
      next if c.nil?
      c = c.gsub(/[[:space:]]+/,'').downcase
      return v if c == code
    end
  end

  return nil
end
find_by_name(name) click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 106
def find_by_name(name)
  name = name.gsub(/[[:space:]]+/,'').downcase

  @values.each do |k,v|
    names = nil

    if v.respond_to?(:names)
      names = v.names()
    elsif v.respond_to?(:name)
      names = [v.name]
    else
      raise "No names()/name() method for class #{v.class.name}"
    end

    names.each do |n|
      next if n.nil?
      n = n.gsub(/[[:space:]]+/,'').downcase
      return v if n == name
    end
  end

  return nil
end
key?(code) click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 170
def key?(code)
  @values.key?(code)
end
load_file(filepath) click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 130
def load_file(filepath)
  y = YAML.load_file(filepath)
  @values.merge!(y[@id])

  return self
end
save_to_file(filepath) click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 137
def save_to_file(filepath)
  File.open(filepath,'w') do |f|
    v = {}
    v[@id] = @values
    YAML.dump(v,f)
  end
end
sort_keys!() click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 145
def sort_keys!
  # Old way: @values = @values.sort().to_h()

  new_values = {}

  @values.keys.sort.each do |code|
    new_values[code] = @values[code]
  end

  @values = new_values
  return self
end
to_s() click to toggle source
# File lib/unclekryon/iso/base_iso.rb, line 174
def to_s
  s = ''.dup

  @values.each do |code,value|
    s << "#{code}: #{value}\n"
  end

  return s
end