ManageIQ/manageiq-api-client

View on GitHub
lib/manageiq/api/client/action_result.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
94%
module ManageIQ
  module API
    class Client
      class ActionResult
        attr_reader :attributes

        def initialize(action_hash)
          raise "Not a valid Action Result specified" unless self.class.an_action_result?(action_hash)
          @attributes = action_hash.dup
        end

        def self.an_action_result?(hash)
          hash && hash.key?("success") && hash.key?("message")
        end

        def succeeded?
          success
        end

        def failed?
          !success
        end

        def method_missing(sym, *args, &block)
          attributes && attributes.key?(sym.to_s) ? attributes[sym.to_s] : super(sym, *args, &block)
        end

        def respond_to_missing?(sym, *args, &block)
          attributes && attributes.key?(sym.to_s) || super(sym, *args, &block)
        end
      end
    end
  end
end