Paasmaker Ruby Interface Library

This is a simple Ruby library that is designed to read in the Paasmaker configuration, falling back to a custom configuration file in development.

Usage - Rails

If you want to use this with your Rails project, do the following steps:

  • Add paasmaker-interface to your Gemfile:
gem 'paasmaker-interface'
  • Update your database.yml file to look like the following:
<% require 'paasmaker' %>
<% interface = Paasmaker::Interface.new(['../project-configuration.yml']) %>
<% database = interface.get_service('postgres') %>

production:
  adapter: postgresql
  database: "<%= database['database'] %>"
  host: "<%= database['hostname'] %>"
  username: "<%= database['username'] %>"
  password: "<%= database['password'] %>"
  port: "<%= database['port'] %>"

And update your adapter as appropriate for your application.

Usage - Other applications

To read in the configuration details in other applications, you can instantiate the Interface class directly and work with it.

require 'paasmaker'

interface = Paasmaker::Interface.new(['../project-configuration.yml'])

interface.is_on_paasmaker?()

service = interface.get_service('service')

Example Configuration Overrides

Example YAML configuration file:

services:
  parameters:
    foo: bar

application:
  name: test
  version: 1
  workspace: Test
  workspace_stub: test

Example JSON configuration file:

{
    "services": {
        "parameters": {
            "foo": "bar"
        }
    },
    "application": {
        "name": "test",
        "version": 1,
        "workspace": "Test",
        "workspace_stub": "test"
    }
}

Testing

To run the unit tests for the interface, just execute test.rb in the root of the project.