Class: Metasploit::ERD::Entity::Namespace
- Inherits:
-
Object
- Object
- Metasploit::ERD::Entity::Namespace
- Includes:
- Clusterable
- Defined in:
- lib/metasploit/erd/entity/namespace.rb
Overview
Entity for a namespace with a given name.
Instance Attribute Summary collapse
-
#namespace_name ⇒ String
readonly
The
Module#name
of a namespace module for a collection ofClass<ActiveRecord::Base>
.
Instance Method Summary collapse
-
#classes ⇒ Array<Class<ActiveRecord::Base>
The entities in the namespace with
namespace_name
. -
#cluster ⇒ Metasploit::ERD::Cluster
Cluster seeded with all #classes in this namespace.
-
#diagram(options = {}) ⇒ Metasploit::ERD:Diagram
Diagram using Clusterable#domain.
-
#initialize(namespace_name) ⇒ Namespace
constructor
A new instance of Namespace.
Methods included from Clusterable
Constructor Details
#initialize(namespace_name) ⇒ Namespace
Returns a new instance of Namespace.
21 22 23 |
# File 'lib/metasploit/erd/entity/namespace.rb', line 21 def initialize(namespace_name) @namespace_name = namespace_name end |
Instance Attribute Details
#namespace_name ⇒ String (readonly)
The Module#name
of a namespace module for a collection of Class<ActiveRecord::Base>
9 10 11 |
# File 'lib/metasploit/erd/entity/namespace.rb', line 9 def namespace_name @namespace_name end |
Instance Method Details
#classes ⇒ Array<Class<ActiveRecord::Base>
Note:
Caller must load all ActiveRecord::Base
descendants that should be in the search domain.
The entities in the namespace with namespace_name
.
32 33 34 35 36 37 38 |
# File 'lib/metasploit/erd/entity/namespace.rb', line 32 def classes ActiveRecord::Base.descendants.select { |klass| klass.module_parents.any? { |parent| parent.name == namespace_name } } end |
#cluster ⇒ Metasploit::ERD::Cluster
Cluster seeded with all #classes in this namespace.
43 44 45 |
# File 'lib/metasploit/erd/entity/namespace.rb', line 43 def cluster Metasploit::ERD::Cluster.new(*classes) end |
#diagram(options = {}) ⇒ Metasploit::ERD:Diagram
Diagram using Clusterable#domain.
58 59 60 61 62 63 64 65 |
# File 'lib/metasploit/erd/entity/namespace.rb', line 58 def diagram(={}) = { basename: "#{namespace_name.underscore}.erd", title: "#{namespace_name} Namespace Entity-Relationship Diagram" }.merge() super() end |