Class: HowlingMine::Issue

Inherits:
Object
  • Object
show all
Defined in:
lib/howlingmine/issue.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/howlingmine/issue.rb', line 11

def method_missing(name, *args)
  cf = custom_fields[name]
  if cf
    cf['value']
  else
    super
  end
end

Instance Attribute Details

#authorObject

Returns the value of attribute author.



4
5
6
# File 'lib/howlingmine/issue.rb', line 4

def author
  @author
end

#created_onObject



58
59
60
# File 'lib/howlingmine/issue.rb', line 58

def created_on
  Time.parse @created_on
end

#descriptionObject

Returns the value of attribute description.



4
5
6
# File 'lib/howlingmine/issue.rb', line 4

def description
  @description
end

#idObject

Returns the value of attribute id.



4
5
6
# File 'lib/howlingmine/issue.rb', line 4

def id
  @id
end

#rawObject

Returns the value of attribute raw.



4
5
6
# File 'lib/howlingmine/issue.rb', line 4

def raw
  @raw
end

#subjectObject

Returns the value of attribute subject.



4
5
6
# File 'lib/howlingmine/issue.rb', line 4

def subject
  @subject
end

#updated_onObject



54
55
56
# File 'lib/howlingmine/issue.rb', line 54

def updated_on
  Time.parse @updated_on
end

Class Method Details

.allObject



50
51
52
# File 'lib/howlingmine/issue.rb', line 50

def self.all
  build_issues(HowlingMine::Client.issues)
end

.countObject



20
21
22
# File 'lib/howlingmine/issue.rb', line 20

def self.count
  HowlingMine::Client.count_issues.to_i
end

.find(method = :all, params = {}) ⇒ Object



44
45
46
47
48
# File 'lib/howlingmine/issue.rb', line 44

def self.find(method = :all, params = {})
  params[:method] = method
  HowlingMine::Config.params.merge!(params)
  build_issues(HowlingMine::Client.find)
end

.firstObject



62
63
64
# File 'lib/howlingmine/issue.rb', line 62

def self.first
  find :first
end

.get(ticket_no) ⇒ Object



76
77
78
# File 'lib/howlingmine/issue.rb', line 76

def self.get(ticket_no)
  find ticket_no.to_i
end

.lastObject



66
67
68
# File 'lib/howlingmine/issue.rb', line 66

def self.last
  find :last
end

Instance Method Details

#custom_fieldsObject



7
8
9
# File 'lib/howlingmine/issue.rb', line 7

def custom_fields
  @custom_fields ||= {}
end

#journalObject



80
81
82
83
84
85
86
87
# File 'lib/howlingmine/issue.rb', line 80

def journal
  client = HowlingMine::Client
  params = {
    :issue_id => id
  }
  HowlingMine::Config.params.merge! params
  JSON.parse(client.journals)
end

#saveObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/howlingmine/issue.rb', line 24

def save
  client = HowlingMine::Client
  params = {
    :subject => subject || 'no subject',
    :description => description || '',
    :author => author || 'none',
    :custom_fields => custom_fields.to_yaml
  }

  HowlingMine::Config.params.merge!(params)
  
  begin
    response = client.new_issue
    @id = response.to_i
    return true
  rescue Exception => e
    return false
  end
end

#statusObject



70
71
72
73
74
# File 'lib/howlingmine/issue.rb', line 70

def status
  c = HowlingMine::Client
  HowlingMine::Config.params.merge!(:issue_id => id)
  c.issue_status.downcase
end