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
- #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 'activesupport/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 'activesupport/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 'activesupport/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 'activesupport/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 |