Module: CodeModels

Defined in:
lib/codemodels/parser.rb,
lib/codemodels/version.rb,
lib/codemodels/artifact.rb,
lib/codemodels/language.rb,
lib/codemodels/position.rb,
lib/codemodels/metamodel.rb,
lib/codemodels/comparison.rb,
lib/codemodels/navigation.rb,
lib/codemodels/source_info.rb,
lib/codemodels/serialization.rb,
lib/codemodels/model_building.rb,
lib/codemodels/info_extraction.rb

Defined Under Namespace

Modules: ComparisonModule, ForeignAstExtensions, HostPositionExtensions, InfoExtraction, ModelBuilding, NavigationExtensions, Serialization, SourceInfoExtensions Classes: AbstractArtifact, CodeModelsAstNode, EmbeddedArtifact, FileArtifact, FileMapper, FilesSource, Language, NoLanguageRegistered, Parser, ParsingError, SourceInfo, SourcePoint, SourcePosition, StringArtifact, UnknownNodeType

Constant Summary collapse

VERSION =
"0.2.6"
@@languages =
[]

Class Method Summary collapse

Class Method Details

.parse_file(path) ⇒ Object



42
43
44
45
46
# File 'lib/codemodels/language.rb', line 42

def self.parse_file(path)
  l = @@languages.find {|l| l.can_parse?(path) }
  raise NoLanguageRegistered.new(path) unless l
  l.parser.parse_file(path)
end

.register_language(language) ⇒ Object

It avoids multiple registration of the same class



25
26
27
28
# File 'lib/codemodels/language.rb', line 25

def self.register_language(language)
  return if @@languages.find {|l| l.is_a?(language.class)}
  @@languages << language
end

.registered_languagesObject



30
31
32
# File 'lib/codemodels/language.rb', line 30

def self.registered_languages
  @@languages
end