Sha256: 5205aaa442f1fe0e184c4850f5bb68603e97eb5ea33f0841bd6d5f28a15562d3

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

require 'kangaroo/doc/base'

module Kangaroo
  module Doc
    class Namespace < Base
      def register
        nspace = register_with_yard 'module', name do |r|
          mixin = P('Kangaroo::Util::Loader::Namespace')
          r.mixins(:class).unshift(mixin) unless r.mixins(:class).include?(mixin)
          r.add_file "(none)"
        end
        
        register_namespaces_or_models
      end
      
      def register_namespaces_or_models
        @object.constants.each do |obj_name|
          obj_const = @object.const_get obj_name
          
          if obj_const.is_a?(Class) && obj_const.included_modules.map(&:name).include?("Kangaroo::Model::Attributes")
            Klass.new(obj_const, logger).register
          elsif obj_const.is_a?(Module) && obj_const.respond_to?(:namespace)
            Namespace.new(obj_const, logger).register
          end
        end
      end
      
      protected
      def loader_modules
        dir = File.expand_path "../../util/loader", __FILE__
        
        [
          File.join(dir, 'model.rb'),
          File.join(dir, 'namespace.rb'),
          File.join(dir, 'root_namespace.rb')
        ]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kangaroo-0.1.0.alpha1 lib/kangaroo/doc/namespace.rb