Class: MSPRelease::Project::Base
- Inherits:
-
Object
- Object
- MSPRelease::Project::Base
- Includes:
- Exec::Helpers
- Defined in:
- lib/msp_release/project/base.rb
Constant Summary collapse
- RELEASE_COMMIT_PREFIX =
"RELEASE COMMIT - "
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#config_file ⇒ Object
readonly
Returns the value of attribute config_file.
-
#dir ⇒ Object
readonly
Returns the value of attribute dir.
Instance Method Summary collapse
- #at_version?(rhs_version) ⇒ Boolean
- #branch_name(version = self.version) ⇒ Object
- #build(options = {}) ⇒ Object
- #bump_version(segment) ⇒ Object
-
#initialize(filename, dir = '.') ⇒ Base
constructor
A new instance of Base.
-
#release_commit_message(release_name) ⇒ Object
Returns the commit message that should be used for a given release.
- #release_name_from_message(commit_message) ⇒ Object
Methods included from Exec::Helpers
Constructor Details
#initialize(filename, dir = '.') ⇒ Base
Returns a new instance of Base.
10 11 12 13 14 15 16 17 |
# File 'lib/msp_release/project/base.rb', line 10 def initialize(filename, dir='.') @config_file = filename @dir = dir @config = YAML.load_file(@config_file) config.each do |key, value| instance_variable_set("@#{key}", value) end end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
8 9 10 |
# File 'lib/msp_release/project/base.rb', line 8 def config @config end |
#config_file ⇒ Object (readonly)
Returns the value of attribute config_file.
8 9 10 |
# File 'lib/msp_release/project/base.rb', line 8 def config_file @config_file end |
#dir ⇒ Object (readonly)
Returns the value of attribute dir.
8 9 10 |
# File 'lib/msp_release/project/base.rb', line 8 def dir @dir end |
Instance Method Details
#at_version?(rhs_version) ⇒ Boolean
35 36 37 |
# File 'lib/msp_release/project/base.rb', line 35 def at_version?(rhs_version) any_version == rhs_version end |
#branch_name(version = self.version) ⇒ Object
31 32 33 |
# File 'lib/msp_release/project/base.rb', line 31 def branch_name(version=self.version) "release-#{version.format(:without_bugfix => true)}" end |
#build(options = {}) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/msp_release/project/base.rb', line 45 def build(={}) unless self.respond_to?(:build_command) raise "Don't know how to build this project" end build_opts() if self.respond_to?(:build_opts) LOG.debug("Checked out to #{@dir}") LOG.debug("Building...") build = Build.new(@dir, self, ) result = build.perform_from_cli! LOG.debug("Build products:") result.files.each {|f| LOG.info(f) } end |
#bump_version(segment) ⇒ Object
39 40 41 42 43 |
# File 'lib/msp_release/project/base.rb', line 39 def bump_version(segment) new_version = version.bump(segment.to_sym) written_files = write_version(new_version) [new_version, *written_files] end |
#release_commit_message(release_name) ⇒ Object
Returns the commit message that should be used for a given release
27 28 29 |
# File 'lib/msp_release/project/base.rb', line 27 def (release_name) "#{RELEASE_COMMIT_PREFIX}#{release_name}" end |
#release_name_from_message(commit_message) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/msp_release/project/base.rb', line 19 def () idx = .index(RELEASE_COMMIT_PREFIX) return nil unless idx == 0 [RELEASE_COMMIT_PREFIX.length..-1] end |