def initialize_tag(page, tag_signature)
      if match = tag_signature.match(regex_tag_signature)
        
        params = begin
          (CSV.parse_line(match[2].to_s, :col_sep => ':') || []).compact
        rescue
          []
        end.map{|p| p.gsub(/\\|'/) { |c| "\\#{c}" } }
        
        tag = self.new
        tag.page        = page
        tag.identifier  = match[1] || ''
        tag.namespace   = (ns = tag.identifier.split('.')[0...-1].join('.')).blank?? nil : ns
        tag.params      = params
        tag
      end
    end
def initialize_tag(page, tag_signature)
      if match = tag_signature.match(regex_tag_signature)
        
        params = begin
          (CSV.parse_line(match[2].to_s, :col_sep => ':') || []).compact
        rescue
          []
        end.map{|p| p.gsub(/\\|'/) { |c| "\\#{c}" } }
        
        tag = self.new
        tag.page        = page
        tag.identifier  = match[1] || ''
        tag.namespace   = (ns = tag.identifier.split('.')[0...-1].join('.')).blank?? nil : ns
        tag.params      = params
        tag
      end
    end
Initializing tag object for a particular Tag type
 First capture group in the regex is the tag identifier
 Namespace is the string separated by a dot. So if identifier is:
 'sidebar.about' namespace is: 'sidebar'