Parent

Files

Class/Module Index [+]

Quicksearch

Fog::Service

Public Class Methods

collection(new_collection) click to toggle source
# File lib/fog/core/service.rb, line 104
def collection(new_collection)
  collections << new_collection
end
collections() click to toggle source
# File lib/fog/core/service.rb, line 108
def collections
  @collections ||= []
end
inherited(child) click to toggle source
# File lib/fog/core/service.rb, line 25
def inherited(child)
  child.class_eval           class Error < Fog::Service::Error; end          class NotFound < Fog::Service::NotFound; end          module Collections            include Fog::Service::Collections            def service              #{child}            end          end          def self.service            #{child}          end, __FILE__, __LINE__
end
mocked_requests() click to toggle source
# File lib/fog/core/service.rb, line 112
def mocked_requests
  @mocked_requests ||= []
end
model(new_model) click to toggle source
# File lib/fog/core/service.rb, line 116
def model(new_model)
  models << new_model
end
model_path(new_path) click to toggle source
# File lib/fog/core/service.rb, line 100
def model_path(new_path)
  @model_path = new_path
end
models() click to toggle source
# File lib/fog/core/service.rb, line 120
def models
  @models ||= []
end
new(options={}) click to toggle source
# File lib/fog/core/service.rb, line 44
def new(options={})
  # attempt to load credentials from config file
  begin
    default_credentials = Fog.credentials.reject {|key, value| !(recognized | requirements).include?(key)}
    options = default_credentials.merge(options)
  rescue LoadError
    # if there are no configured credentials, do nothing
  end

  validate_options(options)
  setup_requirements

  if Fog.mocking?
    service::Mock.send(:include, service::Collections)
    service::Mock.new(options)
  else
    service::Real.send(:include, service::Collections)
    service::Real.new(options)
  end
end
recognized() click to toggle source
# File lib/fog/core/service.rb, line 148
def recognized
  @recognized ||= []
end
recognizes(*args) click to toggle source
# File lib/fog/core/service.rb, line 144
def recognizes(*args)
  recognized.concat(args)
end
request(new_request) click to toggle source
# File lib/fog/core/service.rb, line 128
def request(new_request)
  requests << new_request
end
request_path(new_path) click to toggle source
# File lib/fog/core/service.rb, line 124
def request_path(new_path)
  @request_path = new_path
end
requests() click to toggle source
# File lib/fog/core/service.rb, line 132
def requests
  @requests ||= []
end
requirements() click to toggle source
# File lib/fog/core/service.rb, line 140
def requirements
  @requirements ||= []
end
requires(*args) click to toggle source
# File lib/fog/core/service.rb, line 136
def requires(*args)
  requirements.concat(args)
end
setup_requirements() click to toggle source
# File lib/fog/core/service.rb, line 65
def setup_requirements
  if superclass.respond_to?(:setup_requirements)
    superclass.setup_requirements
  end

  @required ||= false
  unless @required
    for collection in collections
      require [@model_path, collection].join('/')
      constant = collection.to_s.split('_').map {|characters| characters[0...1].upcase << characters[1..-1]}.join('')
      service::Collections.module_eval               def #{collection}(attributes = {})                #{service}::#{constant}.new({:connection => self}.merge(attributes))              end, __FILE__, __LINE__
    end
    for model in models
      require [@model_path, model].join('/')
    end
    for request in requests
      require [@request_path, request].join('/')
      if service::Mock.method_defined?(request)
        mocked_requests << request
      else
        service::Mock.module_eval                 def #{request}(*args)                  Fog::Mock.not_implemented                end, __FILE__, __LINE__
      end
    end
    @required = true
  end
end
validate_options(options) click to toggle source
# File lib/fog/core/service.rb, line 152
def validate_options(options)
  missing = requirements - options.keys
  unless missing.empty?
    raise ArgumentError, "Missing required arguments: #{missing.join(', ')}"
  end

  unless recognizes.empty?
    unrecognized = options.keys - requirements - recognized
    unless unrecognized.empty?
      raise ArgumentError, "Unrecognized arguments: #{unrecognized.join(', ')}"
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.