Class: YUML::Class
- Inherits:
-
Object
- Object
- YUML::Class
- Defined in:
- lib/yuml/class.rb
Overview
Represents a yUML Class
Instance Attribute Summary collapse
Instance Method Summary collapse
- #associated_with(dest, type: :directed_assoication, cardinality: nil, association_name: cardinality) ⇒ Object
- #attach_note(content, color = nil) ⇒ Object
- #has_a(dest, type: :aggregation, cardinality: nil, association_name: cardinality) ⇒ Object
-
#initialize ⇒ Class
constructor
A new instance of Class.
- #is_a(dest, type: :inheritance) ⇒ Object
- #methods(*args) ⇒ Object
- #relationships ⇒ Object
- #to_s ⇒ Object
- #variables(*args) ⇒ Object
Constructor Details
#initialize ⇒ Class
Returns a new instance of Class.
6 7 8 9 10 |
# File 'lib/yuml/class.rb', line 6 def initialize @methods = [] @variables = [] @relationships = [] end |
Instance Attribute Details
#name(name = nil, prototype = nil) ⇒ Object
12 13 14 15 16 |
# File 'lib/yuml/class.rb', line 12 def name(name = nil, prototype = nil) @name = name if name @prototype = prototype if prototype "#{normalized_prototype}#{@name}" end |
Instance Method Details
#associated_with(dest, type: :directed_assoication, cardinality: nil, association_name: cardinality) ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/yuml/class.rb', line 49 def associated_with(dest, type: :directed_assoication, cardinality: nil, association_name: cardinality) cardinality ||= association_name type = :directed_assoication unless %i( association directed_assoication two_way_association dependency ).include?(type) relationship = YUML::Relationship.send(type, cardinality) @relationships << "[#{name}]#{relationship}[#{dest.name}]" end |
#attach_note(content, color = nil) ⇒ Object
58 59 60 |
# File 'lib/yuml/class.rb', line 58 def attach_note(content, color = nil) @relationships << "[#{name}]-#{YUML::Note.create(content, color)}" end |
#has_a(dest, type: :aggregation, cardinality: nil, association_name: cardinality) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/yuml/class.rb', line 36 def has_a(dest, type: :aggregation, cardinality: nil, association_name: cardinality) cardinality ||= association_name type = :aggregation unless %i(composition aggregation).include?(type) relationship = YUML::Relationship.send(type, cardinality) @relationships << "[#{name}]#{relationship}[#{dest.name}]" end |
#is_a(dest, type: :inheritance) ⇒ Object
43 44 45 46 47 |
# File 'lib/yuml/class.rb', line 43 def is_a(dest, type: :inheritance) type = :inheritance unless %i(inheritance interface).include?(type) relationship = YUML::Relationship.send(type) @relationships << "[#{dest.name}]#{relationship}[#{name}]" end |
#methods(*args) ⇒ Object
30 31 32 33 34 |
# File 'lib/yuml/class.rb', line 30 def methods(*args) args.flatten! return attributes(@methods) if args.empty? @methods << normalize(args) end |
#relationships ⇒ Object
66 67 68 |
# File 'lib/yuml/class.rb', line 66 def relationships "#{@relationships.join(',')}" unless @relationships.empty? end |
#to_s ⇒ Object
62 63 64 |
# File 'lib/yuml/class.rb', line 62 def to_s "[#{name}#{variables}#{methods}]" end |
#variables(*args) ⇒ Object
24 25 26 27 28 |
# File 'lib/yuml/class.rb', line 24 def variables(*args) args.flatten! return attributes(@variables) if args.empty? @variables << normalize(args) end |