Class: VisualizeRuby::Builder
- Inherits:
-
Object
- Object
- VisualizeRuby::Builder
- Defined in:
- lib/visualize_ruby/builder.rb
Defined Under Namespace
Classes: Result
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(ruby_code:, in_line_local_method_calls: true) ⇒ Builder
constructor
A new instance of Builder.
Constructor Details
#initialize(ruby_code:, in_line_local_method_calls: true) ⇒ Builder
Returns a new instance of Builder.
7 8 9 10 |
# File 'lib/visualize_ruby/builder.rb', line 7 def initialize(ruby_code:, in_line_local_method_calls: true) @ruby_code = InputCoercer.new(ruby_code, name: :ruby_code) @in_line_local_method_calls = in_line_local_method_calls end |
Instance Method Details
#build ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/visualize_ruby/builder.rb', line 12 def build ruby_code = DissociatedIntrospection::RubyCode.build_from_source(@ruby_code.read) ruby_class = DissociatedIntrospection::RubyClass.new(ruby_code) if ruby_class.class? if @in_line_local_method_calls do_in_lining(ruby_class) else Result.new( ruby_code: @ruby_code.input, ast: ruby_code.ast, graphs: build_from_class(ruby_class), options: { label: ruby_class.class_name } ) end elsif (ruby_code) Result.new( ruby_code: @ruby_code.input, ast: ruby_code.ast, graphs: (ruby_code) ) else Result.new( ruby_code: @ruby_code.input, ast: ruby_code.ast, graphs: [Graph.new(ast: ruby_code.ast)] ) end end |