Class: Concrete::ConcreteSyntaxProvider
- Inherits:
-
Object
- Object
- Concrete::ConcreteSyntaxProvider
- Defined in:
- lib/concrete/concrete_syntax_provider.rb
Defined Under Namespace
Classes: ConcreteSyntax
Instance Method Summary collapse
-
#initialize(configDirs, logger, config = nil) ⇒ ConcreteSyntaxProvider
constructor
A new instance of ConcreteSyntaxProvider.
- #selectedSyntax ⇒ Object
- #selectSyntax(ident) ⇒ Object
- #syntaxes ⇒ Object
- #syntaxesAsJson ⇒ Object
Constructor Details
#initialize(configDirs, logger, config = nil) ⇒ ConcreteSyntaxProvider
Returns a new instance of ConcreteSyntaxProvider.
9 10 11 12 13 14 |
# File 'lib/concrete/concrete_syntax_provider.rb', line 9 def initialize(configDirs, logger, config=nil) @configDirs = configDirs @logger = logger @config = config @selectedSyntax = nil end |
Instance Method Details
#selectedSyntax ⇒ Object
16 17 18 19 20 21 |
# File 'lib/concrete/concrete_syntax_provider.rb', line 16 def selectedSyntax syn = syntaxes storedIdent = @config.andand.loadValue("concrete_syntax") storedSyntax = syn.find{|s| s.ident == storedIdent} if storedIdent storedSyntax || @selectedSyntax || syn.first end |
#selectSyntax(ident) ⇒ Object
23 24 25 26 |
# File 'lib/concrete/concrete_syntax_provider.rb', line 23 def selectSyntax(ident) @selectedSyntax = syntaxes.find{|s| s.ident == ident} @config.andand.storeValue("concrete_syntax", ident.to_s) end |
#syntaxes ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/concrete/concrete_syntax_provider.rb', line 34 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 |
#syntaxesAsJson ⇒ Object
28 29 30 31 32 |
# File 'lib/concrete/concrete_syntax_provider.rb', line 28 def syntaxesAsJson '{ "syntaxes": [' + syntaxes.collect do |s| '{ "ident": "'+s.ident+'", "name": "'+s.name+'" }' end.join(", ") + '], "selected": "'+@selectedSyntax.andand.ident.to_s+'" }' end |