Sha256: f1be373c0b2694524e90475a48aa2e27f3fc4a9cf388d158763d84b4f87245fe

Contents?: true

Size: 692 Bytes

Versions: 1

Compression:

Stored size: 692 Bytes

Contents

class WeWorkRemotely::Company
  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)
    company = WeWorkRemotely::Company.new(name)
    company.save
    company
  end

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

  def categories
    self.jobs.collect { |job| job.category }.uniq
  end

  def self.find_or_create_by_name(name, *job)
    self.all.detect { |company| company.name == name } || self.create(name)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

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