Class: Trac::Ticket
- Inherits:
-
Object
- Object
- Trac::Ticket
- Defined in:
- lib/trac4r/ticket.rb
Overview
This class represents a ticket as it is retrieved from the database Custom fields are detected and available via runtime-dispatched methods.
See method_missing
Instance Attribute Summary collapse
-
#cc ⇒ Object
Integer.
-
#created_at ⇒ Object
Integer.
-
#description ⇒ Object
Integer.
-
#id ⇒ Object
Integer.
-
#keywords ⇒ Object
Integer.
-
#milestone ⇒ Object
Integer.
-
#owner ⇒ Object
Integer.
-
#priority ⇒ Object
Integer.
-
#reporter ⇒ Object
Integer.
-
#severity ⇒ Object
Integer.
-
#status ⇒ Object
Integer.
-
#summary ⇒ Object
Integer.
-
#type ⇒ Object
Integer.
-
#updated_at ⇒ Object
Integer.
-
#version ⇒ Object
Integer.
Class Method Summary collapse
-
.load(params) ⇒ Object
loads a ticket from the XMLRPC response.
Instance Method Summary collapse
-
#check ⇒ Object
checks if all attributes are set.
-
#initialize(id = 0) ⇒ Ticket
constructor
returns a new ticket.
-
#method_missing(sym, *args) ⇒ Object
If a method call has no args and matches an instance variable, we return its value.
Constructor Details
#initialize(id = 0) ⇒ Ticket
returns a new ticket
22 23 24 25 |
# File 'lib/trac4r/ticket.rb', line 22 def initialize id=0 @id = id @severity=@milestone=@status=@type=@priority=@version=@reporter=@owner= @cc= @summary=@description=@keywords="" end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args) ⇒ Object
If a method call has no args and matches an instance variable, we return its value. e.g. if our tickets have a custom field called work_units, then some_ticket.work_units will retrieve that value. This currently only allows retrieval and not updating the value.
40 41 42 43 44 45 46 |
# File 'lib/trac4r/ticket.rb', line 40 def method_missing(sym,*args) if args.size == 0 && instance_variables.include?("@" + sym.to_s) instance_eval("@" + sym.to_s) else super.method_missing(sym,args) end end |
Instance Attribute Details
#cc ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def cc @cc end |
#created_at ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def created_at @created_at end |
#description ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def description @description end |
#id ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def id @id end |
#keywords ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def keywords @keywords end |
#milestone ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def milestone @milestone end |
#owner ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def owner @owner end |
#priority ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def priority @priority end |
#reporter ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def reporter @reporter end |
#severity ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def severity @severity end |
#status ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def status @status end |
#summary ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def summary @summary end |
#type ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def type @type end |
#updated_at ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def updated_at @updated_at end |
#version ⇒ Object
Integer
6 7 8 |
# File 'lib/trac4r/ticket.rb', line 6 def version @version end |
Class Method Details
.load(params) ⇒ Object
loads a ticket from the XMLRPC response
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/trac4r/ticket.rb', line 49 def self.load params ticket = self.new params[0] ticket.created_at = params[1] ticket.updated_at = params[2] attributes = params[3] attributes.each do |key,value| ticket.instance_variable_set("@#{key}".to_sym,value) end return ticket end |
Instance Method Details
#check ⇒ Object
checks if all attributes are set
28 29 30 31 32 33 |
# File 'lib/trac4r/ticket.rb', line 28 def check instance_variables.each do |v| return false if instance_variable_get(v.to_sym).nil? end return true end |