Sha256: 1fa304ca58b5987e5a86e24a7ee66b46d42ebfc9ab78b5e03ea08e3e9f602104
Contents?: true
Size: 1.71 KB
Versions: 1
Compression:
Stored size: 1.71 KB
Contents
# encoding: utf-8 module Jiralicious ## # The Project class rolls up the basic functionality for # managing Projects within Jira through the Rest API. # class Project < Jiralicious::Base ## # Initialization Method # # [Arguments] # :decoded_json (optional) rubyized json object # def initialize(decoded_json) @loaded = false if decoded_json.is_a? Hash properties_from_hash(decoded_json) super(decoded_json) parse!(decoded_json) @loaded = true else decoded_json.each do |list| self.class.property :"#{list['key']}" self.merge!({list['key'] => self.class.find(list['key'])}) end end end class << self ## # Returns a list of issues within the project. The issue list is limited # to only return the issue ID and KEY values to minimize the amount of # data being returned This is used in lazy loading methodology. # # [Arguments] # :key (required) project key # def issue_list(key) response = Jiralicious.search("project=#{key}", {:fields => ["id", "key"]}) i_out = Issue.new response.issues_raw.each do |issue| i_out.class.property :"#{issue["key"].gsub("-", "_")}" t = Issue.new t.load(issue, true) i_out[issue["key"].gsub("-", "_")] = t end i_out end end ## # Issues loads the issue list into the current Project. # It also acts as a reference for lazy loading of issues. # attr_accessor :issues def issues if @issues == nil @issues = self.class.issue_list(self.key) end return @issues end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jiralicious-0.4.3 | lib/jiralicious/project.rb |