Class: YouTrack::Client::Project

Inherits:
Model
  • Object
show all
Defined in:
lib/you_track/client/models/project.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Model

ms_time, #require_admin!

Instance Attribute Details

#leadObject

Returns the value of attribute lead.



10
11
12
# File 'lib/you_track/client/models/project.rb', line 10

def lead
  @lead
end

#prefixObject

Returns the value of attribute prefix.



10
11
12
# File 'lib/you_track/client/models/project.rb', line 10

def prefix
  @prefix
end

#starting_numberObject

Returns the value of attribute starting_number.



10
11
12
# File 'lib/you_track/client/models/project.rb', line 10

def starting_number
  @starting_number
end

Instance Method Details

#add_version(version) ⇒ Object



45
46
47
48
49
50
51
52
53
54
# File 'lib/you_track/client/models/project.rb', line 45

def add_version(version)
  require_admin!

  unless versions.include?(version)
    service.add_project_fix_version('project' => self.id, 'version' => version)
    self.versions << version
  end

  self.versions
end

#custom_fieldsObject



16
17
18
# File 'lib/you_track/client/models/project.rb', line 16

def custom_fields
  service.get_project_custom_fields(self.id).body
end

#issuesObject



12
13
14
# File 'lib/you_track/client/models/project.rb', line 12

def issues
  service.issues.all(self.identity)
end

#reloadObject



56
57
58
# File 'lib/you_track/client/models/project.rb', line 56

def reload
  merge_attributes(collection.reload.get(self.identity).attributes)
end

#remove_version(version) ⇒ Object



60
61
62
63
64
65
66
67
68
69
# File 'lib/you_track/client/models/project.rb', line 60

def remove_version(version)
  require_admin!

  if versions.include?(version)
    service.remove_project_fix_version('project' => self.id, 'version' => version)
    self.versions.delete(version)
  end

  self.versions
end

#saveObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/you_track/client/models/project.rb', line 20

def save
  if new_record?
    requires :name, :prefix

    starting_number = self.starting_number || 1
    lead            = self.lead            || service.current_user

    lead_id = (lead.is_a?(YouTrack::Client::User) ? lead.identity : lead)

    service.create_project(
      "projectId"        => self.prefix,
      "projectName"      => self.name,
      "startingNumber"   => starting_number,
      "projectLeadLogin" => lead_id,
      "description"      => self.description,
    )

    merge_attributes(
      :identity => self.prefix,
    )
  else
    raise NotImplementedError
  end
end