Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Scottish Ruby Conference Charity Tutorial Exercise #2
class AppServer
attr_accessor :port, :admin_password
end
class Configuration
attr_accessor :tail_logs, :max_connections, :admin_password
def app_server
if block_given?
if @app_server.nil?
@app_server = AppServer.new()
end
yield @app_server
end
@app_server
end
end
def configure
ret = Configuration.new()
yield ret
ret
end
configuration = configure do |config|
config.tail_logs = true
config.max_connections = 55
config.admin_password = 'secret'
config.app_server do |app_server_config|
app_server_config.port = 8808
app_server_config.admin_password = config.admin_password
end
end
puts configuration.class # => Configuration
puts configuration.tail_logs # => true
puts configuration.app_server.admin_password # => secret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment