Sha256: 97f6ec4a4581b8b34649e33f4c1879e7ffc6719cb36f154d9693436150808350
Contents?: true
Size: 971 Bytes
Versions: 1
Compression:
Stored size: 971 Bytes
Contents
module RailsERD class Relationship class Cardinality CARDINALITY_NAMES = %w{one_to_one one_to_many many_to_many} #:nodoc: ORDER = {} #:nodoc: class << self # Returns the cardinality as symbol. attr_reader :type def from_macro(macro) #:nodoc: case macro when :has_and_belongs_to_many then ManyToMany when :has_many then OneToMany when :has_one then OneToOne end end def <=>(other) #:nodoc: ORDER[self] <=> ORDER[other] end CARDINALITY_NAMES.each do |cardinality| define_method :"#{cardinality}?" do type == cardinality end end end CARDINALITY_NAMES.each_with_index do |cardinality, i| klass = Cardinality.const_set cardinality.camelize.to_sym, Class.new(Cardinality) { @@type = cardinality } ORDER[klass] = i end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails-erd-0.1.1 | lib/rails_erd/relationship/cardinality.rb |