Class: Ditz::Release

Inherits:
ModelObject show all
Defined in:
lib/model-objects.rb

Defined Under Namespace

Classes: Error

Instance Method Summary collapse

Methods inherited from ModelObject

#after_deserialize, #before_serialize, #changed!, #changed?, changes_are_logged, create_interactively, #each_modelobject, field, fields, from, inherited, #initialize, #log, #save!, #to_yaml_properties, #to_yaml_type, yaml_domain, yaml_other_thing

Constructor Details

This class inherits a constructor from Ditz::ModelObject

Instance Method Details

#issues_from(project) ⇒ Object



21
# File 'lib/model-objects.rb', line 21

def issues_from project; project.issues.select { |i| i.release == name } end

#release!(project, who, comment) ⇒ Object

Raises:



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/model-objects.rb', line 23

def release! project, who, comment
  raise Error, "already released" if released?

  issues = issues_from project
  bad = issues.find { |i| i.open? }
  raise Error, "open issue #{bad.name} must be reassigned" if bad

  self.release_time = Time.now
  self.status = :released
  log "released", who, comment
end

#released?Boolean

Returns:

  • (Boolean)


18
# File 'lib/model-objects.rb', line 18

def released?; self.status == :released end

#unreleased?Boolean

Returns:

  • (Boolean)


19
# File 'lib/model-objects.rb', line 19

def unreleased?; !released? end