require 'logger' module DeviceCloud module Configuration # DeviceCloud account username attr_writer :username # DeviceCloud account password attr_writer :password # DeviceCloud defualt logger attr_writer :logger # Proc that will be called for handling # DeviceCloud::PushNotification::EventNotification objects # Proc will be called with the event notification object attr_accessor :event_notification_handler # Proc that will be called for handling # DeviceCloud::PushNotification::EventNotification objects that # do not contain file data (data too large - over 120KB) # Proc will be called with the event notification object attr_accessor :empty_event_notification_handler # Proc that will be called for handling # DeviceCloud::PushNotification::AlertNotification objects # Proc will be called with the alert notification object attr_accessor :alert_notification_handler # Proc that will be called for handling # DeviceCloud::PushNotification::AlertNotification objects that # do not contain file data (data too large - over 120KB) # Proc will be called with the alert notification object attr_accessor :empty_alert_notification_handler # Proc that will be called for handling # DeviceCloud::PushNotification::DataNotification objects # Proc will be called with the data notification object attr_accessor :data_notification_handler # Proc that will be called for handling # DeviceCloud::PushNotification::DataNotification objects that # do not contain file data (data too large - over 120KB) # Proc will be called with the data notification object attr_accessor :empty_data_notification_handler # Yield self to be able to configure ActivityFeed with # block-style configuration. # # Example: # # DeviceCloud.configure do |configuration| # configuration.root_url = 'https://example.com' # end def configure yield self config end def config { username: username, password: password, root_url: root_url, host: host, alert_notification_handler: @alert_notification_handler, empty_alert_notification_handler: @empty_alert_notification_handler, data_notification_handler: @data_notification_handler, empty_data_notification_handler: @empty_data_notification_handler, event_notification_handler: @event_notification_handler, empty_event_notification_handler: @empty_event_notification_handler, logger: logger }.freeze end # DeviceCloud url # # @return the DeviceCloud url - 'https://my.idigi.com' def root_url 'https://my.idigi.com' end # DeviceCloud url # # @return the DeviceCloud host - 'my.idigi.com' def host 'my.idigi.com' end # DeviceCloud username # # @return the DeviceCloud username or raises an error def username raise 'DeviceCloud username is blank' if @username.nil? || @password == '' @username end # DeviceCloud password # # @return the DeviceCloud password or raises an error def password raise 'DeviceCloud password is blank' if @password.nil? || @password == '' @password end # DeviceCloud logger # # @return the DeviceCloud logger or set the default to stdout def logger @logger ||= Logger.new(STDOUT) end end end