Class: Keystone::StringUtil
Constant Summary collapse
- MULTIBYTE_SPACE =
[0x3000].pack("U")
- PRESERVED_QUERY_WORDS_RE =
/(AND|OR|ANDNOT)/
Class Method Summary collapse
-
.downcase_roma_number(st) ⇒ Object
TODO.
- .int_to_splitted_path(i_value, value_length, base_folder, suffix = "") ⇒ Object
- .reverse_mail_address(mail) ⇒ Object
-
.serach_string_to_array(query) ⇒ Object
adviced by Mr.morohashi.
-
.to_searchtext(str) ⇒ Object
making search text for indexing.
Instance Method Summary collapse
Class Method Details
.downcase_roma_number(st) ⇒ Object
TODO
62 63 64 |
# File 'lib/keystone/string_util.rb', line 62 def self.downcase_roma_number(st) st.tr("ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ", "ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ") end |
.int_to_splitted_path(i_value, value_length, base_folder, suffix = "") ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/keystone/string_util.rb', line 4 def self.int_to_splitted_path(i_value,value_length,base_folder,suffix="") file_name = Integer(i_value).to_s raise RangeError,"value_length must bigger than 0" if value_length < 1 raise RangeError, 'i_value length is bigger than value_length' if file_name.size > value_length file_name = file_name.rjust(value_length, '0') new_path = base_folder.dup group_regex = "" i = value_length group_cnt = 0 loop do group_cnt += 1 if i > 2 group_regex << "(\\d\\d\\d)" i -= 3 break if i < 1 else group_regex = "(#{"\\d"*i})" + group_regex break end end file_name.gsub(/#{group_regex}/) do |hit| 1.upto(group_cnt) do |i| new_path << "/#{Regexp.last_match[i]}" end end new_path << suffix if suffix != "" return new_path end |
.reverse_mail_address(mail) ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/keystone/string_util.rb', line 33 def self.reverse_mail_address(mail) if mail.index('@') == nil return mail end user,dom = mail.split('@') if dom == nil return "@#{user}" end return dom.split('.').reverse.join(".") + "@" + user end |
.serach_string_to_array(query) ⇒ Object
adviced by Mr.morohashi
49 50 51 52 53 54 55 56 57 |
# File 'lib/keystone/string_util.rb', line 49 def self.serach_string_to_array(query) tokens = query.scan(/'([^']*)'|"([^"]*)"|([^\s#{MULTIBYTE_SPACE}]*)/).flatten.reject{|i| i == nil || i == "" } tokens.map do |token| next unless token #token.gsub!(PRESERVED_QUERY_WORDS_RE, $1.downcase) if token =~ PRESERVED_QUERY_WORDS_RE token.gsub!(/\A['"]|['"]\z/, '') # strip quatos token end end |
.to_searchtext(str) ⇒ Object
making search text for indexing
69 70 71 72 73 74 |
# File 'lib/keystone/string_util.rb', line 69 def self.to_searchtext(str) self.downcase_roma_number(Moji.han_to_zen( #Moji.zen_to_han(str,Moji::ZEN_ALNUM | Moji::ZEN_SYMBOL).downcase,Moji::HAN_KATA | Moji::HAN_JSYMBOL).tr("ー~/","ー~/") Moji.zen_to_han(str,Moji::ZEN_ALNUM | Moji::ZEN_SYMBOL).downcase,Moji::HAN_KATA | Moji::HAN_JSYMBOL) ) end |
Instance Method Details
#to_fileable_st(st) ⇒ Object
指定された文字列より以外を取り除く
82 83 84 |
# File 'lib/keystone/string_util.rb', line 82 def to_fileable_st(st) st.gsub(/[^\w\-_\.]/,"") end |