Class: SelfSDK::App
- Inherits:
-
Object
- Object
- SelfSDK::App
- Defined in:
- lib/selfsdk.rb
Overview
Abstract base class for CLI utilities. Provides some helper methods for the option parser
Constant Summary collapse
- BASE_URL =
"https://api.joinself.com".freeze
- MESSAGING_URL =
"wss://messaging.joinself.com/v2/messaging".freeze
Instance Attribute Summary collapse
-
#app_id ⇒ Types
readonly
the identifier of the current app.
-
#app_key ⇒ Types
readonly
the api key for the current app.
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#messaging_client ⇒ Object
Returns the value of attribute messaging_client.
Instance Method Summary collapse
-
#authentication ⇒ Object
Provides access to SelfSDK::Services::Authentication service.
-
#chat ⇒ Object
Provides access to SelfSDK::Services::Chat service.
-
#close ⇒ Object
Closes the websocket connection.
-
#docs ⇒ Object
Provides access to SelfSDK::Services::Docs service.
-
#facts ⇒ Object
Provides access to SelfSDK::Services::Facts service.
-
#identity ⇒ Object
Provides access to SelfSDK::Services::Identity service.
-
#initialize(app_id, app_key, storage_key, storage_dir, opts = {}) ⇒ App
constructor
Initializes a SelfSDK App.
-
#messaging ⇒ Object
Provides access to SelfSDK::Services::Messaging service.
Constructor Details
#initialize(app_id, app_key, storage_key, storage_dir, opts = {}) ⇒ App
Initializes a SelfSDK App
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/selfsdk.rb', line 52 def initialize(app_id, app_key, storage_key, storage_dir, opts = {}) SelfSDK.logger.debug "syncing ntp times #{SelfSDK::Time.now}" env = opts.fetch(:env, "") @client = RestClient.new(base_url(opts), app_id, app_key, env) messaging_url = messaging_url(opts) unless messaging_url.nil? @messaging_client = MessagingClient.new(messaging_url, @client, storage_key, storage_dir: storage_dir, auto_reconnect: opts.fetch(:auto_reconnect, MessagingClient::DEFAULT_AUTO_RECONNECT), device_id: opts.fetch(:device_id, MessagingClient::DEFAULT_DEVICE)) end end |
Instance Attribute Details
#app_id ⇒ Types (readonly)
the identifier of the current app.
34 35 36 |
# File 'lib/selfsdk.rb', line 34 def app_id @app_id end |
#app_key ⇒ Types (readonly)
the api key for the current app.
34 35 36 |
# File 'lib/selfsdk.rb', line 34 def app_key @app_key end |
#client ⇒ Object (readonly)
Returns the value of attribute client.
38 39 40 |
# File 'lib/selfsdk.rb', line 38 def client @client end |
#messaging_client ⇒ Object
Returns the value of attribute messaging_client.
39 40 41 |
# File 'lib/selfsdk.rb', line 39 def messaging_client @messaging_client end |
Instance Method Details
#authentication ⇒ Object
Provides access to SelfSDK::Services::Authentication service
74 75 76 |
# File 'lib/selfsdk.rb', line 74 def authentication @authentication ||= SelfSDK::Services::Authentication.new(requester) end |
#chat ⇒ Object
Provides access to SelfSDK::Services::Chat service
89 90 91 |
# File 'lib/selfsdk.rb', line 89 def chat @chat ||= SelfSDK::Services::Chat.new(messaging, identity) end |
#close ⇒ Object
Closes the websocket connection
107 108 109 |
# File 'lib/selfsdk.rb', line 107 def close @messaging_client.close end |
#docs ⇒ Object
Provides access to SelfSDK::Services::Docs service
94 95 96 |
# File 'lib/selfsdk.rb', line 94 def docs @docs ||= SelfSDK::Services::Docs.new(messaging, @client.self_url) end |
#facts ⇒ Object
Provides access to SelfSDK::Services::Facts service
69 70 71 |
# File 'lib/selfsdk.rb', line 69 def facts @facts ||= SelfSDK::Services::Facts.new(requester) end |
#identity ⇒ Object
Provides access to SelfSDK::Services::Identity service
79 80 81 |
# File 'lib/selfsdk.rb', line 79 def identity @identity ||= SelfSDK::Services::Identity.new(@client) end |
#messaging ⇒ Object
Provides access to SelfSDK::Services::Messaging service
84 85 86 |
# File 'lib/selfsdk.rb', line 84 def messaging @messaging ||= SelfSDK::Services::Messaging.new(@messaging_client) end |