Sha256: 7a8af91a31ed2f13de0f261a11f7d2b5209674a615be460f11e50f99a574cd9a

Contents?: true

Size: 763 Bytes

Versions: 20

Compression:

Stored size: 763 Bytes

Contents

# encoding: utf-8

require 'nimbu-api/utils/all'

module Nimbu
  class Builder

    # Instantiates a new Nimbu api object
    #
    def self.new(klass, options={}, &block)
      return create_instance(klass, options, &block) if klass
      raise ArgumentError, 'must provide Endpoint class to be instantiated'
    end

    # Passes configuration options to instantiated class
    #
    def self.create_instance(klass, options, &block)
      options.symbolize_keys!
      convert_to_constant(klass.to_s).new options, &block
    end

    # Convert name to constant
    #
    def self.convert_to_constant(classes)
      classes.split('::').inject(Nimbu::Endpoints) do |constant, klass|
        constant.const_get klass
      end
    end

  end # Builder
end # Nimbu

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
nimbu-api-0.5.0 lib/nimbu-api/builder.rb
nimbu-api-0.4.4 lib/nimbu-api/builder.rb
nimbu-api-0.4.3 lib/nimbu-api/builder.rb
nimbu-api-0.4.2 lib/nimbu-api/builder.rb
nimbu-api-0.4.1 lib/nimbu-api/builder.rb
nimbu-api-0.4.0 lib/nimbu-api/builder.rb
nimbu-api-0.3.0 lib/nimbu-api/builder.rb
nimbu-api-0.2.1 lib/nimbu-api/builder.rb
nimbu-api-0.2 lib/nimbu-api/builder.rb
nimbu-api-0.2.beta.3 lib/nimbu-api/builder.rb
nimbu-api-0.2.beta.2 lib/nimbu-api/builder.rb
nimbu-api-0.2.beta.1 lib/nimbu-api/builder.rb
nimbu-api-0.2.beta lib/nimbu-api/builder.rb
nimbu-api-0.1.5 lib/nimbu-api/builder.rb
nimbu-api-0.1.4 lib/nimbu-api/builder.rb
nimbu-api-0.1.3 lib/nimbu-api/builder.rb
nimbu-api-0.1.1 lib/nimbu-api/builder.rb
nimbu-api-0.1 lib/nimbu-api/builder.rb
nimbu-api-0.0.2 lib/nimbu-api/builder.rb
nimbu-api-0.0.1 lib/nimbu-api/builder.rb