Class: JiraClient::Base
- Inherits:
-
Object
show all
- Defined in:
- lib/jira_client/base.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(attrs = {}) ⇒ Base
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/jira_client/base.rb', line 40
def initialize(attrs={})
self.class.conversions.each do |key, value|
if attrs.has_key? key
if attrs[key].kind_of? Array
attrs[key] = attrs[key].map {|elem| value.call(elem)}
else
attrs[key] = value.call(attrs[key])
end
end
end
@attrs = attrs
end
|
Class Method Details
.attr_reader(*attrs) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/jira_client/base.rb', line 19
def attr_reader(*attrs)
mod = Module.new do
attrs.each do |attribute|
define_method attribute do
@attrs[attribute.to_sym]
end
define_method "#{attribute}?" do
!!@attrs[attribute.to_sym]
end
end
end
include mod
end
|
.conversions ⇒ Object
Initialize class variable if not set
7
8
9
|
# File 'lib/jira_client/base.rb', line 7
def conversions
@conversions ||= {}
end
|
.convert(attribute, conversion) ⇒ Object
11
12
13
14
15
16
17
|
# File 'lib/jira_client/base.rb', line 11
def convert(attribute, conversion)
if conversion.instance_of? Proc
conversions[attribute] = conversion
elsif conversion < JiraClient::Base
conversions[attribute] = lambda {|v| conversion.from_response(v)}
end
end
|
.from_response(attrs = {}) ⇒ Object
33
34
35
36
|
# File 'lib/jira_client/base.rb', line 33
def from_response(attrs={})
return unless attrs
new(attrs)
end
|