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