lib/story.rb in rallytastic-1.1.2 vs lib/story.rb in rallytastic-1.2.0

- old
+ new

@@ -31,50 +31,50 @@ field :prioritized_on, :type => DateTime field :started_on, :type => DateTime field :completed_on, :type => DateTime embeds_many :revisions, :inverse_of => :story + embeds_one :revision_parser, :inverse_of => :story referenced_in :iteration referenced_in :parent, :class_name => "Story", :inverse_of => :children references_many :children, :class_name => "Story", :inverse_of => :parent - def set_revision_history + def revision_fields + [:sized_on, :prioritized_on, :started_on, :completed_on] + end + + def parse_revisions_for_status_changes revision_fields.each do |field| - self.send("#{field}=", revision_parser.send(field)) + timestamp = revision_parser.send(field, revisions) + self.send("#{field}=", timestamp) end end - def revision_history + def status_changes set_revision_history revision_fields.inject({}){|h,field| h[field] = self.send(field.to_s); h} end - - def revision_fields - [:sized_on, :prioritized_on, :started_on, :completed_on] - end - + def revision_parser if self.iteration && self.iteration.project - eval("Parser::#{self.iteration.project.revision_parser}").new(self) + self.iteration.project.revision_parser end end def pull_revisions - revision_list = RevisionHistory.new(:rally_uri => self.revision_history_uri) - revision_list.refresh - revision_uris = story.revisions.collect{|r| r.rally_uri} - if revision_list.revisions - revision_list.revisions.each do |uri| - unless revision_uris.include?(uri) - r = Revision.new(:rally_uri => uri) - r.refresh - self.revisions << r + revision_history.refresh + revision_uris = self.revisions.collect{|r| r.rally_uri} + if revision_history.revisions + revision_history.revisions.each do |rally_revision| + unless revision_uris.include?(rally_revision.rally_uri) + rally_revision.refresh + self.revisions << rally_revision end end end - self.set_revision_history + self.parse_revisions_for_status_changes self.save end def refresh hash_values=nil @@ -113,7 +113,12 @@ story = Story.find_or_create_by(:rally_uri => @rally_hash["Parent"]["_ref"]) self.parent = story end self.save + end + + private + def revision_history + RevisionHistory.new(:rally_uri => self.revision_history_uri) end end