Class: ReleaseChange

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Validations
Defined in:
app/models/release_change.rb

Constant Summary collapse

ENCODING_PATTERN =

validates :tag_slug, :in =>

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(release, tag_slug, description) ⇒ ReleaseChange

Returns a new instance of ReleaseChange.



9
10
11
12
13
# File 'app/models/release_change.rb', line 9

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

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



15
16
17
# File 'app/models/release_change.rb', line 15

def description
  @description
end

#releaseObject (readonly)

Returns the value of attribute release.



15
16
17
# File 'app/models/release_change.rb', line 15

def release
  @release
end

#tag_slugObject (readonly)

Returns the value of attribute tag_slug.



15
16
17
# File 'app/models/release_change.rb', line 15

def tag_slug
  @tag_slug
end

Class Method Details

.from_commit(release, commit) ⇒ Object



23
24
25
26
27
28
# File 'app/models/release_change.rb', line 23

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

.from_s(release, string) ⇒ Object



19
20
21
# File 'app/models/release_change.rb', line 19

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

Instance Method Details

#_destroyObject



50
51
52
# File 'app/models/release_change.rb', line 50

def _destroy
  marked_for_destruction?
end

#idObject



42
43
44
# File 'app/models/release_change.rb', line 42

def id
  hash
end

#marked_for_destruction?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'app/models/release_change.rb', line 46

def marked_for_destruction?
  false
end

#tagObject



36
37
38
# File 'app/models/release_change.rb', line 36

def tag
  Houston.config.fetch_tag(tag_slug)
end

#to_sObject



32
33
34
# File 'app/models/release_change.rb', line 32

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