class GithubSnapBuilder::Config

Public Class Methods

new(config_file_contents) click to toggle source
# File lib/github_snap_builder/config.rb, line 7
def initialize(config_file_contents)
        @config = YAML.safe_load(config_file_contents) || {}
end

Public Instance Methods

bind() click to toggle source
# File lib/github_snap_builder/config.rb, line 31
def bind
        @config.fetch('bind', '0.0.0.0')
end
build_type() click to toggle source
# File lib/github_snap_builder/config.rb, line 23
def build_type
        @config['build_type']
end
github_app_id() click to toggle source
# File lib/github_snap_builder/config.rb, line 15
def github_app_id
        @config['github_app_id']
end
github_app_private_key() click to toggle source
# File lib/github_snap_builder/config.rb, line 19
def github_app_private_key
        @config['github_app_private_key']
end
github_webhook_secret() click to toggle source
# File lib/github_snap_builder/config.rb, line 11
def github_webhook_secret
        @config['github_webhook_secret']
end
port() click to toggle source
# File lib/github_snap_builder/config.rb, line 27
def port
        @config.fetch('port', 3000)
end
repo(repo_name) click to toggle source
# File lib/github_snap_builder/config.rb, line 43
def repo(repo_name)
        repos.each do | repo |
                if repo.name == repo_name
                        return repo
                end
        end
end
repos() click to toggle source
# File lib/github_snap_builder/config.rb, line 35
def repos
        @repos ||= initialize_repos
end
repos_include?(repo_name) click to toggle source
# File lib/github_snap_builder/config.rb, line 39
def repos_include?(repo_name)
        @config.fetch('repos', {}).include? repo_name
end
valid?() click to toggle source
# File lib/github_snap_builder/config.rb, line 81
def valid?
        begin
                validate
        rescue ConfigurationError
                return false
        end

        begin
                repos.each do | repo |
                        repo.validate
                end
        rescue ConfigurationError
                return false
        end

        true
end
validate() click to toggle source
# File lib/github_snap_builder/config.rb, line 51
def validate
        if @config.nil? or @config.empty?
                raise ConfigurationError, "Config seems completely empty"
        end

        if github_webhook_secret.nil? || !github_webhook_secret.is_a?(String) || github_webhook_secret.empty?
                raise ConfigurationFieldError, "github_webhook_secret"
        end

        if github_app_id.nil? || !github_app_id.is_a?(Integer) || github_app_id == 0
                raise ConfigurationFieldError, "github_app_id"
        end

        if github_app_private_key.nil? || !github_app_private_key.is_a?(String) || github_app_private_key.empty?
                raise ConfigurationFieldError, "github_app_private_key"
        end

        if build_type.nil? || !build_type.is_a?(String) || build_type.empty? || !SnapBuilder.supported_build_types.include?(build_type)
                raise ConfigurationFieldError, "build_type"
        end

        if port.nil? || !port.is_a?(Integer) || port == 0
                raise ConfigurationFieldError, "port"
        end

        if bind.nil? || !bind.is_a?(String) || bind.empty?
                raise ConfigurationFieldError, "bind"
        end
end

Private Instance Methods

initialize_repos() click to toggle source
# File lib/github_snap_builder/config.rb, line 101
def initialize_repos
        repos = []
        @config.fetch('repos', {}).each do | name, definition |
                repos << RepoConfig.new(name, definition)
        end
        repos
end