Sha256: 5f8742156cfcad9f3191f929d7e91b33177b20d5096d3466075e87888b084e7a

Contents?: true

Size: 1.36 KB

Versions: 12

Compression:

Stored size: 1.36 KB

Contents

class RevisionParser
  include Mongoid::Document
  
  field :name
  field :sized_on_regex
  field :prioritized_on_regex
  field :started_on_regex
  field :completed_on_regex

  embedded_in :project, :inverse_of => :revision_parser


  def sized_on(revisions)
    regex = sized_on_regex ? eval(sized_on_regex) : /TASK ESTIMATE TOTAL changed from \[0.0\]/
    first_revision_date_matching regex, revisions
  end
  
  def prioritized_on(revisions)
    regex = prioritized_on_regex ? eval(prioritized_on_regex) : /PROJECT changed from \[[^\]]*\] to \[Madison\]/
    latest_revision_date_matching regex, revisions
  end

  def started_on(revisions)
    regex = started_on_regex ? eval(started_on_regex) : /ITERATION added/ 
    latest_revision_date_matching regex, revisions
  end

  def completed_on(revisions)
    regex = completed_on_regex ? eval(completed_on_regex) : /SCHEDULE STATE changed from \[[^\]]*\] to \[Complete\]/
    latest_revision_date_matching regex, revisions
  end
  
  protected
  def latest_revision_date_matching regexp, revisions
    revision = revisions.desc(:created_on).select{|r| r.description =~ regexp}.first
    Time.parse(revision.created_on) if revision
  end
  
  def first_revision_date_matching regexp, revisions
    revision = revisions.asc(:created_on).select{|r| r.description =~ regexp}.first
    Time.parse(revision.created_on) if revision
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rallytastic-1.4.9 lib/revision_parser.rb
rallytastic-1.4.8 lib/revision_parser.rb
rallytastic-1.4.7 lib/revision_parser.rb
rallytastic-1.4.6 lib/revision_parser.rb
rallytastic-1.4.5 lib/revision_parser.rb
rallytastic-1.4.4 lib/revision_parser.rb
rallytastic-1.4.0 lib/revision_parser.rb
rallytastic-1.3.0 lib/revision_parser.rb
rallytastic-1.2.8 lib/revision_parser.rb
rallytastic-1.2.7 lib/revision_parser.rb
rallytastic-1.2.6 lib/revision_parser.rb
rallytastic-1.2.5 lib/revision_parser.rb