class GitCompound::DSL::ComponentDSL

DSL for Component

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