Module: Decode::Language::Ruby

Defined in:
lib/decode/language/ruby.rb,
lib/decode/language/ruby/call.rb,
lib/decode/language/ruby/code.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

An interface for extracting information from Ruby source code.

Defined Under Namespace

Classes: Attribute, Block, Call, Class, Code, Constant, Definition, Function, Method, Module, Parser, Reference, Segment, Singleton

Constant Summary collapse

TAGS =
Comment::Tags.build do |tags|
  tags['attribute'] = Comment::Attribute
  tags['parameter'] = Comment::Parameter
  tags['yields'] = Comment::Yields
  tags['returns'] = Comment::Returns
  tags['raises'] = Comment::Raises
  tags['throws'] = Comment::Throws
  
  tags['reentrant'] = Comment::Pragma
  tags['deprecated'] = Comment::Pragma
  tags['blocking'] = Comment::Pragma
  tags['asynchronous'] = Comment::Pragma
end

Class Method Summary collapse

Class Method Details

.code_for(text, index, relative_to: nil) ⇒ Object



91
92
93
# File 'lib/decode/language/ruby.rb', line 91

def self.code_for(text, index, relative_to: nil)
  Code.new(text, index, relative_to: relative_to, language: self)
end

.definitions_for(input, &block) ⇒ Object

Parse the input yielding definitions.



77
78
79
# File 'lib/decode/language/ruby.rb', line 77

def self.definitions_for(input, &block)
  Parser.new.definitions_for(input, &block)
end

.extensionsObject



44
45
46
# File 'lib/decode/language/ruby.rb', line 44

def self.extensions
  ['.rb', '.ru']
end

.nameObject

The canoical name of the language for use in output formatting. e.g. source code highlighting.



36
37
38
# File 'lib/decode/language/ruby.rb', line 36

def self.name
  "ruby"
end

.namesObject



40
41
42
# File 'lib/decode/language/ruby.rb', line 40

def self.names
  [self.name]
end

.reference_for(identifier) ⇒ Object

Generate a language-specific reference.



68
69
70
# File 'lib/decode/language/ruby.rb', line 68

def self.reference_for(identifier)
  Reference.new(identifier, self)
end

.segments_for(input, &block) ⇒ Object

Parse the input yielding segments. Segments are constructed from a block of top level comments followed by a block of code.



87
88
89
# File 'lib/decode/language/ruby.rb', line 87

def self.segments_for(input, &block)
  Parser.new.segments_for(input, &block)
end

.tagsObject



62
63
64
# File 'lib/decode/language/ruby.rb', line 62

def self.tags
  TAGS
end