Sha256: c1de8f185eeceb3edf4c8b00b8c1558930aa96fd848ec14b4794e78fbcb8b2b6

Contents?: true

Size: 532 Bytes

Versions: 11

Compression:

Stored size: 532 Bytes

Contents

module Mcrain
  module ClientProvider

    def client
      @client ||= build_client
    end

    def build_client
      require client_require
      yield if block_given?
      client_class.new(*client_init_args)
    end

    def client_require
      raise NotImplementedError
    end

    def client_class
      raise NotImplementedError
    end

    def client_init_args
      raise NotImplementedError
    end

    def client_script
      client
      "#{client_class.name}.new(*#{client_init_args.inspect})"
    end

  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
mcrain-0.6.0 lib/mcrain/client_provider.rb
mcrain-0.5.0 lib/mcrain/client_provider.rb
mcrain-0.4.0 lib/mcrain/client_provider.rb
mcrain-0.3.3 lib/mcrain/client_provider.rb
mcrain-0.3.2 lib/mcrain/client_provider.rb
mcrain-0.3.1 lib/mcrain/client_provider.rb
mcrain-0.3.0 lib/mcrain/client_provider.rb
mcrain-0.2.3 lib/mcrain/client_provider.rb
mcrain-0.2.2 lib/mcrain/client_provider.rb
mcrain-0.2.1 lib/mcrain/client_provider.rb
mcrain-0.2.0 lib/mcrain/client_provider.rb