Sha256: 7540e9503e74eb3bc7bbd0958a7fd8687888870c35238f1736ed7912e0548d09

Contents?: true

Size: 773 Bytes

Versions: 1

Compression:

Stored size: 773 Bytes

Contents

class WeWorkRemotely::Category
  attr_accessor :name, :jobs

  @@all = []

  def initialize(name)
    @name = name
    @jobs = []
  end

  def self.all
    @@all
  end

  def self.destroy_all
    @@all.clear
  end

  def save
    @@all << self
  end

  def self.create(name)
    category = WeWorkRemotely::Category.new(name)
    category.save
    category
  end

  def add_job(job)
    self.jobs << job unless self.jobs.include?(job)
    job.category = self unless job.category == self
  end

  def companies
    self.jobs.collect { |j| j.company }.uniq
  end

  def self.find_or_create_by_name(name)
    self.all.detect { |category| category.name == name } || self.create(name)
  end

  def self.find_by_name(name)
    self.all.detect { |cat| cat.name == name }
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
weworkremotely-1.3.3 lib/weworkremotely/category.rb