Sha256: 783b67984ae18aa26a84afed5973140517402af61600571f7e412e9c061ce246

Contents?: true

Size: 1.42 KB

Versions: 12

Compression:

Stored size: 1.42 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

  def sjis_encodable
    tr("\u301C\u2212\u00A2\u00A3\u00AC\u2014\u2016",
       "\uFF5E\uFF0D\uFFE0\uFFE1\uFFE2\u2015\u2225")
  end

  def eucjp_encodable
    tr("\uFF5E\uFF0D\uFFE0\uFFE1\uFFE2\u2015\u2225",
       "\u301C\u2212\u00A2\u00A3\u00AC\u2014\u2016")
  end
end

class String
  include FeCoreExt::CoreExt::String
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
fe_core_ext-0.11.1 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.11.0 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.10.0 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.9.2 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.9.1 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.9.0 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.8.3 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.8.2 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.8.1 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.7.0 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.6.0 lib/fe_core_ext/core_ext/string.rb
fe_core_ext-0.5.0 lib/fe_core_ext/core_ext/string.rb