Class: DataMapper::Visualizer::Visualization
- Inherits:
-
Object
- Object
- DataMapper::Visualizer::Visualization
- Defined in:
- lib/dm-visualizer/visualization.rb
Overview
The base class for all visualizations.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#full_names ⇒ Object
Specifies whether to demodulize class names.
-
#naming ⇒ Object
Specifies which naming convention to use (
:relational
or:schema
). -
#project ⇒ Object
readonly
The project that will be visualized.
-
#repository_names ⇒ Object
readonly
Mapping of DataMapper repository names and their actual names.
Instance Method Summary collapse
-
#class_name(obj) ⇒ String
Returns the class name of a given object.
-
#foreign_key_name(key) ⇒ String
Returns the name the given foreign key.
-
#initialize(options = {}) ⇒ Visualization
constructor
Initializes a new visualization.
-
#model_name(model) ⇒ String
Returns the name of a model.
-
#model_repository_name(model) ⇒ String
Returns the repository name of a model.
-
#property_name(property) ⇒ String
Returns the name of a given property.
-
#property_type_name(property) ⇒ String
Returns the type name of a property.
-
#visualize ⇒ Object
protected
Default method which visualizes the DataMapper models, properties and relationships.
-
#visualize!(*arguments) ⇒ Object
Loads the project and visualizes it.
Constructor Details
#initialize(options = {}) ⇒ Visualization
Initializes a new visualization.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/dm-visualizer/visualization.rb', line 44 def initialize(={}) @project = Project.new() @naming = :relational @full_names = false @repository_names = {} if [:repository_names] [:repository_names].each do |name,db_name| @repository_names[name.to_sym] = db_name.to_s end end if [:repository_name] @database_names[:default] = [:repository_name].to_s end if [:naming] @naming = [:naming].to_sym end if .has_key?(:full_names) @full_names = [:full_names] end end |
Instance Attribute Details
#full_names ⇒ Object
Specifies whether to demodulize class names.
23 24 25 |
# File 'lib/dm-visualizer/visualization.rb', line 23 def full_names @full_names end |
#naming ⇒ Object
Specifies which naming convention to use
(:relational
or :schema
).
20 21 22 |
# File 'lib/dm-visualizer/visualization.rb', line 20 def naming @naming end |
#project ⇒ Object (readonly)
The project that will be visualized
13 14 15 |
# File 'lib/dm-visualizer/visualization.rb', line 13 def project @project end |
#repository_names ⇒ Object (readonly)
Mapping of DataMapper repository names and their actual names.
16 17 18 |
# File 'lib/dm-visualizer/visualization.rb', line 16 def repository_names @repository_names end |
Instance Method Details
#class_name(obj) ⇒ String
Returns the class name of a given object.
80 81 82 83 84 85 86 87 88 89 |
# File 'lib/dm-visualizer/visualization.rb', line 80 def class_name(obj) name = if (obj.class == Class || obj.class == Module) obj.name else obj.class.name end name = DataMapper::Inflector.demodulize(name) unless @full_names return name end |
#foreign_key_name(key) ⇒ String
Returns the name the given foreign key.
113 114 115 116 117 118 |
# File 'lib/dm-visualizer/visualization.rb', line 113 def foreign_key_name(key) key = key.to_s key.chomp!('_id') unless @naming == :schema return key end |
#model_name(model) ⇒ String
Returns the name of a model.
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# File 'lib/dm-visualizer/visualization.rb', line 155 def model_name(model) if @naming == :schema name = model_repository_name(model) storage_name = model.storage_names[:default] storage_name ||= NamingConventions::Resource::UnderscoredAndPluralized.call(model.name) if name "#{name}.#{storage_name}" else storage_name end else class_name(model) end end |
#model_repository_name(model) ⇒ String
Returns the repository name of a model.
142 143 144 |
# File 'lib/dm-visualizer/visualization.rb', line 142 def model_repository_name(model) @repository_names[model.default_repository_name] end |
#property_name(property) ⇒ String
Returns the name of a given property.
100 101 102 |
# File 'lib/dm-visualizer/visualization.rb', line 100 def property_name(property) property.name.to_s end |
#property_type_name(property) ⇒ String
Returns the type name of a property.
129 130 131 |
# File 'lib/dm-visualizer/visualization.rb', line 129 def property_type_name(property) class_name(property.class) end |
#visualize ⇒ Object (protected)
Default method which visualizes the DataMapper models, properties and relationships.
192 193 |
# File 'lib/dm-visualizer/visualization.rb', line 192 def visualize end |
#visualize!(*arguments) ⇒ Object
Loads the project and visualizes it.
177 178 179 180 181 |
# File 'lib/dm-visualizer/visualization.rb', line 177 def visualize!(*arguments) @project.load! visualize(*arguments) end |