Class: JLDrill::Radical

Inherits:
Object
  • Object
show all
Defined in:
lib/jldrill/model/moji/Radical.rb

Overview

A radical (part of a kanji character).

Constant Summary collapse

RADICAL_RE =
Regexp.new('(\S)\t(\S*)\t(\S*)\t([^\t]*)\t(\S+)?', nil, "u")
TO_A_RE =
Regexp.new("",nil, "u")

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(radical, reading, altGlyphs, meaning, contents) ⇒ Radical

Returns a new instance of Radical.



15
16
17
18
19
20
21
# File 'lib/jldrill/model/moji/Radical.rb', line 15

def initialize(radical, reading, altGlyphs, meaning, contents)
	@radical = radical
	@reading = reading
	@altGlyphs = altGlyphs
	@meaning = meaning
	@contents = contents
end

Instance Attribute Details

#altGlyphsObject

Returns the value of attribute altGlyphs.



12
13
14
# File 'lib/jldrill/model/moji/Radical.rb', line 12

def altGlyphs
  @altGlyphs
end

#contentsObject

Returns the value of attribute contents.



12
13
14
# File 'lib/jldrill/model/moji/Radical.rb', line 12

def contents
  @contents
end

#meaningObject

Returns the value of attribute meaning.



12
13
14
# File 'lib/jldrill/model/moji/Radical.rb', line 12

def meaning
  @meaning
end

#radicalObject

Returns the value of attribute radical.



12
13
14
# File 'lib/jldrill/model/moji/Radical.rb', line 12

def radical
  @radical
end

#readingObject

Returns the value of attribute reading.



12
13
14
# File 'lib/jldrill/model/moji/Radical.rb', line 12

def reading
  @reading
end

Class Method Details

.parse(string) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/jldrill/model/moji/Radical.rb', line 31

def Radical.parse(string)
	entry = nil
	if string =~ RADICAL_RE
		radical = $1
		altGlyphs = Radical.splitChars($2)
		reading = $3
		meaning = $4
		contents = Radical.splitChars($5)
		entry = Radical.new(radical, reading, altGlyphs,
		                    meaning, contents)
	end
	entry
end

.splitChars(string) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/jldrill/model/moji/Radical.rb', line 23

def Radical.splitChars(string)
			if !string.nil?
  string.split(TO_A_RE)
			else
  []
			end
end

Instance Method Details

#eql?(radical) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/jldrill/model/moji/Radical.rb', line 45

def eql?(radical)
    self.to_s == radical.to_s
end

#to_sObject



64
65
66
67
68
69
70
71
# File 'lib/jldrill/model/moji/Radical.rb', line 64

def to_s
    retVal = @radical
    if @altGlyphs.size > 0
        retVal += "(" + @altGlyphs.join(",") + ")"
    end
    retVal += "   " + @reading + " - " + @meaning
          retVal		    
end

#to_s_with_pinyin(kanjilist) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/jldrill/model/moji/Radical.rb', line 49

def to_s_with_pinyin(kanjilist)
    kanji = kanjilist.findChar(@radical)
    if !kanji.nil? && !kanji.pinyin.nil?
        pinyin = kanji.pinyin.join(" ")
    else
        pinyin = ""
    end
		    retVal = @radical
		    if @altGlyphs.size > 0
  retVal += "(" + @altGlyphs.join(",") + ")"
		    end
		    retVal += "   " + pinyin + " - " + @meaning
    retVal		    
end