Sha256: c25a4691cfd4e21aa6ab2d0cd29aa1494c3745edc9ff2d83991975150e8315e1

Contents?: true

Size: 1.18 KB

Versions: 6

Compression:

Stored size: 1.18 KB

Contents

module MLBGameday
  class Team
    attr_reader :id, :name, :city, :league, :division, :code, :file_code

    def initialize(opts = {})
      @id        = opts[:id]
      @name      = opts[:name]
      @city      = opts[:city]
      @league    = opts[:league]
      @division  = opts[:division]
      @alt_names = opts[:alt_names]
      @code      = opts[:code]
      @file_code = opts[:file_code]
    end
    
    def full_name
      "#{city} #{name}"
    end
    
    def names
      @names ||= (implicit_names + alt_names).uniq
    end
    
    def is_called?(name)
      names.include?(name.downcase)
    end

    # So we don't get huge printouts
    def inspect
      %(#<MLBGameday::Team @name="#{@name}">)
    end
    
    private
    def alt_names
      @alt_names ||= []
    end
    
    def implicit_names
      result = strict_names + [code, singular_name, despaced_name].map(&:downcase)
      result << city.downcase unless ["New York", "Chicago"].include?(city)
      
      result.uniq
    end
    
    def strict_names
      [name, full_name].map(&:downcase)
    end
    
    def singular_name
      name.chomp('s')
    end
    
    def despaced_name
      name.tr(' ', '')
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mlb_gameday-0.1.9 lib/mlb_gameday/team.rb
mlb_gameday-0.1.8 lib/mlb_gameday/team.rb
mlb_gameday-0.1.7 lib/mlb_gameday/team.rb
mlb_gameday-0.1.6 lib/mlb_gameday/team.rb
mlb_gameday-0.1.5 lib/mlb_gameday/team.rb
mlb_gameday-0.1.4 lib/mlb_gameday/team.rb