Sha256: a4f2619d521fff8e7db7390716c0c70b213da4d1f989c29a3ae599ca137d0f0d

Contents?: true

Size: 759 Bytes

Versions: 19

Compression:

Stored size: 759 Bytes

Contents

module Rasti
  class App
    class Utils
      class << self

        def classes_in(namespace, superclass=nil)
          [].tap do |classes|
            namespace.constants.each do |name|
              constant = namespace.const_get name
              if constant.class == Module
                classes_in(constant, superclass).each { |c| classes << c }
              elsif constant.class == Class && (superclass.nil? || constant.ancestors.include?(superclass))
                classes << constant
              end
            end
          end
        end

        def namespace_of(klass)
          namespace = klass.name.split('::')[0..-2].join('::')
          namespace.empty? ? nil : Object.const_get(namespace)
        end

      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
rasti-app-7.0.1 lib/rasti/app/utils.rb
rasti-app-7.0.0 lib/rasti/app/utils.rb
rasti-app-6.0.1 lib/rasti/app/utils.rb
rasti-app-6.0.0 lib/rasti/app/utils.rb
rasti-app-5.0.0 lib/rasti/app/utils.rb
rasti-app-4.0.2 lib/rasti/app/utils.rb
rasti-app-4.0.1 lib/rasti/app/utils.rb
rasti-app-4.0.0 lib/rasti/app/utils.rb
rasti-app-3.0.0 lib/rasti/app/utils.rb
rasti-app-2.2.4 lib/rasti/app/utils.rb
rasti-app-2.2.3 lib/rasti/app/utils.rb
rasti-app-2.2.2 lib/rasti/app/utils.rb
rasti-app-2.2.1 lib/rasti/app/utils.rb
rasti-app-2.2.0 lib/rasti/app/utils.rb
rasti-app-2.1.1 lib/rasti/app/utils.rb
rasti-app-2.1.0 lib/rasti/app/utils.rb
rasti-app-2.0.0 lib/rasti/app/utils.rb
rasti-app-1.1.0 lib/rasti/app/utils.rb
rasti-app-1.0.0 lib/rasti/app/utils.rb