class ActiveModel::AttributeMethods::ClassMethods::CodeGenerator

Public Class Methods

batch(owner, path, line) { |owner| ... } click to toggle source
# File lib/active_model/attribute_methods.rb, line 340
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
new(owner, path, line) click to toggle source
# File lib/active_model/attribute_methods.rb, line 352
def initialize(owner, path, line)
  @owner = owner
  @path = path
  @line = line
  @sources = ["# frozen_string_literal: true\n"]
  @renames = {}
end

Public Instance Methods

<<(source_line) click to toggle source
# File lib/active_model/attribute_methods.rb, line 360
def <<(source_line)
  @sources << source_line
end
execute() click to toggle source
# File lib/active_model/attribute_methods.rb, line 368
def execute
  @owner.module_eval(@sources.join(";"), @path, @line - 1)
  @renames.each do |old_name, new_name|
    @owner.alias_method new_name, old_name
    @owner.undef_method old_name
  end
end
rename_method(old_name, new_name) click to toggle source
# File lib/active_model/attribute_methods.rb, line 364
def rename_method(old_name, new_name)
  @renames[old_name] = new_name
end