Sha256: d6feeb0bc23ecd0e8dba746125dbb1d1212a9794010c22bf8f4e7dc429926638

Contents?: true

Size: 1.64 KB

Versions: 16

Compression:

Stored size: 1.64 KB

Contents

# Pour simplifier chercher les tags voisins qui sont ouvrant et fermant et les virer

## First version of dyn-lint
## TODO:
## * detect the position of the error
## * warning when suspecting block ending by ] by accident

module Dyndoc
  module Linter
    def Linter.selected_tags(txt)
      selected_tags=txt.scan(/(?:\{[\#\@](?:[\w\:\|-]*[<>]?[=?!><]?(?:\.\w*)?)\]|\[[\#\@](?:[\w\:\|-]*[<>]?[=?!><]?)\})/).each_with_index.map{|e,i| [i+1,e] }
      ## p selected_tags
      selected_tags
    end

    def Linter.simplify_dyndoc_tags(tags)
      (0..(tags.length-2)).each do |i|
        if (tags[i][1] == "{#"+tags[i+1][1][2..-2]+"]" and tags[i+1][1] == "[#"+tags[i][1][2..-2]+"}") or (tags[i][1][0]=="{" and tags[i+1][1]=="[#}")
          tags.delete_at i+1;tags.delete_at i
          Dyndoc::Linter.simplify_dyndoc_tags(tags)
          break
        end
        if (tags[i][1] == "{@"+tags[i+1][1][2..-2]+"]" and tags[i+1][1] == "[@"+tags[i][1][2..-2]+"}") or (tags[i][1][0]=="{" and tags[i+1][1]=="[@}")
          tags.delete_at i+1;tags.delete_at i
          Dyndoc::Linter.simplify_dyndoc_tags(tags)
          break
        end
      end
      return tags
    end

    def Linter.guess_bad_tags(tags)

    end

    def Linter.guess_bad_opentags(txt)
      selected_opentags=txt.scan(/(?:\{[\#\@](?:[\w\:\|-]*[<>]?[=?!><]?(?:\.\w*)?)\})/).each_with_index.map{|e,i| [i+1,e] }
    end

    def Linter.check_content(txt)
      Dyndoc::Linter.simplify_dyndoc_tags(Dyndoc::Linter.selected_tags(txt))
    end

    def Linter.check_file(file_to_lint)
      txt=File.read(file_to_lint)
      Dyndoc::Linter.check_content(txt) + Dyndoc::Linter.guess_bad_opentags(txt)
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
dyndoc-ruby-1.5.0 lib/dyndoc-linter.rb
dyndoc-ruby-1.4.7 lib/dyndoc-linter.rb
dyndoc-ruby-1.4.6 lib/dyndoc-linter.rb
dyndoc-ruby-1.4.5 lib/dyndoc-linter.rb
dyndoc-ruby-1.4.2 lib/dyndoc-linter.rb
dyndoc-ruby-1.4.1 lib/dyndoc-linter.rb
dyndoc-ruby-1.4.0 lib/dyndoc-linter.rb
dyndoc-ruby-1.3.9 lib/dyndoc-linter.rb
dyndoc-ruby-1.3.6 lib/dyndoc-linter.rb
dyndoc-ruby-1.3.4 lib/dyndoc-linter.rb
dyndoc-ruby-1.3.2 lib/dyndoc-linter.rb
dyndoc-ruby-1.3.0 lib/dyndoc-linter.rb
dyndoc-ruby-1.2.2 lib/dyndoc-linter.rb
dyndoc-ruby-1.2.1 lib/dyndoc-linter.rb
dyndoc-ruby-1.2.0 lib/dyndoc-linter.rb
dyndoc-ruby-1.0.25 lib/dyndoc-linter.rb