class UncleKryon::Language
Attributes
alpha2_code[R]
alpha3_code[R]
alpha3_code_b[R]
codes[R]
names[R]
Public Class Methods
new(row=nil)
click to toggle source
Calls superclass method
UncleKryon::BaseIso::new
# File lib/unclekryon/iso/language.rb, line 34 def initialize(row=nil) super() @names = nil @codes = nil @alpha2_code = nil @alpha3_code = nil @alpha3_code_b = nil if row.is_a?(Array) @names = row[2].split(';').compact.uniq.map(&self.class.method(:fix_name)) @alpha2_code = row[1].empty? ? nil : row[1] @alpha3_code = row[0].split(/[[:space:]]*[\(\)][[:space:]]*/) if @alpha3_code.length <= 1 @alpha3_code = row[0] else prev_was_tag = true @alpha3_code.each_with_index do |c,i| c.strip! c_up = c.upcase if c_up == 'B' || c_up == 'T' if prev_was_tag raise "Invalid alpha-3 code for: #{@names},#{@alpha2_code},#{@alpha3_code}" end case c_up when 'B' raise "Multiple alpha3_code_b: #{@alpha3_code}" unless @alpha3_code_b.nil? @alpha3_code_b = @alpha3_code[i - 1] when 'T' raise "Multiple alpha3_code (T): #{@alpha3_code}" unless @alpha3_code.is_a?(Array) @alpha3_code = @alpha3_code[i - 1] end prev_was_tag = true else prev_was_tag = false end end # Wasn't set in the above loop? if @alpha3_code.is_a?(Array) raise "Invalid alpha-3 code for: #{@names},#{@alpha2_code},#{@alpha3_code}" end end @name = @names[0] #@names = @names @code = @alpha3_code @codes = [@alpha3_code,@alpha3_code_b,@alpha2_code].compact.uniq end end
Public Instance Methods
==(other)
click to toggle source
@see Languages.parse_and_save_to_file(...)
Calls superclass method
UncleKryon::BaseIso#==
# File lib/unclekryon/iso/language.rb, line 91 def ==(other) return super(other) && @names == other.names && @codes == other.codes && @alpha2_code == other.alpha2_code && @alpha3_code == other.alpha3_code && @alpha3_code_b == other.alpha3_code_b end
to_s()
click to toggle source
# File lib/unclekryon/iso/language.rb, line 100 def to_s s = '['.dup s << %Q("#{@name}","#{@names.join(';')}",) s << %Q(#{@code},"#{@codes.join(';')}",) s << "#{@alpha2_code},#{@alpha3_code},#{@alpha3_code_b}" s << ']' return s end