class Schofield::Generators::Association

Constants

ONE_TO_MANY
ONE_TO_ONE

Attributes

all[RW]
cardinality[RW]
child[R]
child_name[R]
nest[W]
parent[R]
parent_name[R]
polymorphic_name[R]

Public Class Methods

new(child, parent_name, one_to_one, polymorphic_name=nil) click to toggle source
# 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
reference_parents() click to toggle source
# File lib/generators/schofield/association.rb, line 15
def self.reference_parents
  all.each { |a| a.reference_parent }
end
report() click to toggle source
# File lib/generators/schofield/association.rb, line 19
def self.report
  all.each { |a| Responses.say a.report }
end

Public Instance Methods

nest?() click to toggle source
# File lib/generators/schofield/association.rb, line 39
def nest?
  @nest
end
non_polymorphic?() click to toggle source
# File lib/generators/schofield/association.rb, line 71
def non_polymorphic?
  !polymorphic?
end
non_polymorphic_one_to_many?() click to toggle source
# 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?() click to toggle source
# File lib/generators/schofield/association.rb, line 83
def non_polymorphic_one_to_one?
  non_polymorphic? && one_to_one?
end
one_to_many?() click to toggle source
# File lib/generators/schofield/association.rb, line 63
def one_to_many?
  @cardinality == Association::ONE_TO_MANY
end
one_to_one?() click to toggle source
# File lib/generators/schofield/association.rb, line 59
def one_to_one?
  @cardinality == Association::ONE_TO_ONE
end
polymorphic?() click to toggle source
# File lib/generators/schofield/association.rb, line 67
def polymorphic?
  @polymorphic_name.present?
end
polymorphic_one_to_many?() click to toggle source
# File lib/generators/schofield/association.rb, line 79
def polymorphic_one_to_many?
  polymorphic? && one_to_many?
end
polymorphic_one_to_one?() click to toggle source
# File lib/generators/schofield/association.rb, line 75
def polymorphic_one_to_one?
  polymorphic? && one_to_one?
end
reference_parent() click to toggle source
# File lib/generators/schofield/association.rb, line 43
def reference_parent
  @parent = Levels.find(@parent_name)
  @parent.child_associations << self
end
report() click to toggle source
# 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