meta_project 0.4.3 → 0.4.4

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.
@@ -0,0 +1,572 @@
1
+ # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
2
+ # generated by wsdl2ruby
3
+ # changed so that classes are wrapped into module DevTools::RAA
4
+ # changed RaaServicePortType to RaaService class
5
+
6
+ require 'soap/rpc/driver'
7
+
8
+ module DevTools
9
+
10
+ module RAA
11
+
12
+ class Gem
13
+ @@schema_type = "Gem"
14
+ @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
15
+
16
+ def id
17
+ @id
18
+ end
19
+
20
+ def id=(value)
21
+ @id = value
22
+ end
23
+
24
+ def category
25
+ @category
26
+ end
27
+
28
+ def category=(value)
29
+ @category = value
30
+ end
31
+
32
+ def owner
33
+ @owner
34
+ end
35
+
36
+ def owner=(value)
37
+ @owner = value
38
+ end
39
+
40
+ def project
41
+ @project
42
+ end
43
+
44
+ def project=(value)
45
+ @project = value
46
+ end
47
+
48
+ def updated
49
+ @updated
50
+ end
51
+
52
+ def updated=(value)
53
+ @updated = value
54
+ end
55
+
56
+ def created
57
+ @created
58
+ end
59
+
60
+ def created=(value)
61
+ @created = value
62
+ end
63
+
64
+ def initialize(id = nil,
65
+ category = nil,
66
+ owner = nil,
67
+ project = nil,
68
+ updated = nil,
69
+ created = nil)
70
+ @id = id
71
+ @category = category
72
+ @owner = owner
73
+ @project = project
74
+ @updated = updated
75
+ @created = created
76
+ end
77
+ end
78
+
79
+ # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
80
+ class Category
81
+ @@schema_type = "Category"
82
+ @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
83
+
84
+ def major
85
+ @major
86
+ end
87
+
88
+ def major=(value)
89
+ @major = value
90
+ end
91
+
92
+ def minor
93
+ @minor
94
+ end
95
+
96
+ def minor=(value)
97
+ @minor = value
98
+ end
99
+
100
+ def initialize(major = nil,
101
+ minor = nil)
102
+ @major = major
103
+ @minor = minor
104
+ end
105
+ end
106
+
107
+ # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
108
+ class Owner
109
+ @@schema_type = "Owner"
110
+ @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
111
+
112
+ def id
113
+ @id
114
+ end
115
+
116
+ def id=(value)
117
+ @id = value
118
+ end
119
+
120
+ def email
121
+ @email
122
+ end
123
+
124
+ def email=(value)
125
+ @email = value
126
+ end
127
+
128
+ def name
129
+ @name
130
+ end
131
+
132
+ def name=(value)
133
+ @name = value
134
+ end
135
+
136
+ def initialize(id = nil,
137
+ email = nil,
138
+ name = nil)
139
+ @id = id
140
+ @email = email
141
+ @name = name
142
+ end
143
+ end
144
+
145
+ # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
146
+ class Project
147
+ @@schema_type = "Project"
148
+ @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
149
+
150
+ def name
151
+ @name
152
+ end
153
+
154
+ def name=(value)
155
+ @name = value
156
+ end
157
+
158
+ def short_description
159
+ @short_description
160
+ end
161
+
162
+ def short_description=(value)
163
+ @short_description = value
164
+ end
165
+
166
+ def version
167
+ @version
168
+ end
169
+
170
+ def version=(value)
171
+ @version = value
172
+ end
173
+
174
+ def status
175
+ @status
176
+ end
177
+
178
+ def status=(value)
179
+ @status = value
180
+ end
181
+
182
+ def url
183
+ @url
184
+ end
185
+
186
+ def url=(value)
187
+ @url = value
188
+ end
189
+
190
+ def download
191
+ @download
192
+ end
193
+
194
+ def download=(value)
195
+ @download = value
196
+ end
197
+
198
+ def license
199
+ @license
200
+ end
201
+
202
+ def license=(value)
203
+ @license = value
204
+ end
205
+
206
+ def description
207
+ @description
208
+ end
209
+
210
+ def description=(value)
211
+ @description = value
212
+ end
213
+
214
+ def description_style
215
+ @description_style
216
+ end
217
+
218
+ def description_style=(value)
219
+ @description_style = value
220
+ end
221
+
222
+ def updated
223
+ @updated
224
+ end
225
+
226
+ def updated=(value)
227
+ @updated = value
228
+ end
229
+
230
+ def history
231
+ @history
232
+ end
233
+
234
+ def history=(value)
235
+ @history = value
236
+ end
237
+
238
+ def dependency
239
+ @dependency
240
+ end
241
+
242
+ def dependency=(value)
243
+ @dependency = value
244
+ end
245
+
246
+ def initialize(name = nil,
247
+ short_description = nil,
248
+ version = nil,
249
+ status = nil,
250
+ url = nil,
251
+ download = nil,
252
+ license = nil,
253
+ description = nil,
254
+ description_style = nil,
255
+ updated = nil,
256
+ history = nil,
257
+ dependency = nil)
258
+ @name = name
259
+ @short_description = short_description
260
+ @version = version
261
+ @status = status
262
+ @url = url
263
+ @download = download
264
+ @license = license
265
+ @description = description
266
+ @description_style = description_style
267
+ @updated = updated
268
+ @history = history
269
+ @dependency = dependency
270
+ end
271
+ end
272
+
273
+ # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
274
+ class ProjectDependency
275
+ @@schema_type = "ProjectDependency"
276
+ @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
277
+
278
+ def project
279
+ @project
280
+ end
281
+
282
+ def project=(value)
283
+ @project = value
284
+ end
285
+
286
+ def version
287
+ @version
288
+ end
289
+
290
+ def version=(value)
291
+ @version = value
292
+ end
293
+
294
+ def description
295
+ @description
296
+ end
297
+
298
+ def description=(value)
299
+ @description = value
300
+ end
301
+
302
+ def initialize(project = nil,
303
+ version = nil,
304
+ description = nil)
305
+ @project = project
306
+ @version = version
307
+ @description = description
308
+ end
309
+ end
310
+
311
+ # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
312
+ class GemArray < Array
313
+ # Contents type should be dumped here...
314
+ @@schema_type = "GemArray"
315
+ @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
316
+ end
317
+
318
+ # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
319
+ class OwnerArray < Array
320
+ # Contents type should be dumped here...
321
+ @@schema_type = "OwnerArray"
322
+ @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
323
+ end
324
+
325
+ # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
326
+ class ProjectArray < Array
327
+ # Contents type should be dumped here...
328
+ @@schema_type = "ProjectArray"
329
+ @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
330
+ end
331
+
332
+ # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
333
+ class ProjectDependencyArray < Array
334
+ # Contents type should be dumped here...
335
+ @@schema_type = "ProjectDependencyArray"
336
+ @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
337
+ end
338
+
339
+ # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
340
+ class StringArray < Array
341
+ # Contents type should be dumped here...
342
+ @@schema_type = "StringArray"
343
+ @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
344
+ end
345
+
346
+ # http://xml.apache.org/xml-soap
347
+ class Map < Array
348
+ # Contents type should be dumped here...
349
+ @@schema_type = "Map"
350
+ @@schema_ns = "http://xml.apache.org/xml-soap"
351
+ end
352
+
353
+
354
+ class RaaService < SOAP::RPC::Driver
355
+ MappingRegistry = ::SOAP::Mapping::Registry.new
356
+
357
+ MappingRegistry.set(
358
+ DevTools::RAA::Gem,
359
+ ::SOAP::SOAPStruct,
360
+ ::SOAP::Mapping::Registry::TypedStructFactory,
361
+ { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Gem") }
362
+ )
363
+ MappingRegistry.set(
364
+ DevTools::RAA::Category,
365
+ ::SOAP::SOAPStruct,
366
+ ::SOAP::Mapping::Registry::TypedStructFactory,
367
+ { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Category") }
368
+ )
369
+ MappingRegistry.set(
370
+ DevTools::RAA::Owner,
371
+ ::SOAP::SOAPStruct,
372
+ ::SOAP::Mapping::Registry::TypedStructFactory,
373
+ { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Owner") }
374
+ )
375
+ MappingRegistry.set(
376
+ DevTools::RAA::Project,
377
+ ::SOAP::SOAPStruct,
378
+ ::SOAP::Mapping::Registry::TypedStructFactory,
379
+ { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Project") }
380
+ )
381
+ MappingRegistry.set(
382
+ DevTools::RAA::ProjectArray,
383
+ ::SOAP::SOAPArray,
384
+ ::SOAP::Mapping::Registry::TypedArrayFactory,
385
+ { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Project") }
386
+ )
387
+ MappingRegistry.set(
388
+ DevTools::RAA::ProjectDependencyArray,
389
+ ::SOAP::SOAPArray,
390
+ ::SOAP::Mapping::Registry::TypedArrayFactory,
391
+ { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "ProjectDependency") }
392
+ )
393
+ MappingRegistry.set(
394
+ DevTools::RAA::StringArray,
395
+ ::SOAP::SOAPArray,
396
+ ::SOAP::Mapping::Registry::TypedArrayFactory,
397
+ { :type => XSD::QName.new("http://www.w3.org/2001/XMLSchema", "string") }
398
+ )
399
+ MappingRegistry.set(
400
+ DevTools::RAA::Map,
401
+ ::SOAP::SOAPArray,
402
+ ::SOAP::Mapping::Registry::TypedArrayFactory,
403
+ { :type => XSD::QName.new("http://www.w3.org/2001/XMLSchema", "anyType") }
404
+ )
405
+ MappingRegistry.set(
406
+ DevTools::RAA::OwnerArray,
407
+ ::SOAP::SOAPArray,
408
+ ::SOAP::Mapping::Registry::TypedArrayFactory,
409
+ { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Owner") }
410
+ )
411
+ MappingRegistry.set(
412
+ DevTools::RAA::ProjectDependency,
413
+ ::SOAP::SOAPStruct,
414
+ ::SOAP::Mapping::Registry::TypedStructFactory,
415
+ { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "ProjectDependency") }
416
+ )
417
+ Methods = [
418
+ ["gem", "gem", [
419
+ ["in", "name",
420
+ [SOAP::SOAPString]],
421
+ ["retval", "return",
422
+ [::SOAP::SOAPStruct, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Gem"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
423
+ ["dependents", "dependents", [
424
+ ["in", "name",
425
+ [SOAP::SOAPString]],
426
+ ["in", "version",
427
+ [SOAP::SOAPString]],
428
+ ["retval", "return",
429
+ [::SOAP::SOAPArray, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "ProjectDependency"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
430
+ ["names", "names", [
431
+ ["retval", "return",
432
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
433
+ ["size", "size", [
434
+ ["retval", "return",
435
+ [SOAP::SOAPInt]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
436
+ ["list_by_category", "list_by_category", [
437
+ ["in", "major",
438
+ [SOAP::SOAPString]],
439
+ ["in", "minor",
440
+ [SOAP::SOAPString]],
441
+ ["retval", "return",
442
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
443
+ ["tree_by_category", "tree_by_category", [
444
+ ["retval", "return",
445
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "anyType"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
446
+ ["list_recent_updated", "list_recent_updated", [
447
+ ["in", "idx",
448
+ [SOAP::SOAPInt]],
449
+ ["retval", "return",
450
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
451
+ ["list_recent_created", "list_recent_created", [
452
+ ["in", "idx",
453
+ [SOAP::SOAPInt]],
454
+ ["retval", "return",
455
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
456
+ ["list_updated_since", "list_updated_since", [
457
+ ["in", "date",
458
+ [SOAP::SOAPDateTime]],
459
+ ["in", "idx",
460
+ [SOAP::SOAPInt]],
461
+ ["retval", "return",
462
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
463
+ ["list_created_since", "list_created_since", [
464
+ ["in", "date",
465
+ [SOAP::SOAPDateTime]],
466
+ ["in", "idx",
467
+ [SOAP::SOAPInt]],
468
+ ["retval", "return",
469
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
470
+ ["list_by_owner", "list_by_owner", [
471
+ ["in", "owner_id",
472
+ [SOAP::SOAPInt]],
473
+ ["retval", "return",
474
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
475
+ ["search_name", "search_name", [
476
+ ["in", "substring",
477
+ [SOAP::SOAPString]],
478
+ ["in", "idx",
479
+ [SOAP::SOAPInt]],
480
+ ["retval", "return",
481
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
482
+ ["search_short_description", "search_short_description", [
483
+ ["in", "substring",
484
+ [SOAP::SOAPString]],
485
+ ["in", "idx",
486
+ [SOAP::SOAPInt]],
487
+ ["retval", "return",
488
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
489
+ ["search_owner", "search_owner", [
490
+ ["in", "substring",
491
+ [SOAP::SOAPString]],
492
+ ["in", "idx",
493
+ [SOAP::SOAPInt]],
494
+ ["retval", "return",
495
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
496
+ ["search_version", "search_version", [
497
+ ["in", "substring",
498
+ [SOAP::SOAPString]],
499
+ ["in", "idx",
500
+ [SOAP::SOAPInt]],
501
+ ["retval", "return",
502
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
503
+ ["search_status", "search_status", [
504
+ ["in", "substring",
505
+ [SOAP::SOAPString]],
506
+ ["in", "idx",
507
+ [SOAP::SOAPInt]],
508
+ ["retval", "return",
509
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
510
+ ["search_description", "search_description", [
511
+ ["in", "substring",
512
+ [SOAP::SOAPString]],
513
+ ["in", "idx",
514
+ [SOAP::SOAPInt]],
515
+ ["retval", "return",
516
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
517
+ ["search", "search", [
518
+ ["in", "substring",
519
+ [SOAP::SOAPString]],
520
+ ["retval", "return",
521
+ [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "anyType"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
522
+ ["owner", "owner", [
523
+ ["in", "owner_id",
524
+ [SOAP::SOAPInt]],
525
+ ["retval", "return",
526
+ [::SOAP::SOAPStruct, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Owner"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
527
+ ["list_owner", "list_owner", [
528
+ ["in", "idx",
529
+ [SOAP::SOAPInt]],
530
+ ["retval", "return",
531
+ [::SOAP::SOAPArray, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Owner"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
532
+ ["update", "update", [
533
+ ["in", "name",
534
+ [SOAP::SOAPString]],
535
+ ["in", "pass",
536
+ [SOAP::SOAPString]],
537
+ ["in", "gem",
538
+ [::SOAP::SOAPStruct, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Gem"]],
539
+ ["retval", "return",
540
+ [::SOAP::SOAPStruct, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Gem"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
541
+ ["update_pass", "update_pass", [
542
+ ["in", "name",
543
+ [SOAP::SOAPString]],
544
+ ["in", "oldpass",
545
+ [SOAP::SOAPString]],
546
+ ["in", "newpass",
547
+ [SOAP::SOAPString]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"]
548
+ ]
549
+
550
+ DefaultEndpointUrl = "http://raa.ruby-lang.org/soapsrv"
551
+
552
+ def initialize(endpoint_url = nil)
553
+ endpoint_url ||= DefaultEndpointUrl
554
+ super(endpoint_url, nil)
555
+ self.mapping_registry = MappingRegistry
556
+ init_methods
557
+ end
558
+
559
+ private
560
+
561
+ def init_methods
562
+ Methods.each do |name_as, name, params, soapaction, namespace|
563
+ qname = XSD::QName.new(namespace, name_as)
564
+ @proxy.add_method(qname, soapaction, name, params)
565
+ add_rpc_method_interface(name, params)
566
+ end
567
+ end
568
+ end
569
+
570
+ end
571
+
572
+ end
@@ -14,6 +14,11 @@ module MetaProject
14
14
  XForge::SourceForgeTracker,
15
15
  ]
16
16
  end
17
+
18
+ def issue(issue_identifier)
19
+ Issue.new(self, :identifier => issue_identifier)
20
+ end
21
+
17
22
  end
18
23
  end
19
24
  end
@@ -2,9 +2,17 @@ module MetaProject
2
2
  module Tracker
3
3
  # This module should be included by trackers that follow a digit-based issue scheme
4
4
  module DigitIssues
5
- def identifier_regexp
6
- /#(\d+)/
5
+ # Patois issue pattern
6
+ def issue_pattern
7
+ /\#([\d]+)/
7
8
  end
9
+ module_function :issue_pattern
10
+
11
+ # Patois command pattern
12
+ def command_pattern
13
+ /([A-Za-z]*).?(\#[\d]+(?:(?:[, &]*|\s?and\s?)\#[\d]+)*)/
14
+ end
15
+ module_function :command_pattern
8
16
 
9
17
  def identifier_examples
10
18
  ["#1926", "#1446"]
@@ -13,10 +21,10 @@ module MetaProject
13
21
  # TODO: find a way to extract just the issue summaries so they can be stored in dc as an array
14
22
  # embedded in the revision object. that way we don't alter the original commit message
15
23
  def markup(text)
16
- text.gsub(identifier_regexp) do |match|
24
+ text.gsub(issue_pattern) do |match|
17
25
  issue_identifier = $1
18
26
  issue = issue(issue_identifier)
19
- issue ? "<a href=\"#{issue.uri}\">#{issue.summary}</a>" : "\##{issue_identifier}"
27
+ (issue && issue.url) ? "<a href=\"#{issue.url}\">\##{issue_identifier}: #{issue.summary}</a>" : "\##{issue_identifier}"
20
28
  end
21
29
  end
22
30
  end
@@ -1,10 +1,52 @@
1
1
  module MetaProject
2
2
  module Tracker
3
3
  class Issue
4
- attr_reader :uri, :summary
4
+ attr_reader :attributes
5
5
 
6
- def initialize(uri, summary)
7
- @uri, @summary = uri, summary
6
+ def initialize(tracker, attributes={})
7
+ @tracker = tracker
8
+ @attributes = attributes
9
+ end
10
+
11
+ # An URL pointing to the issue in the associated tracker, or nil if
12
+ # the issue doesn't exist.
13
+ def url
14
+ @tracker.materialize(self) unless @attributes[:url]
15
+ @attributes[:url]
16
+ end
17
+
18
+ # The id of the issue in the tracker
19
+ def identifier
20
+ @tracker.materialize(self) unless @attributes[:identifier]
21
+ @attributes[:identifier]
22
+ end
23
+
24
+ # The summary of the issue (typically a one-liner)
25
+ def summary
26
+ @tracker.materialize(self) unless @attributes[:summary]
27
+ @attributes[:summary]
28
+ end
29
+
30
+ # The details of the issue (typically several lines)
31
+ # NOTE: This may be currently be nil for some trackers.
32
+ def detail
33
+ @tracker.materialize(self) unless @attributes[:detail]
34
+ @attributes[:detail]
35
+ end
36
+
37
+ # Adds a comment (consisting of the +detail+) to the issue
38
+ def update
39
+ @tracker.update(self)
40
+ end
41
+
42
+ # Creates a new issue (consisting of the +summary+ and +detail+)
43
+ def create
44
+ @tracker.create(self)
45
+ end
46
+
47
+ # Closes the issue (adding a comment consisting of the +detail+)
48
+ def close
49
+ @tracker.close(self)
8
50
  end
9
51
  end
10
52
  end