class Moonshot::BuildMechanism::VersionProxy

This proxies build request do different mechanisms. One for semver compliant releases and another for everything else.

Public Class Methods

new(release:, dev:) click to toggle source
# File lib/moonshot/build_mechanism/version_proxy.rb, line 12
def initialize(release:, dev:)
  @release = release
  @dev = dev
end

Public Instance Methods

build_hook(version) click to toggle source
# File lib/moonshot/build_mechanism/version_proxy.rb, line 32
def build_hook(version)
  active(version).build_hook(version)
end
doctor_hook() click to toggle source
# File lib/moonshot/build_mechanism/version_proxy.rb, line 17
def doctor_hook
  @release.doctor_hook
  @dev.doctor_hook
end
post_build_hook(version) click to toggle source
# File lib/moonshot/build_mechanism/version_proxy.rb, line 36
def post_build_hook(version)
  active(version).post_build_hook(version)
end
pre_build_hook(version) click to toggle source
# File lib/moonshot/build_mechanism/version_proxy.rb, line 28
def pre_build_hook(version)
  active(version).pre_build_hook(version)
end
resources=(r) click to toggle source
Calls superclass method
# File lib/moonshot/build_mechanism/version_proxy.rb, line 22
def resources=(r)
  super
  @release.resources = r
  @dev.resources = r
end

Private Instance Methods

active(version) click to toggle source
# File lib/moonshot/build_mechanism/version_proxy.rb, line 42
def active(version)
  @active = if release?(version)
              @release
            else
              @dev
            end
end
release?(version) click to toggle source
# File lib/moonshot/build_mechanism/version_proxy.rb, line 50
def release?(version)
  ::Semantic::Version.new(version)
rescue ArgumentError
  false
end