Class: Project

Inherits:
ActiveRecord::Base
  • Object
show all
Extended by:
ProjectAdapter
Includes:
Houston::Props, Retirement
Defined in:
app/models/project.rb

Constant Summary

Constants included from Houston::Props

Houston::Props::VALID_PROP_NAME

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ProjectAdapter

adapters, has_adapter

Methods included from Houston::Props

#get_prop, #props, #update_prop!, #update_props!, valid_prop_name!, valid_prop_name?

Methods included from Retirement

#retire!, #retired?, #unretire!

Class Method Details

.[](slug) ⇒ Object



26
27
28
# File 'app/models/project.rb', line 26

def self.[](slug)
  find_by_slug(slug)
end

.with_feature(feature) ⇒ Object

Features ————————————————————————- #



35
36
37
# File 'app/models/project.rb', line 35

def self.with_feature(feature)
  where ["? = ANY(projects.selected_features)", feature]
end

Instance Method Details

#colorObject



20
21
22
# File 'app/models/project.rb', line 20

def color
  Houston.config.project_colors[color_name]
end

#feature?(feature_slug) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'app/models/project.rb', line 47

def feature?(feature_slug)
  selected_features.member? feature_slug.to_sym
end

#featuresObject



39
40
41
# File 'app/models/project.rb', line 39

def features
  (Houston.config.project_features & selected_features) + [:settings]
end

#selected_featuresObject



43
44
45
# File 'app/models/project.rb', line 43

def selected_features
  Array(super).map(&:to_sym)
end

#teammatesObject



69
70
71
72
# File 'app/models/project.rb', line 69

def teammates
  return User.none if team.nil?
  team.users
end

#to_paramObject



16
17
18
# File 'app/models/project.rb', line 16

def to_param
  slug
end