lib/generators/schofield/association.rb in schofield-0.2.2 vs lib/generators/schofield/association.rb in schofield-0.3.0

- old
+ new

@@ -1,94 +1,94 @@ module Schofield - + module Generators - + class Association - + ONE_TO_ONE = '1-1' ONE_TO_MANY = '1-*' - - - + + + class << self; attr_accessor :all end @all = [] - + def self.reference_parents all.each { |a| a.reference_parent } end - + def self.report all.each { |a| Responses.say a.report } end - - - + + + attr_reader :parent, :child, :parent_name, :child_name , :polymorphic_name attr_writer :nest attr_accessor :cardinality - + 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 - + def nest? @nest end - + def reference_parent @parent = Levels.find(@parent_name) @parent.child_associations << self end - + def report <<-STRING.gsub(/^ {8}/, '') parent: #{@parent.name} child: #{@child.name} nest: #{@nest ? 'yes' : 'no'} cardinality: #{@cardinality} polymorphic_name: #{@polymorphic_name} --- STRING end - + def one_to_one? @cardinality == Association::ONE_TO_ONE end - + def one_to_many? @cardinality == Association::ONE_TO_MANY end - + def polymorphic? @polymorphic_name.present? end - + def non_polymorphic? !polymorphic? end - + def polymorphic_one_to_one? polymorphic? && one_to_one? end - + def polymorphic_one_to_many? polymorphic? && one_to_many? end - + def non_polymorphic_one_to_one? non_polymorphic? && one_to_one? end - + def non_polymorphic_one_to_many? non_polymorphic? && one_to_many? end end - + end end \ No newline at end of file