Class: ActiveSupport::CodeGenerator
- Defined in:
 - lib/active_support/code_generator.rb
 
Overview
:nodoc:
Defined Under Namespace
Classes: MethodSet
Class Method Summary collapse
Instance Method Summary collapse
- #define_cached_method(name, namespace:, as: name, &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.
      48 49 50 51 52 53  | 
    
      # File 'lib/active_support/code_generator.rb', line 48 def initialize(owner, path, line) @owner = owner @path = path @line = line @namespaces = Hash.new { |h, k| h[k] = MethodSet.new(k) } end  | 
  
Class Method Details
.batch(owner, path, line) ⇒ Object
      36 37 38 39 40 41 42 43 44 45  | 
    
      # File 'lib/active_support/code_generator.rb', line 36 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
#define_cached_method(name, namespace:, as: name, &block) ⇒ Object
      55 56 57  | 
    
      # File 'lib/active_support/code_generator.rb', line 55 def define_cached_method(name, namespace:, as: name, &block) @namespaces[namespace].define_cached_method(name, as: as, &block) end  | 
  
#execute ⇒ Object
      59 60 61 62 63  | 
    
      # File 'lib/active_support/code_generator.rb', line 59 def execute @namespaces.each_value do |method_set| method_set.apply(@owner, @path, @line - 1) end end  |