class GitCompound::DSL::ComponentDSL
Public Class Methods
new(component, &block)
click to toggle source
# File lib/git_compound/dsl/component_dsl.rb, line 8 def initialize(component, &block) @component = component instance_eval(&block) end
Public Instance Methods
branch(component_branch)
click to toggle source
# File lib/git_compound/dsl/component_dsl.rb, line 27 def branch(component_branch) version_strategy(component_branch, Component::Version::Branch) end
destination(component_path)
click to toggle source
# File lib/git_compound/dsl/component_dsl.rb, line 54 def destination(component_path) @component.destination = Component::Destination.new(component_path, @component) end
sha(component_sha)
click to toggle source
# File lib/git_compound/dsl/component_dsl.rb, line 35 def sha(component_sha) raise CompoundSyntaxError, 'Invalid SHA1 format' unless component_sha.match(/[0-9a-f]{5,40}/) version_strategy(component_sha, Component::Version::SHA) end
source(component_source, *source_options)
click to toggle source
# File lib/git_compound/dsl/component_dsl.rb, line 42 def source(component_source, *source_options) raise CompoundSyntaxError, 'Version/branch/tag/sha needed first' unless @version @component.source = Component::Source.new(component_source, @version, @version_strategy, source_options, @component) end
tag(component_tag)
click to toggle source
# File lib/git_compound/dsl/component_dsl.rb, line 31 def tag(component_tag) version_strategy(component_tag, Component::Version::Tag) end
version(component_version)
click to toggle source
# File lib/git_compound/dsl/component_dsl.rb, line 23 def version(component_version) version_strategy(component_version, Component::Version::GemVersion) end
version_strategy(version, strategy)
click to toggle source
Custom version strategy, also available via DSL
# File lib/git_compound/dsl/component_dsl.rb, line 15 def version_strategy(version, strategy) raise CompoundSyntaxError, 'Version strategy already set !' if @version_strategy @version = version @version_strategy = strategy end