Module: CodeModels

Defined in:
lib/codemodels/language.rb,
lib/codemodels/parser.rb,
lib/codemodels/version.rb,
lib/codemodels/artifact.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

Overview

encoding: utf-8

Defined Under Namespace

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

Constant Summary collapse

VERSION =
"0.2.7"
@@languages =
[]

Class Method Summary collapse

Class Method Details

.parse_file(path) ⇒ Object



49
50
51
52
53
# File 'lib/codemodels/language.rb', line 49

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

.register_language(language) ⇒ Object

It avoids multiple registration of the same class



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

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

.registered_languagesObject



35
36
37
# File 'lib/codemodels/language.rb', line 35

def self.registered_languages
	@@languages
end