Sha256: 0907f2b577375abc0b0fa07fcca62fa1f753e355efb03668fa7cae674731961d

Contents?: true

Size: 1.43 KB

Versions: 2

Compression:

Stored size: 1.43 KB

Contents

module Fog
  module Billing
    class StormOnDemand < Fog::Service
      autoload :Invoice, 'fog/billing/storm_on_demand/models/invoice'
      autoload :Invoices, 'fog/billing/storm_on_demand/models/invoices'
      autoload :Payment, 'fog/billing/storm_on_demand/models/payment'
      autoload :Payments, 'fog/billing/storm_on_demand/models/payments'

      requires :storm_on_demand_username, :storm_on_demand_password
      recognizes :storm_on_demand_auth_url

      model_path 'fog/billing/storm_on_demand/models'
      model      :invoice
      collection :invoices
      model      :payment
      collection :payments

      request_path 'fog/billing/storm_on_demand/requests'
      request :list_invoices
      request :get_invoice
      request :next_invoice
      request :make_payment

      class Mock
        def self.data
          @data ||= Hash.new
        end

        def self.reset
          @data = nil
        end

        def self.reset_data(keys=data.keys)
          for key in [*keys]
            data.delete(key)
          end
        end

        def initialize(options = {})
          @storm_on_demand_username = options[:storm_on_demand_username]
        end

        def data
          self.class.data[@storm_on_demand_username]
        end

        def reset_data
          self.class.data.delete(@storm_on_demand_username)
        end
      end

      class Real
        include Fog::StormOnDemand::Shared
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fog-storm_on_demand-0.1.0 lib/fog/billing/storm_on_demand.rb
fog-storm_on_demand-0.0.1 lib/fog/billing/storm_on_demand.rb