def ch_assign(text, exp, sep = " = ", str)
      sep = " = " if sep == "="
      text = text.gsub(/(\s*#{exp}).*/) do |s|
        name = $1
        if str.class == String
          if str =~ /::/ || str =~ /^\d+$/
            # storage type
           name + sep + str
          else
            # require & storage option
           name + sep + str.inspect
          end
        else
          # plugin
          # "to_s" equal "inspect" in Ruby 1.9
          name + sep + str.to_s.sub("\\", "")
        end
      end
    end
def ch_assign(text, exp, sep = " = ", str)
      sep = " = " if sep == "="
      text = text.gsub(/(\s*#{exp}).*/) do |s|
        name = $1
        if str.class == String
          if str =~ /::/ || str =~ /^\d+$/
            # storage type
           name + sep + str
          else
            # require & storage option
           name + sep + str.inspect
          end
        else
          # plugin
          # "to_s" equal "inspect" in Ruby 1.9
          name + sep + str.to_s.sub("\\", "")
        end
      end
    end
sep means separating right and left part(config.rb style)