Class: Releases::EntityDefinitions::ReleaseEntity
- Inherits:
-
PowerStencil::SystemEntityDefinitions::ProjectEntity
- Object
- PowerStencil::SystemEntityDefinitions::ProjectEntity
- Releases::EntityDefinitions::ReleaseEntity
- Defined in:
- lib/releases/entity_definitions/release_entity.rb
Constant Summary collapse
- DEFAULT_VERSION =
'0.0.1'
Instance Method Summary collapse
- #bump(level: :patch) ⇒ Object
- #bump_content(*content_key, content_increment: :patch, release_increment: :patch) ⇒ Object
- #full_name ⇒ Object
-
#initialize(fields: {}, universe: nil, user: false) ⇒ ReleaseEntity
constructor
A new instance of ReleaseEntity.
- #save(uri = source_uri, raise_error: true, force_save: false, force_files_generation: false) ⇒ Object
- #specifically_valid?(raise_error: false) ⇒ Boolean
Constructor Details
#initialize(fields: {}, universe: nil, user: false) ⇒ ReleaseEntity
Returns a new instance of ReleaseEntity.
14 15 16 17 |
# File 'lib/releases/entity_definitions/release_entity.rb', line 14 def initialize(fields: {}, universe: nil, user: false) super self.version = DEFAULT_VERSION if version.nil? end |
Instance Method Details
#bump(level: :patch) ⇒ Object
32 33 34 |
# File 'lib/releases/entity_definitions/release_entity.rb', line 32 def bump(level: :patch) self.version = bump_version version, level end |
#bump_content(*content_key, content_increment: :patch, release_increment: :patch) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/releases/entity_definitions/release_entity.rb', line 23 def bump_content(*content_key, content_increment: :patch, release_increment: :patch) get_entity(*content_key) do |entity| content[entity] = bump_version content[entity], content_increment end self.version = bump_version version, release_increment rescue => e raise PowerStencil::Error, "Cannot bump_content because '#{e.message}'" end |
#full_name ⇒ Object
19 20 21 |
# File 'lib/releases/entity_definitions/release_entity.rb', line 19 def full_name '%s v%s' % [name, version] end |
#save(uri = source_uri, raise_error: true, force_save: false, force_files_generation: false) ⇒ Object
48 49 50 51 |
# File 'lib/releases/entity_definitions/release_entity.rb', line 48 def save(uri = source_uri, raise_error: true, force_save: false, force_files_generation: false ) self.content = content.map { |entity, version| [entity, version.to_s] }.to_h super end |
#specifically_valid?(raise_error: false) ⇒ Boolean
36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/releases/entity_definitions/release_entity.rb', line 36 def specifically_valid?(raise_error: false) content.each do |entity, version| unless entity.is_a? UniverseCompiler::Entity::Base return false_or_raise"Invalid hash in release content of #{as_path} ! Key should be an entity !", raise_error: raise_error end unless PowerStencil::Utils::SemanticVersion.valid_version?(version, raise_error: false) return false_or_raise"Invalid version '#{version}' defined for #{entity.as_path} in release #{as_path} !", raise_error: raise_error end end true end |