class SiSU_MarkupType::MarkupIdentify

Attributes

declared_doc_type[RW]
version[RW]

Public Class Methods

new(content,opt) click to toggle source
# File lib/sisu/dp_identify_markup.rb, line 62
def initialize(content,opt)
  @cont,@opt=content,opt
end

Public Instance Methods

declared() click to toggle source
# File lib/sisu/dp_identify_markup.rb, line 152
def declared
  identify.version[:declared].to_f
end
determined() click to toggle source
# File lib/sisu/dp_identify_markup.rb, line 141
def determined
  identify.version[:determined].to_f
end
identify() click to toggle source
# File lib/sisu/dp_identify_markup.rb, line 65
def identify
  @version,@declared_doc_type=@@version,@@declared_doc_type
  if @opt.fns != @@fns
    if @cont[0] =~ /^(?:%\s+)?SiSU\s+(text|master|insert)\s+([0-9](?:\.[0-9]+){1,2})/ \
    or @cont[0] =~ /^(?:%\s+)?sisu-([0-9](?:\.[0-9]+){1,2})/
      @declared_doc_type,@version[:declared]=$1,$2
    elsif @cont[0] =~ /^(?:%\s+)?SiSU\s+([0-9](?:\.[0-9]+){1,2})/ \
    or @cont[0] =~ /^(?:%\s+)?sisu-([0-9](?:\.[0-9]+){1,2})/
      @version[:declared]=$1
    end
    @flag_2_0,@flag_66,@flag_57,@flag_38=false,false,false,false
    @cont.each_with_index do |y,i|
      if y =~/^@make:|^@classify|^\s\s?:\S+?:\s+\S/
        version=2.0.to_f
        @version[:determined]=version
        @flag_2_0=true
        break
      end
      unless @flag_38
        if y =~/^:?A~/
          version=0.38.to_f
          @version[:determined]=version
          @flag_38=true
        end
      end
      if @flag_38
        if @flag_69 \
        or y =~/^=\{.+?\}\s*$/
          version=0.69.to_f
          @flag_69=true
          @version[:determined]=version
          break
        end
        if @flag_66 \
        or y =~/[:;]\{.+?\}[:;][a-z+]/
          version=0.66.to_f
          @flag_66=true
          @version[:determined]=version
          break
        end
      end
    end
    @flag_57,@flag_38=false,false
    unless @flag_2_0 \
    or @flag_66 \
    or @flag_69
      @cont.each_with_index do |y,i|
        if @flag_57 \
        or y =~/^:?A~\?? @title/
          @version[:determined]=0.57.to_f
          @flag_57=true
          break
        end
        if @flag_38 \
        or y =~/^:?A~/
          @version[:determined]=0.38.to_f
          @flag_38=true
          break if i >= 200
          if y =~ /(?:~{\*+|~\[\*|~\[\+)\s/
            @version[:determined]=0.42 #0.38 can safely be treated as 0.42
            break
          end
        end
        if y =~/^0~/ \
        and not @flag_38
          @version[:determined]=0.16.to_f
          break
        end
      end
    end
    @@fns=@opt.fns
    @@version,@@declared_doc_type=@version,@declared_doc_type
  end
  self
end
markup_version?() click to toggle source
# File lib/sisu/dp_identify_markup.rb, line 140
def markup_version?
  def determined
    identify.version[:determined].to_f
  end
  def series
    s=case identify.version[:determined].to_s
    when /^[01]\./ then '1.0'
    when /^[2]\./  then '2.0'
    else '2.0'
    end
    "series #{s}"
  end
  def declared
    identify.version[:declared].to_f
  end
  self
end
series() click to toggle source
# File lib/sisu/dp_identify_markup.rb, line 144
def series
  s=case identify.version[:determined].to_s
  when /^[01]\./ then '1.0'
  when /^[2]\./  then '2.0'
  else '2.0'
  end
  "series #{s}"
end