class MarketoChef::Configuration

Store and validate Marketo client configuration data

Constants

FIELDS

Attributes

campaign_id[RW]
client_id[RW]
client_secret[RW]
host[R]

Public Class Methods

new(config = {}) click to toggle source
# File lib/marketo_chef/configuration.rb, line 25
def initialize(config = {})
  return unless config.any?

  config.map { |k, v| send("#{k}=", v) if FIELDS.include?(k) }
end

Public Instance Methods

host=(value) click to toggle source
# File lib/marketo_chef/configuration.rb, line 31
def host=(value)
  value = value.sub('mktoapi', 'mktorest')

  match = %r{https?:\/\/(.+)}.match(value)

  @host = match ? match[1] : value
end
validate() click to toggle source
# File lib/marketo_chef/configuration.rb, line 39
def validate
  missing = ->(f) { !instance_variable_defined?(:"@#{f}") }
  bomb    = ->(f) { raise "Required Marketo configuration undefined: #{f}" }

  FIELDS.select(&missing).map(&bomb)
end