Module: Syamei
- Defined in:
- lib/syamei.rb,
lib/syamei/version.rb
Defined Under Namespace
Classes: Error
Constant Summary collapse
- DATA =
YAML.load_file(File.(File.join('..', 'data', 'notations.yml'), __FILE__))['notations']
- NOTATION =
DATA.map { |n| n[0] }.compact.reject(&:empty?).flatten.uniq
- SPECIAL =
DATA.map { |n| n[1] }.compact.reject(&:empty?).flatten.uniq
- ABBREVIATION =
DATA.map { |n| n[2] }.compact.reject(&:empty?).flatten.uniq
- KANA_HEAD =
DATA.map { |n| n[3] }.compact.reject(&:empty?).flatten.uniq
- KANA_MIDDLE =
DATA.map { |n| n[4] }.compact.reject(&:empty?).flatten.uniq
- KANA_TAIL =
DATA.map { |n| n[5] }.compact.reject(&:empty?).flatten.uniq
- COMPLEX_TYPE =
{ 0 => { all: [NOTATION, SPECIAL, ABBREVIATION, KANA_HEAD, KANA_TAIL].join('|'), head: [NOTATION, SPECIAL, ABBREVIATION, KANA_HEAD].join('|'), tail: [NOTATION, SPECIAL, ABBREVIATION, KANA_TAIL].join('|') }, 1 => NOTATION.join('|'), 2 => SPECIAL.join('|'), 3 => ABBREVIATION.join('|'), 4 => { all: [KANA_HEAD, KANA_TAIL].join('|'), head: KANA_HEAD.join('|'), tail: KANA_TAIL.join('|') } }.freeze
- VERSION =
'0.2.4'.freeze
Class Method Summary collapse
- .list ⇒ Object
- .notation(name, type = 0) ⇒ Object
-
.only(name, type = 0) ⇒ Object
先頭・末尾の法人格を削除.
-
.with?(name, type = 0) ⇒ Boolean
前株・後株の存在チェック.
-
.with_beginning(name, type = 0) ⇒ Object
末尾の法人格を削除.
-
.with_beginning?(name, type = 0) ⇒ Boolean
前株の存在チェック.
-
.with_end(name, type = 0) ⇒ Object
先頭の法人格を削除.
-
.with_end?(name, type = 0) ⇒ Boolean
後株の存在チェック.
Class Method Details
.list ⇒ Object
90 91 92 |
# File 'lib/syamei.rb', line 90 def self.list COMPLEX_TYPE[0][:all].gsub('|', ' ').gsub('\\', '') end |
.notation(name, type = 0) ⇒ Object
82 83 84 85 86 87 88 |
# File 'lib/syamei.rb', line 82 def self.notation(name, type = 0) return nil if name.nil? || name.empty? return name[/(#{COMPLEX_TYPE[type][:all]})/, 1] if type.zero? || type == 4 name[/(#{COMPLEX_TYPE[type]})/, 1] end |
.only(name, type = 0) ⇒ Object
先頭・末尾の法人格を削除
75 76 77 78 79 80 |
# File 'lib/syamei.rb', line 75 def self.only(name, type = 0) return nil if name.nil? || name.empty? name = with_beginning(name, type) with_end(name, type) end |
.with?(name, type = 0) ⇒ Boolean
前株・後株の存在チェック
50 51 52 53 54 |
# File 'lib/syamei.rb', line 50 def self.with?(name, type = 0) return false if name.nil? || name.empty? with_beginning?(name, type) || with_end?(name, type) end |
.with_beginning(name, type = 0) ⇒ Object
末尾の法人格を削除
57 58 59 60 61 62 63 |
# File 'lib/syamei.rb', line 57 def self.with_beginning(name, type = 0) return nil if name.nil? || name.empty? return name.gsub(/(#{COMPLEX_TYPE[type][:tail]})$/, '').strip if type.zero? || type == 4 name.gsub(/(#{COMPLEX_TYPE[type]})$/, '').strip end |
.with_beginning?(name, type = 0) ⇒ Boolean
前株の存在チェック
32 33 34 35 36 37 38 |
# File 'lib/syamei.rb', line 32 def self.with_beginning?(name, type = 0) return false if name.nil? || name.empty? return name.match?(/^(#{COMPLEX_TYPE[type][:head]}).*$/) if type.zero? || type == 4 name.match?(/^(#{COMPLEX_TYPE[type]}).*$/) end |
.with_end(name, type = 0) ⇒ Object
先頭の法人格を削除
66 67 68 69 70 71 72 |
# File 'lib/syamei.rb', line 66 def self.with_end(name, type = 0) return nil if name.nil? || name.empty? return name.gsub(/^(#{COMPLEX_TYPE[type][:head]})/, '').strip if type.zero? || type == 4 name.gsub(/^(#{COMPLEX_TYPE[type]})/, '').strip end |
.with_end?(name, type = 0) ⇒ Boolean
後株の存在チェック
41 42 43 44 45 46 47 |
# File 'lib/syamei.rb', line 41 def self.with_end?(name, type = 0) return false if name.nil? || name.empty? return name.match?(/.*(#{COMPLEX_TYPE[type][:tail]})$/) if type.zero? || type == 4 name.match?(/.*(#{COMPLEX_TYPE[type]})$/) end |