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