Class: Concrete::ConcreteSyntaxProvider

Inherits:
Object
  • Object
show all
Defined in:
lib/concrete/concrete_syntax_provider.rb

Defined Under Namespace

Classes: ConcreteSyntax

Instance Method Summary collapse

Constructor Details

#initialize(configDirs, logger, config = nil) ⇒ ConcreteSyntaxProvider

Returns a new instance of ConcreteSyntaxProvider.



11
12
13
14
15
16
# File 'lib/concrete/concrete_syntax_provider.rb', line 11

def initialize(configDirs, logger, config=nil)
  @configDirs = configDirs
  @logger = logger
  @config = config
  @selectedSyntax = nil 
end

Instance Method Details

#selectedSyntaxObject



18
19
20
21
22
23
# File 'lib/concrete/concrete_syntax_provider.rb', line 18

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



25
26
27
28
# File 'lib/concrete/concrete_syntax_provider.rb', line 25

def selectSyntax(ident)
  @selectedSyntax = syntaxes.find{|s| s.ident == ident}
  @config.andand.storeValue("concrete_syntax", ident.to_s) if @selectedSyntax
end

#syntaxesObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/concrete/concrete_syntax_provider.rb', line 36

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
      s = ConcreteSyntax.new
      s.ident = syntaxDir.gsub("\\","/")
      s.dir = syntaxDir
      s.name = sd.split(/[_\W]/).collect{|w| w.capitalize}.join(" ")
      s.desc = ""
      result << s 
    end
  end
  result
end

#syntaxesAsJsonObject



30
31
32
33
34
# File 'lib/concrete/concrete_syntax_provider.rb', line 30

def syntaxesAsJson
  '{ "syntaxes": [' + syntaxes.collect do |s| 
    '{ "ident": "'+s.ident+'", "name": "'+s.name+'" }'
  end.join(", ") + '], "selected": "'+@selectedSyntax.andand.ident.to_s+'" }'
end