Sha256: 7c6dc073c3325bc18ae6fb2719a3837cb03145e43330060ba5b9b4e7181e41a0

Contents?: true

Size: 661 Bytes

Versions: 1

Compression:

Stored size: 661 Bytes

Contents

class Class

  # Get all class descendants
  # `ApplicationModel.descendants # get all DB models`
  def descendants fast = false
    ObjectSpace.each_object(Class).select do |klass|
      if fast
        klass < self
      else
        klass.ancestors.include?(self)
      end
    end - [self]
  end

  # OrgsController.source_location -> ./apps/controllers/orgs_controller.rb
  def source_location as_folder=false
    root = Lux.root.to_s

    for name in instance_methods(false)
      src = instance_method(name).source_location.first.split(root)[1] || next
      src = '.%s' % src
      return as_folder ? File.dirname(src) : src
    end

    nil
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lux-fw-0.6.2 ./lib/overload/class.rb