Class: JIRA::Resource::Issue
Constant Summary
Constants inherited from Base
Base::QUERY_PARAMS_FOR_SEARCH, Base::QUERY_PARAMS_FOR_SINGLE_FETCH
Instance Attribute Summary
Attributes inherited from Base
#attrs, #client, #deleted, #expanded
Class Method Summary collapse
- .all(client) ⇒ Object
- .jql(client, jql, options = {fields: nil, start_at: nil, max_results: nil}) ⇒ Object
Instance Method Summary collapse
- #method_missing(method_name, *args, &block) ⇒ Object
- #respond_to?(method_name, include_all = false) ⇒ Boolean
Methods inherited from Base
belongs_to, belongs_to_relationships, build, collection_attributes_are_nested, collection_path, #collection_path, #delete, endpoint_name, #fetch, find, #has_errors?, has_many, has_one, #id, #initialize, key_attribute, #key_value, nested_collections, #new_record?, parse_json, #path_component, #save, #save!, #set_attrs, #set_attrs_from_response, singular_path, #to_json, #to_s, #to_sym, #url
Constructor Details
This class inherits a constructor from JIRA::Base
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/jira/resource/issue.rb', line 69 def method_missing(method_name, *args, &block) if attrs.keys.include?('fields') && attrs['fields'].keys.include?(method_name.to_s) attrs['fields'][method_name.to_s] else super(method_name) end end |
Class Method Details
.all(client) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/jira/resource/issue.rb', line 36 def self.all(client) response = client.get( client.[:rest_base_path] + "/search", :expand => 'transitions.fields' ) json = parse_json(response.body) json['issues'].map do |issue| client.Issue.build(issue) end end |
.jql(client, jql, options = {fields: nil, start_at: nil, max_results: nil}) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/jira/resource/issue.rb', line 47 def self.jql(client, jql, = {fields: nil, start_at: nil, max_results: nil}) url = client.[:rest_base_path] + "/search?jql=" + CGI.escape(jql) url << "&fields=#{[:fields].map{ |value| CGI.escape(value.to_s) }.join(',')}" if [:fields] url << "&startAt=#{CGI.escape([:start_at].to_s)}" if [:start_at] url << "&maxResults=#{CGI.escape([:max_results].to_s)}" if [:max_results] response = client.get(url) json = parse_json(response.body) json['issues'].map do |issue| client.Issue.build(issue) end end |
Instance Method Details
#respond_to?(method_name, include_all = false) ⇒ Boolean
61 62 63 64 65 66 67 |
# File 'lib/jira/resource/issue.rb', line 61 def respond_to?(method_name, include_all=false) if attrs.keys.include?('fields') && attrs['fields'].keys.include?(method_name.to_s) true else super(method_name) end end |