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



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

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

.with_feature(feature) ⇒ Object

Teammates ————————————————————————- #



52
53
54
# File 'app/models/project.rb', line 52

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

Instance Method Details

#color_valueObject



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

def color_value
  Houston.config.project_colors[color]
end

#extended_attributesObject

Raises:

  • (NotImplementedError)


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

def extended_attributes
  raise NotImplementedError, "This feature has been deprecated; use props"
end

#extended_attributes=(value) ⇒ Object

Raises:

  • (NotImplementedError)


29
30
31
# File 'app/models/project.rb', line 29

def extended_attributes=(value)
  raise NotImplementedError, "This feature has been deprecated; use props"
end

#feature?(feature_slug) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
# File 'app/models/project.rb', line 64

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

#featuresObject



56
57
58
# File 'app/models/project.rb', line 56

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

#followersObject

<– redefine followers to be everyone who participates in or follows the project



91
92
93
94
# File 'app/models/project.rb', line 91

def followers # <-- redefine followers to be everyone who participates in or follows the project
  puts "DEPRECATED: Project#followers is deprecated; use Project#teammates instead"
  teammates
end

#selected_featuresObject



60
61
62
# File 'app/models/project.rb', line 60

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

#teammatesObject



86
87
88
89
# File 'app/models/project.rb', line 86

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

#to_paramObject



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

def to_param
  slug
end

#view_optionsObject

Raises:

  • (NotImplementedError)


33
34
35
# File 'app/models/project.rb', line 33

def view_options
  raise NotImplementedError, "This feature has been deprecated; use props"
end

#view_options=(value) ⇒ Object

Raises:

  • (NotImplementedError)


37
38
39
# File 'app/models/project.rb', line 37

def view_options=(value)
  raise NotImplementedError, "This feature has been deprecated; use props"
end