Module: Decode::Language

Defined in:
lib/decode/language.rb,
lib/decode/language/ruby.rb,
lib/decode/language/ruby/call.rb,
lib/decode/language/ruby/block.rb,
lib/decode/language/ruby/class.rb,
lib/decode/language/ruby/method.rb,
lib/decode/language/ruby/module.rb,
lib/decode/language/ruby/parser.rb,
lib/decode/language/ruby/segment.rb,
lib/decode/language/ruby/constant.rb,
lib/decode/language/ruby/function.rb,
lib/decode/language/ruby/attribute.rb,
lib/decode/language/ruby/reference.rb,
lib/decode/language/ruby/definition.rb

Overview

Language specific parsers and definitions.

Defined Under Namespace

Modules: Ruby

Constant Summary collapse

REFERENCE =
/\A(?<language>\.[a-z]+)?\s+(?<text>.*?)\z/

Class Method Summary collapse

Class Method Details

.detect(path) ⇒ Object



26
27
28
29
30
31
# File 'lib/decode/language.rb', line 26

def self.detect(path)
  case path
  when /\.(rb|ru)\z/
    return Language::Ruby
  end
end

.reference(string, language = nil) ⇒ Object

A language agnostic reference: e.g. ‘.rb MyModule::MyClass`



38
39
40
41
42
43
44
# File 'lib/decode/language.rb', line 38

def self.reference(string, language = nil)
  if match = REFERENCE.match(string)
    language = self.detect(match[:language]) || language
    
    return language.reference(match[:text])
  end
end