Class: RailsAppVersion::Version

Inherits:
Gem::Version
  • Object
show all
Defined in:
lib/rails_app_version/version.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#majorObject (readonly)

Returns the value of attribute major.



7
8
9
# File 'lib/rails_app_version/version.rb', line 7

def major
  @major
end

#minorObject (readonly)

Returns the value of attribute minor.



7
8
9
# File 'lib/rails_app_version/version.rb', line 7

def minor
  @minor
end

#patchObject (readonly)

Returns the value of attribute patch.



7
8
9
# File 'lib/rails_app_version/version.rb', line 7

def patch
  @patch
end

#preObject (readonly)

Returns the value of attribute pre.



7
8
9
# File 'lib/rails_app_version/version.rb', line 7

def pre
  @pre
end

#revisionObject (readonly)

Returns the value of attribute revision.



7
8
9
# File 'lib/rails_app_version/version.rb', line 7

def revision
  @revision
end

Class Method Details

.create(version_string, revision = nil) ⇒ Object



9
10
11
# File 'lib/rails_app_version/version.rb', line 9

def self.create(version_string, revision = nil)
  new(version_string).tap { |v| v.set_revision(revision) }
end

Instance Method Details

#fullObject



17
18
19
20
21
# File 'lib/rails_app_version/version.rb', line 17

def full
  return to_s unless revision
  return to_s if revision.to_s == "0"
  "#{self} (#{short_revision})"
end

#has_patch?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/rails_app_version/version.rb', line 42

def has_patch?
  !@patch.nil?
end

#prerelease?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/rails_app_version/version.rb', line 34

def prerelease?
  !@pre.nil?
end

#production_ready?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/rails_app_version/version.rb', line 38

def production_ready?
  !prerelease? && major.positive?
end

#set_revision(revision) ⇒ Object



13
14
15
# File 'lib/rails_app_version/version.rb', line 13

def set_revision(revision)
  @revision = revision
end

#short_revisionObject



30
31
32
# File 'lib/rails_app_version/version.rb', line 30

def short_revision
  revision.to_s.slice(0, 8).presence
end

#to_cache_keyObject



23
24
25
26
27
28
# File 'lib/rails_app_version/version.rb', line 23

def to_cache_key
  parts = [ major, minor ]
  parts << patch if has_patch?
  parts << pre if prerelease?
  parts.join("-")
end