Sha256: af2d7fa38e0f1dd999663b6af7f35b1280935b3bb080c61dd28c50d35bcefcbb

Contents?: true

Size: 991 Bytes

Versions: 2

Compression:

Stored size: 991 Bytes

Contents

module GitWakaTime
  class Commit < Sequel::Model
    one_to_many :commited_files
    def after_create
      get_files
    end

    def to_s
      format('        %-8s %8s %-30s %-80s'.green,
             sha[0..8],
             date,
             ChronicDuration.output(time_in_seconds.to_i),
             message
             )
    end

    def oldest_dependent
      @files.sort { |f| f.commit.date }.first
    end

    def time_in_seconds
      commited_files.collect {|f| f.time_in_seconds}.inject(:+)
    end

    private

    def get_files
      @raw_commit = GitWakaTime.config.git.gcommit(sha)
      # TODO: Assume gap time to lookup time prior to first commit.
      if @raw_commit.parent
        update(parent_sha: @raw_commit.parent.sha)

        @raw_commit.diff_parent.stats[:files].keys.map do |file|
          CommitedFile.find_or_create(commit_id: id, name: file) do |c|
            c.update(sha: sha, project: project)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gitwakatime-0.1.1 lib/gitwakatime/commit.rb
gitwakatime-0.1.0 lib/gitwakatime/commit.rb