Sha256: 8b233740c6e2f5b6d0bb1dd4195478cd26536497dcf392046e581616266f797c

Contents?: true

Size: 973 Bytes

Versions: 17

Compression:

Stored size: 973 Bytes

Contents

class ReleaseChange
  include ActiveModel::Validations

  validates :description, :length => 1...255
  # validates :tag_slug, :in =>

  ENCODING_PATTERN = /^\[([^\]]*)\] (.*)$/.freeze

  def initialize(release, tag_slug, description)
    @release = release
    @tag_slug = tag_slug
    @description = description[/^.*$/]
  end

  attr_reader :release, :tag_slug, :description

  class << self

    def from_s(release, string)
      new release, *(string.match(ENCODING_PATTERN)[1..2])
    end

    def from_commit(release, commit)
      message = commit.clean_message[0..255]
      message[0] = message[0].upcase if message[0]
      tag = Houston.config.fetch_tag(commit.tags.first)
      new release, tag.slug, message
    end

  end

  def to_s
    "[#{tag_slug}] #{description}"
  end

  def tag
    Houston.config.fetch_tag(tag_slug)
  end



  def id
    hash
  end

  def marked_for_destruction?
    false
  end

  def _destroy
    marked_for_destruction?
  end

end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
houston-core-0.8.0.pre app/models/release_change.rb
houston-core-0.7.0 app/models/release_change.rb
houston-core-0.7.0.beta4 app/models/release_change.rb
houston-core-0.7.0.beta3 app/models/release_change.rb
houston-core-0.7.0.beta2 app/models/release_change.rb
houston-core-0.7.0.beta app/models/release_change.rb
houston-core-0.6.3 app/models/release_change.rb
houston-core-0.6.2 app/models/release_change.rb
houston-core-0.6.1 app/models/release_change.rb
houston-core-0.6.0 app/models/release_change.rb
houston-core-0.5.6 app/models/release_change.rb
houston-core-0.5.5 app/models/release_change.rb
houston-core-0.5.4 app/models/release_change.rb
houston-core-0.5.3 app/models/release_change.rb
houston-core-0.5.2 app/models/release_change.rb
houston-core-0.5.1 app/models/release_change.rb
houston-core-0.5.0 app/models/release_change.rb