Class: JiraClient::Base
- Inherits:
-
Object
- Object
- JiraClient::Base
- Defined in:
- lib/jira_client/base.rb
Direct Known Subclasses
Comment, Issue, Project, ServerInfo, Status, Timetracking, User, Worklog
Class Method Summary collapse
- .attr_reader(*attrs) ⇒ Object
-
.conversions ⇒ Object
Initialize class variable if not set.
- .convert(attribute, conversion) ⇒ Object
- .from_response(attrs = {}) ⇒ Object
Instance Method Summary collapse
-
#initialize(attrs = {}) ⇒ Base
constructor
A new instance of Base.
Constructor Details
#initialize(attrs = {}) ⇒ Base
Returns a new instance of 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 |