Sha256: 8df64302846c425bda776c7979d76cc010570f537ab9ada4dd656d15162493cc
Contents?: true
Size: 1.82 KB
Versions: 1
Compression:
Stored size: 1.82 KB
Contents
module Concrete class ConcreteSyntaxProvider class ConcreteSyntax attr_accessor :ident, :dir, :name, :desc, :htmlTemplates, :cssStyleFile end def initialize(configDirs, logger, config=nil) @configDirs = configDirs @logger = logger @config = config @selectedSyntax = nil end def selectedSyntax syn = syntaxes storedIdent = @config.andand.loadValue("concrete_syntax") storedSyntax = syn.find{|s| s.ident == storedIdent} if storedIdent storedSyntax || @selectedSyntax || syn.first end def selectSyntax(ident) @selectedSyntax = syntaxes.find{|s| s.ident == ident} @config.andand.storeValue("concrete_syntax", ident.to_s) end def syntaxesAsJson '{ "syntaxes": [' + syntaxes.collect do |s| '{ "ident": "'+s.ident+'", "name": "'+s.name+'" }' end.join(", ") + '], "selected": "'+@selectedSyntax.andand.ident.to_s+'" }' end def syntaxes result = [] @configDirs.each do |cd| next unless File.exist?(cd) Dir.entries(cd).sort.each do |sd| next if sd == "." || sd == ".." syntaxDir = cd+"/"+sd templatesFile = syntaxDir + "/templates.html" styleFile = syntaxDir + "/style.css" unless File.exist?(templatesFile) || File.exist?(styleFile) @logger.warn("Concrete syntax dir without a templates.html or a style.css: #{syntaxDir}") next end s = ConcreteSyntax.new s.ident = syntaxDir.gsub("\\","/") s.dir = syntaxDir s.name = sd.split(/[_\W]/).collect{|w| w.capitalize}.join(" ") s.desc = "" s.cssStyleFile = styleFile if File.exist?(styleFile) s.htmlTemplates = File.read(templatesFile) if File.exist?(templatesFile) result << s end end result end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
concrete-0.2.0 | lib/concrete/concrete_syntax_provider.rb |