Class: Schofield::Generators::Association
- Inherits:
-
Object
- Object
- Schofield::Generators::Association
- Defined in:
- lib/generators/schofield/association.rb
Constant Summary collapse
- ONE_TO_ONE =
'1-1'
- ONE_TO_MANY =
'1-*'
Class Attribute Summary collapse
-
.all ⇒ Object
Returns the value of attribute all.
Instance Attribute Summary collapse
-
#cardinality ⇒ Object
Returns the value of attribute cardinality.
-
#child ⇒ Object
readonly
Returns the value of attribute child.
-
#child_name ⇒ Object
readonly
Returns the value of attribute child_name.
-
#nest ⇒ Object
writeonly
Sets the attribute nest.
-
#parent ⇒ Object
readonly
Returns the value of attribute parent.
-
#parent_name ⇒ Object
readonly
Returns the value of attribute parent_name.
-
#polymorphic_name ⇒ Object
readonly
Returns the value of attribute polymorphic_name.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(child, parent_name, one_to_one, polymorphic_name = nil) ⇒ Association
constructor
A new instance of Association.
- #nest? ⇒ Boolean
- #non_polymorphic? ⇒ Boolean
- #non_polymorphic_one_to_many? ⇒ Boolean
- #non_polymorphic_one_to_one? ⇒ Boolean
- #one_to_many? ⇒ Boolean
- #one_to_one? ⇒ Boolean
- #polymorphic? ⇒ Boolean
- #polymorphic_one_to_many? ⇒ Boolean
- #polymorphic_one_to_one? ⇒ Boolean
- #reference_parent ⇒ Object
- #report ⇒ Object
Constructor Details
#initialize(child, parent_name, one_to_one, polymorphic_name = nil) ⇒ Association
Returns a new instance of Association.
29 30 31 32 33 34 35 36 37 |
# File 'lib/generators/schofield/association.rb', line 29 def initialize child, parent_name, one_to_one, polymorphic_name=nil @child = child @child_name = child.name @parent_name = parent_name @polymorphic_name = polymorphic_name @cardinality = one_to_one ? ONE_TO_ONE : ONE_TO_MANY @nest = polymorphic_name.present? && !one_to_one self.class.all << self end |
Class Attribute Details
.all ⇒ Object
Returns the value of attribute all.
12 13 14 |
# File 'lib/generators/schofield/association.rb', line 12 def all @all end |
Instance Attribute Details
#cardinality ⇒ Object
Returns the value of attribute cardinality.
27 28 29 |
# File 'lib/generators/schofield/association.rb', line 27 def cardinality @cardinality end |
#child ⇒ Object (readonly)
Returns the value of attribute child.
25 26 27 |
# File 'lib/generators/schofield/association.rb', line 25 def child @child end |
#child_name ⇒ Object (readonly)
Returns the value of attribute child_name.
25 26 27 |
# File 'lib/generators/schofield/association.rb', line 25 def child_name @child_name end |
#nest=(value) ⇒ Object (writeonly)
Sets the attribute nest
26 27 28 |
# File 'lib/generators/schofield/association.rb', line 26 def nest=(value) @nest = value end |
#parent ⇒ Object (readonly)
Returns the value of attribute parent.
25 26 27 |
# File 'lib/generators/schofield/association.rb', line 25 def parent @parent end |
#parent_name ⇒ Object (readonly)
Returns the value of attribute parent_name.
25 26 27 |
# File 'lib/generators/schofield/association.rb', line 25 def parent_name @parent_name end |
#polymorphic_name ⇒ Object (readonly)
Returns the value of attribute polymorphic_name.
25 26 27 |
# File 'lib/generators/schofield/association.rb', line 25 def polymorphic_name @polymorphic_name end |
Class Method Details
.reference_parents ⇒ Object
15 16 17 |
# File 'lib/generators/schofield/association.rb', line 15 def self.reference_parents all.each { |a| a.reference_parent } end |
Instance Method Details
#nest? ⇒ Boolean
39 40 41 |
# File 'lib/generators/schofield/association.rb', line 39 def nest? @nest end |
#non_polymorphic? ⇒ Boolean
71 72 73 |
# File 'lib/generators/schofield/association.rb', line 71 def non_polymorphic? !polymorphic? end |
#non_polymorphic_one_to_many? ⇒ Boolean
87 88 89 |
# File 'lib/generators/schofield/association.rb', line 87 def non_polymorphic_one_to_many? non_polymorphic? && one_to_many? end |
#non_polymorphic_one_to_one? ⇒ Boolean
83 84 85 |
# File 'lib/generators/schofield/association.rb', line 83 def non_polymorphic_one_to_one? non_polymorphic? && one_to_one? end |
#one_to_many? ⇒ Boolean
63 64 65 |
# File 'lib/generators/schofield/association.rb', line 63 def one_to_many? @cardinality == Association::ONE_TO_MANY end |
#one_to_one? ⇒ Boolean
59 60 61 |
# File 'lib/generators/schofield/association.rb', line 59 def one_to_one? @cardinality == Association::ONE_TO_ONE end |
#polymorphic? ⇒ Boolean
67 68 69 |
# File 'lib/generators/schofield/association.rb', line 67 def polymorphic? @polymorphic_name.present? end |
#polymorphic_one_to_many? ⇒ Boolean
79 80 81 |
# File 'lib/generators/schofield/association.rb', line 79 def polymorphic_one_to_many? polymorphic? && one_to_many? end |
#polymorphic_one_to_one? ⇒ Boolean
75 76 77 |
# File 'lib/generators/schofield/association.rb', line 75 def polymorphic_one_to_one? polymorphic? && one_to_one? end |
#reference_parent ⇒ Object
43 44 45 46 |
# File 'lib/generators/schofield/association.rb', line 43 def reference_parent @parent = Levels.find(@parent_name) @parent.child_associations << self end |
#report ⇒ Object
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/generators/schofield/association.rb', line 48 def report <<-STRING.gsub(/^ {8}/, '') parent: #{@parent.name} child: #{@child.name} nest: #{@nest ? 'yes' : 'no'} cardinality: #{@cardinality} polymorphic_name: #{@polymorphic_name} --- STRING end |