Sha256: 84d55d6539f9ad0e671ea5397662bbd6ea5aed4a1b942d9eed1c8cf7eae80b4e
Contents?: true
Size: 1.61 KB
Versions: 2
Compression:
Stored size: 1.61 KB
Contents
class Tokens def self.define_token(name) class_eval %{ @#{name} = Tokens.new :#{name}; def Tokens.#{name} @#{name} end } end def to_s @type.to_s end private def initialize(type) @type = type self.freeze end define_token :terminal define_token :role define_token :rolemethod_call define_token :other define_token :call define_token :indexer define_token :block define_token :block_with_bind define_token :initializer define_token :const end class DependencyGraphModel def initialize(dependencies) @dependencies = dependencies end def to_hash @dependecies end def to_s print_dependencies @dependencies,0 end def to_dot res = '' dependencies = denormalize @dependencies dependencies.each{|d| res << d.reverse.join('->') << ' '} 'digraph g{ ' + res + '}' end private def print_dependencies(dependencies,indent) res = '' dependencies.each do |key,value| res << key.to_s if value.instance_of? Hash res << '->' << (print_dependencies value,indent != nil ? indent+4 : nil) elsif res << ':' << value.to_s + ' ' indent.times {res << ' '} unless indent == nil end res << ' ' end res end def denormalize(dependencies) res = [] dependencies.each do |key,value| if value.instance_of? Hash res = denormalize value res.each{|a| a << key} else res << [key] end end res end end
Version data entries
2 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
maroon-0.8.0 | generated/Tokens.rb |
maroon-0.8.0 | lib/Tokens.rb |