class DissociatedIntrospection::WrapInModules
Attributes
ruby_code[R]
Public Class Methods
new(ruby_code:)
click to toggle source
@param [DissociatedIntrospection::RubyCode] ruby_code
# File lib/dissociated_introspection/wrap_in_modules.rb, line 4 def initialize(ruby_code:) @ruby_code = ruby_code end
Public Instance Methods
call(modules:)
click to toggle source
@param [String] modules @return [DissociatedIntrospection::RubyCode]
# File lib/dissociated_introspection/wrap_in_modules.rb, line 10 def call(modules:) return ruby_code if modules.nil? || modules.empty? wrap_in_modules(modules) end
Private Instance Methods
wrap_in_modules(modules)
click to toggle source
# File lib/dissociated_introspection/wrap_in_modules.rb, line 19 def wrap_in_modules(modules) ruby_string = ruby_code.source_from_ast modules.split("::").reverse.each do |module_name| ruby_string = wrap_module(module_name, ruby_string) end RubyCode.build_from_source(ruby_string, parse_with_comments: ruby_code.comments?) end
wrap_module(module_name, ruby_string)
click to toggle source
# File lib/dissociated_introspection/wrap_in_modules.rb, line 27 def wrap_module(module_name, ruby_string) <<-RUBY module #{module_name} #{ruby_string} end RUBY end