Sha256: 1147ade828d232ddc17e595485d8539ab576752b6c0131a4cfeb6286cbbdeb13

Contents?: true

Size: 1.46 KB

Versions: 6

Compression:

Stored size: 1.46 KB

Contents

module SportDB
  module Models


class Team < ActiveRecord::Base

  has_many :home_games, :class_name => 'Game', :foreign_key => 'team1_id'
  has_many :away_games, :class_name => 'Game', :foreign_key => 'team2_id'

  belongs_to :country, :class_name => 'Country', :foreign_key => 'country_id'  
  

  def self.create_from_ary!( teams, more_values={} )
    teams.each do |values|
      
      ## key & title required
      attr = {
        :key   => values[0]
      }

      ## title (split of optional synonyms)
      # e.g. FC Bayern Muenchen|Bayern Muenchen|Bayern
      titles = values[1].split('|')
      
      attr[ :title ]    =  titles[0]
      ## add optional synonyms
      attr[ :synonyms ] =  titles[1..-1].join('|')  if titles.size > 1

      
      attr = attr.merge( more_values )
      
      ## check for optional values
      values[2..-1].each do |value|
        if value.is_a? Country
          attr[ :country_id ] = value.id
        elsif value.length == 3   ## assume its a tag (three latters)
          attr[ :tag ] = value
        else
          attr[ :title2 ] = value
        end
      end

      ## check if exists
      team = Team.find_by_key( values[0] )
      if team.present?
        puts "*** warning team with key '#{values[0]}' exists; skipping create"
      else      
        Team.create!( attr )
      end
    end # each team
  end
  
end  # class Team
  
  
 end # module Models
end # module SportDB

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sportdb-0.4.5 lib/sportdb/models/team.rb
sportdb-0.4.4 lib/sportdb/models/team.rb
sportdb-0.4.3 lib/sportdb/models/team.rb
sportdb-0.4.2 lib/sportdb/models/team.rb
sportdb-0.4.1 lib/sportdb/models/team.rb
sportdb-0.4.0 lib/sportdb/models/team.rb