jiraSOAP 0.6.1 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. data/.yardopts +10 -0
  2. data/ChangeLog +18 -0
  3. data/{LICENSE → LICENSE.txt} +0 -0
  4. data/README.markdown +4 -6
  5. data/lib/jiraSOAP.rb +0 -2
  6. data/lib/jiraSOAP/JIRAservice.rb +5 -5
  7. data/lib/jiraSOAP/api.rb +77 -696
  8. data/lib/jiraSOAP/api/additions.rb +22 -0
  9. data/lib/jiraSOAP/api/attachments.rb +33 -0
  10. data/lib/jiraSOAP/api/avatars.rb +64 -0
  11. data/lib/jiraSOAP/api/comments.rb +33 -0
  12. data/lib/jiraSOAP/api/filters.rb +20 -0
  13. data/lib/jiraSOAP/api/issue_data_types.rb +51 -0
  14. data/lib/jiraSOAP/api/issues.rb +102 -0
  15. data/lib/jiraSOAP/api/project_roles.rb +49 -0
  16. data/lib/jiraSOAP/api/projects.rb +67 -0
  17. data/lib/jiraSOAP/api/schemes.rb +17 -0
  18. data/lib/jiraSOAP/api/server_info.rb +18 -0
  19. data/lib/jiraSOAP/api/users.rb +35 -0
  20. data/lib/jiraSOAP/api/versions.rb +50 -0
  21. data/lib/jiraSOAP/entities.rb +5 -1
  22. data/lib/jiraSOAP/entities/attachment_metadata.rb +9 -22
  23. data/lib/jiraSOAP/entities/avatar.rb +10 -23
  24. data/lib/jiraSOAP/entities/comment.rb +12 -31
  25. data/lib/jiraSOAP/entities/component.rb +1 -1
  26. data/lib/jiraSOAP/entities/custom_field_value.rb +5 -11
  27. data/lib/jiraSOAP/entities/described_entity.rb +4 -4
  28. data/lib/jiraSOAP/entities/dynamic_entity.rb +5 -5
  29. data/lib/jiraSOAP/entities/entity.rb +28 -13
  30. data/lib/jiraSOAP/entities/field.rb +1 -1
  31. data/lib/jiraSOAP/entities/filter.rb +5 -14
  32. data/lib/jiraSOAP/entities/issue.rb +29 -88
  33. data/lib/jiraSOAP/entities/issue_property.rb +4 -4
  34. data/lib/jiraSOAP/entities/issue_security_scheme.rb +1 -1
  35. data/lib/jiraSOAP/entities/issue_type.rb +4 -5
  36. data/lib/jiraSOAP/entities/named_entity.rb +4 -4
  37. data/lib/jiraSOAP/entities/notification_scheme.rb +1 -1
  38. data/lib/jiraSOAP/entities/permission.rb +7 -10
  39. data/lib/jiraSOAP/entities/permission_mapping.rb +5 -10
  40. data/lib/jiraSOAP/entities/permission_scheme.rb +3 -4
  41. data/lib/jiraSOAP/entities/priority.rb +4 -3
  42. data/lib/jiraSOAP/entities/project.rb +9 -30
  43. data/lib/jiraSOAP/entities/project_role.rb +1 -1
  44. data/lib/jiraSOAP/entities/resolution.rb +1 -1
  45. data/lib/jiraSOAP/entities/scheme.rb +1 -1
  46. data/lib/jiraSOAP/entities/server_configuration.rb +14 -53
  47. data/lib/jiraSOAP/entities/server_info.rb +8 -26
  48. data/lib/jiraSOAP/entities/status.rb +1 -1
  49. data/lib/jiraSOAP/entities/time_info.rb +5 -10
  50. data/lib/jiraSOAP/entities/user.rb +5 -15
  51. data/lib/jiraSOAP/entities/username.rb +4 -0
  52. data/lib/jiraSOAP/entities/version.rb +6 -20
  53. data/lib/jiraSOAP/handsoap_extensions.rb +4 -2
  54. data/lib/jiraSOAP/macruby_bonuses.rb +12 -5
  55. data/lib/jiraSOAP/url.rb +13 -24
  56. data/yard-jiraSOAP.rb +65 -0
  57. metadata +52 -92
  58. data/lib/jiraSOAP/api/convenience.rb +0 -12
  59. data/lib/jiraSOAP/entities/remote_entity.rb +0 -7
@@ -0,0 +1,17 @@
1
+ module JIRA
2
+ module RemoteAPI
3
+ # @group Working with Schemes
4
+
5
+ # @return [Array<JIRA::NotificationScheme>]
6
+ def get_notification_schemes
7
+ jira_call JIRA::NotificationScheme, 'getNotificationSchemes'
8
+ end
9
+
10
+ # @return [Array<JIRA::PermissionScheme>]
11
+ def get_permission_schemes
12
+ jira_call JIRA::PermissionScheme, 'getPermissionSchemes'
13
+ end
14
+
15
+ # @endgroup
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ module JIRA
2
+ module RemoteAPI
3
+ # @group Getting information about the server
4
+
5
+ # The @build_date attribute is a Time value, but does not include a time.
6
+ # @return [JIRA::ServerInfo]
7
+ def get_server_info
8
+ JIRA::ServerInfo.new_with_xml call( 'getServerInfo' ).first
9
+ end
10
+
11
+ # @return [JIRA::ServerConfiguration]
12
+ def get_server_configuration
13
+ JIRA::ServerConfiguration.new_with_xml call( 'getConfiguration' ).first
14
+ end
15
+
16
+ # @endgroup
17
+ end
18
+ end
@@ -0,0 +1,35 @@
1
+ module JIRA
2
+ module RemoteAPI
3
+ # @group Working with User data
4
+
5
+ # @param [String] user_name
6
+ # @return [JIRA::User]
7
+ def get_user_with_name user_name
8
+ JIRA::User.new_with_xml call( 'getUser', user_name ).first
9
+ end
10
+
11
+ # It seems that creating a user without any permission groups will trigger
12
+ # an exception on some versions of JIRA. The irony is that this method provides
13
+ # no way to add groups. The good news though, is that the creation will still
14
+ # happen; but the user will have no permissions.
15
+ # @param [String] username
16
+ # @param [String] password
17
+ # @param [String] full_name
18
+ # @param [String] email
19
+ # @return [JIRA::User,nil] depending on your JIRA version, this method may
20
+ # always raise an exception instead of actually returning anything
21
+ def create_user username, password, full_name, email
22
+ fragment = call( 'createUser', username, password, full_name, email ).first
23
+ JIRA::User.new_with_xml fragment
24
+ end
25
+
26
+ # @param [String] username
27
+ # @return [Boolean] true if successful
28
+ def delete_user_with_name username
29
+ call 'deleteUser', username
30
+ true
31
+ end
32
+
33
+ # @endgroup
34
+ end
35
+ end
@@ -0,0 +1,50 @@
1
+ module JIRA
2
+ module RemoteAPI
3
+ # @group Working with Versions
4
+
5
+ # @param [String] project_key
6
+ # @return [Array<JIRA::Version>]
7
+ def get_versions_for_project project_key
8
+ jira_call JIRA::Version, 'getVersions', project_key
9
+ end
10
+
11
+ # New versions cannot have the archived bit set and the release date
12
+ # field will ignore the time of day you give it and instead insert
13
+ # the time zone offset as the time of day.
14
+ #
15
+ # Remember that the @release_date field is the tentative release date,
16
+ # so its value is independant of the @released flag.
17
+ #
18
+ # Descriptions do not appear to be included with JIRA::Version objects
19
+ # that SOAP API provides.
20
+ # @param [String] project_key
21
+ # @param [JIRA::Version] version
22
+ # @return [JIRA::Version]
23
+ def add_version_to_project_with_key project_key, version
24
+ JIRA::Version.new_with_xml call( 'addVersion', project_key, version ).first
25
+ end
26
+
27
+ # The archive state can only be set to true for versions that have not been
28
+ # released. However, this is not reflected by the return value of this method.
29
+ # @param [String] project_key
30
+ # @param [String] version_name
31
+ # @param [Boolean] state
32
+ # @return [Boolean] true if successful
33
+ def set_archive_state_for_version_for_project project_key, version_name, state
34
+ call 'archiveVersion', project_key, version_name, state
35
+ true
36
+ end
37
+
38
+ # You can set the release state for a project with this method.
39
+ # @param [String] project_name
40
+ # @param [JIRA::Version] version
41
+ # @return [Boolean] true if successful
42
+ def release_state_for_version_for_project project_name, version
43
+ call 'releaseVersion', project_name, version
44
+ true
45
+ end
46
+
47
+ # @endgroup
48
+ end
49
+ end
50
+
@@ -6,9 +6,11 @@ require 'jiraSOAP/entities/described_entity'
6
6
  require 'jiraSOAP/entities/component'
7
7
  require 'jiraSOAP/entities/field'
8
8
  require 'jiraSOAP/entities/filter'
9
- require 'jiraSOAP/entities/user'
10
9
  require 'jiraSOAP/entities/project_role'
11
10
 
11
+ require 'jiraSOAP/entities/username'
12
+ require 'jiraSOAP/entities/user'
13
+
12
14
  require 'jiraSOAP/entities/field_value'
13
15
  require 'jiraSOAP/entities/custom_field_value'
14
16
 
@@ -20,6 +22,8 @@ require 'jiraSOAP/entities/attachment_metadata'
20
22
  require 'jiraSOAP/entities/scheme'
21
23
  require 'jiraSOAP/entities/notification_scheme'
22
24
  require 'jiraSOAP/entities/issue_security_scheme'
25
+ require 'jiraSOAP/entities/permission'
26
+ require 'jiraSOAP/entities/permission_mapping'
23
27
  require 'jiraSOAP/entities/permission_scheme'
24
28
 
25
29
  require 'jiraSOAP/entities/issue_property'
@@ -1,27 +1,14 @@
1
+ # @todo add an attribute to fetch the attachment
1
2
  # Only contains the metadata for an attachment. The URI for an attachment
2
3
  # appears to be of the form
3
4
  # "{JIRA::JIRAService.endpoint_url}/secure/attachment/{#id}/{#file_name}"
4
5
  class JIRA::AttachmentMetadata < JIRA::NamedEntity
5
- add_attributes({
6
- 'author' => [:author=, :to_s],
7
- 'filename' => [:file_name=, :to_s],
8
- 'mimetype' => [:mime_type=, :to_s],
9
- 'filesize' => [:file_size=, :to_i],
10
- 'created' => [:create_time=, :to_date],
11
- })
12
-
13
- # @return [String]
14
- attr_accessor :author
15
-
16
- # @return [Time]
17
- attr_accessor :create_time
18
-
19
- # @return [String]
20
- attr_accessor :file_name
21
-
22
- # @return [Fixnum] measured in bytes
23
- attr_accessor :file_size
24
-
25
- # @return [String]
26
- attr_accessor :mime_type
6
+ add_attributes(
7
+ ['author', :author, :to_s],
8
+ ['filename', :file_name, :to_s],
9
+ ['mimetype', :mime_type, :to_s],
10
+ # Measured in bytes
11
+ ['filesize', :file_size, :to_i],
12
+ ['created', :create_time, :to_date]
13
+ )
27
14
  end
@@ -1,27 +1,14 @@
1
1
  # @todo find out what the id value of @owner relates to
2
2
  # Contains a base64 encoded avatar image and metadata about the avatar.
3
3
  class JIRA::Avatar < JIRA::DynamicEntity
4
- add_attributes({
5
- 'owner' => [:owner=, :to_s],
6
- 'type' => [:type=, :to_s],
7
- 'contentType' => [:mime_type=, :to_s],
8
- 'base64Data' => [:base64_data=, :to_s],
9
- 'system' => [:system=, :to_boolean],
10
- })
11
-
12
- # @return [String] this seems to be an id ref to some other object
13
- attr_accessor :owner
14
-
15
- # @return [String] the place where the avatar is used (e.g. 'project')
16
- attr_accessor :type
17
-
18
- # @return [String]
19
- attr_accessor :mime_type
20
-
21
- # @return [String]
22
- attr_accessor :base64_data
23
-
24
- # @return [boolean] indicates if the image is the system default
25
- attr_accessor :system
26
- alias_method :system?, :system
4
+ add_attributes(
5
+ # This seems to be an id ref to some other object
6
+ ['owner', :owner, :to_s],
7
+ # The place where the avatar is used (e.g. 'project')
8
+ ['type', :type, :to_s],
9
+ ['contentType', :mime_type, :to_s],
10
+ ['base64Data', :base64_data, :to_s],
11
+ # Indicates if the image is the system default
12
+ ['system', :system, :to_boolean]
13
+ )
27
14
  end
@@ -1,35 +1,16 @@
1
- # Contains a comments body and its metadata.
1
+ # Contains a comment's body and metadata.
2
2
  class JIRA::Comment < JIRA::DynamicEntity
3
- add_attributes({
4
- 'author' => [:author=, :to_s],
5
- 'body' => [:body=, :to_s],
6
- 'groupLevel' => [:group_level=, :to_s],
7
- 'roleLevel' => [:role_level=, :to_s],
8
- 'updateAuthor' => [:update_author=, :to_s],
9
- 'created' => [:create_time=, :to_date],
10
- 'updated' => [:last_updated_time=, :to_date]
11
- })
12
-
13
- # @return [String] a username
14
- attr_accessor :author
15
-
16
- # @return [String]
17
- attr_accessor :role_level
18
-
19
- # @return [String]
20
- attr_accessor :group_level
21
-
22
- # @return [String]
23
- attr_accessor :body
24
-
25
- # @return [Time]
26
- attr_accessor :create_time
27
-
28
- # @return [Time]
29
- attr_accessor :last_updated_time
30
-
31
- # @return [String] a username
32
- attr_accessor :update_author
3
+ add_attributes(
4
+ # A username
5
+ ['author', :author, :to_s],
6
+ ['body', :body, :to_s],
7
+ ['groupLevel', :group_level, :to_s],
8
+ ['roleLevel', :role_level, :to_s],
9
+ # A username
10
+ ['updateAuthor', :update_author, :to_s],
11
+ ['created', :create_time, :to_date],
12
+ ['updated', :last_updated_time, :to_date]
13
+ )
33
14
 
34
15
  # @todo make this method shorter
35
16
  # @param [Handsoap::XmlMason::Node] msg
@@ -1,5 +1,5 @@
1
1
  # Represents a component name and id only. It does not include the component
2
2
  # lead.
3
3
  class JIRA::Component < JIRA::NamedEntity
4
- add_attributes({})
4
+ add_attributes
5
5
  end
@@ -7,17 +7,11 @@
7
7
  # custom fields and a field value is more flexible. You can expect the classes
8
8
  # to merge in the near future.
9
9
  class JIRA::CustomFieldValue < JIRA::DynamicEntity
10
- @attributes = {
11
- 'customfieldId' => [:id=, :to_s],
12
- 'key' => [:key=, :to_s],
13
- 'values' => [:values=, :to_ss]
14
- }
15
-
16
- # @return [String]
17
- attr_accessor :key
18
-
19
- # @return [[String]]
20
- attr_accessor :values
10
+ add_attributes(
11
+ ['customfieldId', :id, :to_s],
12
+ ['key', :key, :to_s],
13
+ ['values', :values, :to_ss]
14
+ )
21
15
 
22
16
  # Generate a SOAP message fragment for the object.
23
17
  # @param [Handsoap::XmlMason::Node] msg SOAP message to add the object to
@@ -1,7 +1,7 @@
1
1
  # @abstract Some named entities have a short description
2
2
  class JIRA::DescribedEntity < JIRA::NamedEntity
3
- add_attributes({ 'description' => [:description=, :to_s] })
4
-
5
- # @return [String] usually a short blurb
6
- attr_accessor :description
3
+ add_attributes(
4
+ # A short blurb.
5
+ ['description', :description, :to_s]
6
+ )
7
7
  end
@@ -1,8 +1,8 @@
1
1
  # @abstract Anything that can be configured has an id field.
2
2
  class JIRA::DynamicEntity < JIRA::Entity
3
- add_attributes({ 'id' => [:id=, :to_s] })
4
-
5
- # @return [String] usually a numerical value, but sometimes
6
- # prefixed with a string (e.g. '12450' or 'customfield_10000')
7
- attr_accessor :id
3
+ add_attributes(
4
+ # Usually a numerical value, but sometimes prefixed with a
5
+ # string (e.g. '12450' or 'customfield_10000')
6
+ ['id', :id, :to_s]
7
+ )
8
8
  end
@@ -1,22 +1,29 @@
1
1
  # @abstract The base class for all JIRA objects that can given by the server.
2
- # @todo remove the need for attr_accessor by having add_attributes make the
3
- # call for me, but I will need to make a YARD plugin to fix the gap in the
4
- # documentation when that happens
5
2
  class JIRA::Entity
6
3
 
7
4
  class << self
8
- # @return [Hash{String => Array}] used by the metaclass
9
- attr_accessor :attributes
10
-
11
- # @param [Hash] attributes
12
- # @return [Hash]
13
- def add_attributes attributes
14
- @attributes = ancestors[1].attributes.dup
15
- @attributes.update attributes
5
+
6
+ # @return [Hash{String=>Array<Symbol,Symbol,Class*>}] used by the
7
+ # metaclass for parsing XML
8
+ attr_accessor :parse
9
+
10
+ # @param [Array<String,Symbol,Class>] attributes
11
+ # @return [nil]
12
+ def add_attributes *attributes
13
+ superclass = ancestors[1]
14
+ @parse = superclass.parse.dup
15
+
16
+ attributes.each { |attribute|
17
+ attr_accessor attribute[1]
18
+ @parse[attribute[0]] = [:"#{attribute[1]}=", *attribute[2,2]]
19
+ alias_method :"#{attribute[1]}?", attribute[1] if attribute[2] == :to_boolean
20
+ #" ruby-mode parse fail
21
+ }
16
22
  end
23
+
17
24
  end
18
25
 
19
- @attributes = {} # needs to be initialized
26
+ @parse = {} # needs to be initialized
20
27
 
21
28
  # @param [Handsoap::XmlQueryFront::NokogiriDriver] frag
22
29
  # @return [JIRA::Entity]
@@ -33,11 +40,19 @@ class JIRA::Entity
33
40
  # methods into Nokogiri classes
34
41
  # @param [Handsoap::XmlQueryFront::NokogiriDriver] frag
35
42
  def initialize_with_xml frag
36
- attributes = self.class.attributes
43
+ attributes = self.class.parse
37
44
  frag.children.each { |node|
38
45
  action = attributes[node.node_name]
39
46
  self.send action[0], (node.send *action[1..-1]) if action
40
47
  #puts "Action is #{action.inspect} for #{node.node_name}"
41
48
  }
42
49
  end
50
+
51
+ # @todo #soapify_for should become #to_soap and should take only the
52
+ # optional argument for wrapper name, otherwise just makes its own
53
+ # own node with appropriate subnodes and returns that as a Handsoap
54
+ # document
55
+ def to_soap node_name = nil
56
+ raise NotImplementedError
57
+ end
43
58
  end
@@ -1,4 +1,4 @@
1
1
  # Represents a field mapping.
2
2
  class JIRA::Field < JIRA::NamedEntity
3
- add_attributes({})
3
+ add_attributes
4
4
  end
@@ -1,17 +1,8 @@
1
1
  # Represents a filter, but does not seem to include the filters JQL query.
2
2
  class JIRA::Filter < JIRA::DescribedEntity
3
- add_attributes({
4
- 'author' => [:author=, :to_s],
5
- 'project' => [:project_name=, :to_s],
6
- 'xml' => [:xml=, :to_s]
7
- })
8
-
9
- # @return [String]
10
- attr_accessor :author
11
-
12
- # @return [String]
13
- attr_accessor :project_name
14
-
15
- # @return [nil]
16
- attr_accessor :xml
3
+ add_attributes(
4
+ ['author', :author, :to_s],
5
+ ['project', :project_name, :to_s],
6
+ ['xml', :xml, :to_s]
7
+ )
17
8
  end
@@ -1,98 +1,39 @@
1
+ # @todo add attributes for the comments and the attachment metadata
1
2
  # Contains most of the data and metadata for a JIRA issue, but does
2
- # not contain the {JIRA::Comment}'s or {JIRA::AttachmentMetadata}.
3
+ # not contain the {JIRA::Comment}s or {JIRA::AttachmentMetadata}.
3
4
  #
4
5
  # This class is easily the most convoluted structure in the API, and will
5
6
  # likely be the greatest source of bugs. The irony of the situation is that
6
7
  # this structure is also the most critical to have in working order.
7
8
  #
8
- # @note Issues with an UNRESOLVED status will have nil for the value of
9
- # #resolution.
9
+ # @note Issues with an UNRESOLVED status will have nil for the value for
10
+ # {#resolution_id}.
10
11
  class JIRA::Issue < JIRA::DynamicEntity
11
- add_attributes({
12
- 'key' => [:key=, :to_s],
13
- 'summary' => [:summary=, :to_s],
14
- 'description' => [:description=, :to_s],
15
- 'type' => [:type_id=, :to_s],
16
- 'status' => [:status_id=, :to_s],
17
- 'assignee' => [:assignee_username=, :to_s],
18
- 'reporter' => [:reporter_username=, :to_s],
19
- 'priority' => [:priority_id=, :to_s],
20
- 'project' => [:project_name=, :to_s],
21
- 'resolution' => [:resolution_id=, :to_s],
22
- 'environment' => [:environment=, :to_s],
23
- 'votes' => [:votes=, :to_i],
24
- 'updated' => [:last_updated_time=, :to_date],
25
- 'created' => [:create_time=, :to_date],
26
- 'duedate' => [:due_date=, :to_date],
27
- 'affectsVersions' => [:affects_versions=, :to_objects, JIRA::Version],
28
- 'fixVersions' => [:fix_versions=, :to_objects, JIRA::Version],
29
- 'components' => [:components=, :to_objects, JIRA::Component],
30
- 'customFieldValues' => [:custom_field_values=, :to_objects, JIRA::CustomFieldValue],
31
- 'attachmentNames' => [:attachment_names=, :to_ss]
32
- })
33
-
34
- # @return [String]
35
- attr_accessor :key
36
-
37
- # @return [String]
38
- attr_accessor :summary
39
-
40
- # @return [String]
41
- attr_accessor :description
42
-
43
- # @return [String]
44
- attr_accessor :type_id
45
-
46
- # @return [Time]
47
- attr_accessor :last_updated_time
48
-
49
- # @return [Fixnum]
50
- attr_accessor :votes
51
-
52
- # @return [String]
53
- attr_accessor :status_id
54
-
55
- # @return [String]
56
- attr_accessor :assignee_username
57
-
58
- # @return [String]
59
- attr_accessor :reporter_username
60
-
61
- # @return [String]
62
- attr_accessor :priority_id
63
-
64
- # @return [String]
65
- attr_accessor :project_name
66
-
67
- # @return [[JIRA::Version]]
68
- attr_accessor :affects_versions
69
-
70
- # @return [Time]
71
- attr_accessor :create_time
72
-
73
- # @return [Time] this is actually a Time object with no time resolution
74
- attr_accessor :due_date
75
-
76
- # @return [[JIRA::Version]]
77
- attr_accessor :fix_versions
78
-
79
- # @return [String]
80
- attr_accessor :resolution_id
81
-
82
- # @return [String]
83
- attr_accessor :environment
84
-
85
- # @return [[JIRA::Component]]
86
- attr_accessor :components
87
-
88
- # @return [[String]]
89
- attr_accessor :attachment_names
90
-
91
- # @return [[JIRA::CustomFieldValue]]
92
- attr_accessor :custom_field_values
12
+ add_attributes(
13
+ ['key', :key, :to_s],
14
+ ['summary', :summary, :to_s],
15
+ ['description', :description, :to_s],
16
+ ['type', :type_id, :to_s],
17
+ ['status', :status_id, :to_s],
18
+ ['assignee', :assignee_username, :to_s],
19
+ ['reporter', :reporter_username, :to_s],
20
+ ['priority', :priority_id, :to_s],
21
+ ['project', :project_name, :to_s],
22
+ ['resolution', :resolution_id, :to_s],
23
+ ['environment', :environment, :to_s],
24
+ ['votes', :votes, :to_i],
25
+ ['updated', :last_updated_time, :to_date],
26
+ ['created', :create_time, :to_date],
27
+ # This is actually a Time object with no time resolution.
28
+ ['duedate', :due_date, :to_date],
29
+ ['affectsVersions', :affects_versions, :to_objects, JIRA::Version],
30
+ ['fixVersions', :fix_versions, :to_objects, JIRA::Version],
31
+ ['components', :components, :to_objects, JIRA::Component],
32
+ ['customFieldValues', :custom_field_values, :to_objects, JIRA::CustomFieldValue],
33
+ ['attachmentNames', :attachment_names, :to_ss]
34
+ )
93
35
 
94
36
  # @todo see if we can use the simple and complex array builders
95
- # @todo make this method shorter
96
37
  # Generate the SOAP message fragment for an issue. Can you spot the oddities
97
38
  # and inconsistencies? (hint: there are many).
98
39
  #
@@ -109,13 +50,13 @@ class JIRA::Issue < JIRA::DynamicEntity
109
50
  # and do not contain the rest of the {JIRA::Component}/{JIRA::Version}
110
51
  # structure.
111
52
  #
112
- # To get the automatic assignee we pass '-1' as the value for @assignee.
53
+ # To get the automatic assignee we pass `'-1'` as the value for @assignee.
113
54
  #
114
55
  # Passing an environment/due date field with a value of nil causes the
115
56
  # server to complain about the formatting of the message.
116
57
  # @param [Handsoap::XmlMason::Node] msg message the node to add the object to
117
58
  def soapify_for(msg)
118
- #might be going away, since it appears to have no effect at creation time
59
+ # might be going away, since it appears to have no effect at creation time
119
60
  msg.add 'reporter', @reporter_name unless @reporter.nil?
120
61
 
121
62
  msg.add 'priority', @priority_id