Sha256: fb1c89361e34c51e3466091e54cc6e3995e1e0669254fc1625e8849225b42327

Contents?: true

Size: 1.16 KB

Versions: 6

Compression:

Stored size: 1.16 KB

Contents

require 'bigdecimal'
require 'bigdecimal/util'
require 'pathname'
require 'nkf'

module FeCoreExt::CoreExt
end

module FeCoreExt::CoreExt::String
  def to_integer
    return if not_number?
    delete(',').to_i
  end

  def to_decimal
    return if not_number?
    delete(',').to_d
  end

  def to_pathname
    Pathname(self)
  end

  def not_number?
    to_i == 0 && match('0').nil?
  end

  def zen_to_han
    tr('0-9A-Za-z &・-()', '0-9A-Za-z &・\-()')
  end

  def to_katakana
    tr('ぁ-ん', 'ァ-ン')
  end

  def match?(str)
    /#{str}/ === self
  end

  def kana_upcase
    tr('ァィゥェォヵヶッャュョヮ','アイウエオカケツヤユヨワ')
  end

  def to_han_kana
    return if self.nil?
    NKF.nkf('-wxZ4', self)
  end

  def to_zen_kana
    return if self.nil?
    NKF.nkf('-wX',self)
  end

  def to_date_in_ja
    match(/(\d{4})年(\d{1,2})月(\d{1,2})日/){ Date.new($1.to_i, $2.to_i, $3.to_i) }
  end

  # remove also no break space and other space like characters.
  def strong_strip
    reverse.gsub(/^\p{Zs}+|^\p{Cf}+/, '').reverse.gsub(/^\p{Zs}+|^\p{Cf}+/, '')
  end
end

class String
  include FeCoreExt::CoreExt::String
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fe_core_ext-0.4.0 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.3.0 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.2.2 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.2.1 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.1.49 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.1.48 lib/fe_core_ext/core_ext/string.rb