Module: Decode::Language::Ruby

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

The Ruby language.

Defined Under Namespace

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

Constant Summary collapse

PREFIX =

The symbol which is used to separate the specified definition from the parent scope.

{
  class: '::',
  module: '::',
  def: ':',
  constant: '::',
  defs: '.',
}.freeze

Class Method Summary collapse

Class Method Details

.join(symbols, absolute = true) ⇒ Object

Generate a language-specific fully qualified name.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/decode/language/ruby.rb', line 44

def self.join(symbols, absolute = true)
  buffer = String.new
  
  symbols.each do |symbol|
    if absolute == false
      absolute = true
    else
      buffer << PREFIX[symbol.kind]
    end
    
    buffer << symbol.name.to_s
  end
  
  return buffer
end

.nameObject

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



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

def self.name
  "ruby"
end

.reference(value) ⇒ Object

Generate a language-specific reference.



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

def self.reference(value)
  Reference.new(value)
end

.segments_for(input, &block) ⇒ Object

Parse the input yielding interleaved comments and code segments.



75
76
77
# File 'lib/decode/language/ruby.rb', line 75

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

.symbols_for(input, &block) ⇒ Object

Parse the input yielding symbols.



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

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