Class: ActiveSupport::CodeGenerator
- Defined in:
 - activesupport/lib/active_support/code_generator.rb
 
Overview
:nodoc:
Defined Under Namespace
Classes: MethodSet
Class Method Summary collapse
Instance Method Summary collapse
- #class_eval {|@sources| ... } ⇒ Object
 - #define_cached_method(canonical_name, namespace:, as: nil, &block) ⇒ Object
 - #execute ⇒ Object
 - 
  
    
      #initialize(owner, path, line)  ⇒ CodeGenerator 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of CodeGenerator.
 
Constructor Details
#initialize(owner, path, line) ⇒ CodeGenerator
Returns a new instance of CodeGenerator.
      53 54 55 56 57 58 59  | 
    
      # File 'activesupport/lib/active_support/code_generator.rb', line 53 def initialize(owner, path, line) @owner = owner @path = path @line = line @namespaces = Hash.new { |h, k| h[k] = MethodSet.new(k) } @sources = [] end  | 
  
Class Method Details
.batch(owner, path, line) ⇒ Object
      41 42 43 44 45 46 47 48 49 50  | 
    
      # File 'activesupport/lib/active_support/code_generator.rb', line 41 def batch(owner, path, line) if owner.is_a?(CodeGenerator) yield owner else instance = new(owner, path, line) result = yield instance instance.execute result end end  | 
  
Instance Method Details
#class_eval {|@sources| ... } ⇒ Object
      61 62 63  | 
    
      # File 'activesupport/lib/active_support/code_generator.rb', line 61 def class_eval yield @sources end  | 
  
#define_cached_method(canonical_name, namespace:, as: nil, &block) ⇒ Object
      65 66 67  | 
    
      # File 'activesupport/lib/active_support/code_generator.rb', line 65 def define_cached_method(canonical_name, namespace:, as: nil, &block) @namespaces[namespace].define_cached_method(canonical_name, as: as, &block) end  | 
  
#execute ⇒ Object
      69 70 71 72 73 74 75 76 77  | 
    
      # File 'activesupport/lib/active_support/code_generator.rb', line 69 def execute @namespaces.each_value do |method_set| method_set.apply(@owner, @path, @line - 1) end unless @sources.empty? @owner.class_eval("# frozen_string_literal: true\n" + @sources.join(";"), @path, @line - 1) end end  |