Sha256: 46dd9620d41f7029238f518b30d385d032b2a2580c595a4f647f5fa2223af75a
Contents?: true
Size: 960 Bytes
Versions: 1
Compression:
Stored size: 960 Bytes
Contents
# frozen_string_literal: true require 'declare_schema' module GitModels module Commit extend ActiveSupport::Concern included do fields do sha :string, limit: 255, null: false message :text, null: false timestamps end validates :sha, uniqueness: { message: 'SHAs must be globally unique' } validates :sha, format: { without: /[0]{40}/ } belongs_to :author, class_name: 'User', inverse_of: :commits, required: true def short_sha sha[0, 7] end def to_s sha end def <=>(other) sha <=> other.sha end end class_methods do def create_from_git_commit!(git_commit) commit = where(sha: git_commit.sha).first_or_initialize commit.message = git_commit.message.truncate(1024) commit.author = ::User.create_from_git_data!(git_commit) commit.save! commit end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
git_models-1.3.1 | app/models/concerns/commit.rb |