Class: WeWorkRemotely::Category

Inherits:
Object
  • Object
show all
Defined in:
lib/weworkremotely/category.rb

Constant Summary collapse

@@all =
[]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Category

Returns a new instance of Category.



6
7
8
9
# File 'lib/weworkremotely/category.rb', line 6

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

Instance Attribute Details

#jobsObject

Returns the value of attribute jobs.



2
3
4
# File 'lib/weworkremotely/category.rb', line 2

def jobs
  @jobs
end

#nameObject

Returns the value of attribute name.



2
3
4
# File 'lib/weworkremotely/category.rb', line 2

def name
  @name
end

Class Method Details

.allObject



11
12
13
# File 'lib/weworkremotely/category.rb', line 11

def self.all
  @@all
end

.create(name) ⇒ Object



23
24
25
26
27
# File 'lib/weworkremotely/category.rb', line 23

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

.destroy_allObject



15
16
17
# File 'lib/weworkremotely/category.rb', line 15

def self.destroy_all
  @@all.clear
end

.find_by_name(name) ⇒ Object



42
43
44
# File 'lib/weworkremotely/category.rb', line 42

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

.find_or_create_by_name(name) ⇒ Object



38
39
40
# File 'lib/weworkremotely/category.rb', line 38

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

Instance Method Details

#add_job(job) ⇒ Object



29
30
31
32
# File 'lib/weworkremotely/category.rb', line 29

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

#companiesObject



34
35
36
# File 'lib/weworkremotely/category.rb', line 34

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

#saveObject



19
20
21
# File 'lib/weworkremotely/category.rb', line 19

def save
  @@all << self
end