module LazyRecord::Nesting

Apply the same namespace nesting as self to another object.

Public Instance Methods

apply_nesting(class_name) click to toggle source
# File lib/lazy_record/nesting.rb, line 6
def apply_nesting(class_name)
  "#{to_s.split('::')[0..-2].join('::')}::#{class_name}"
end
apply_nesting_one_level_back(class_name) click to toggle source
# File lib/lazy_record/nesting.rb, line 10
def apply_nesting_one_level_back(class_name)
  "#{to_s.split('::')[0..-3].join('::')}::#{class_name}"
end
lazy_const_get(class_name) click to toggle source
# File lib/lazy_record/nesting.rb, line 14
def lazy_const_get(class_name)
  lambda do
    begin
      const_get(class_name)
    rescue NameError
      const_get apply_nesting(class_name)
    end
  end
end
lazy_const_get_one_level_back(class_name) click to toggle source
# File lib/lazy_record/nesting.rb, line 24
def lazy_const_get_one_level_back(class_name)
  lambda do
    begin
      const_get(class_name)
    rescue NameError
      const_get apply_nesting_one_level_back(class_name)
    end
  end
end