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