meta_project 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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