Skip to content

ActivitySmithHQ/activitysmith-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ActivitySmith Ruby SDK

The ActivitySmith Ruby SDK provides convenient access to the ActivitySmith API from Ruby applications.

Documentation

See API reference.

Installation

gem install activitysmith

Setup

require "activitysmith"

activitysmith = ActivitySmith::Client.new(api_key: ENV.fetch("ACTIVITYSMITH_API_KEY"))

Usage

Send a Push Notification

response = activitysmith.notifications.send(
  {
    title: "Build Failed",
    message: "CI pipeline failed on main branch"
  }
)

puts response.success
puts response.devices_notified

Start a Live Activity

start = activitysmith.live_activities.start(
  {
    content_state: {
      title: "ActivitySmith API Deployment",
      subtitle: "start",
      number_of_steps: 4,
      current_step: 1,
      type: "segmented_progress",
      color: "yellow"
    }
  }
)

activity_id = start.activity_id

Update a Live Activity

update = activitysmith.live_activities.update(
  {
    activity_id: activity_id,
    content_state: {
      title: "ActivitySmith API Deployment",
      subtitle: "npm i & pm2",
      current_step: 3
    }
  }
)

puts update.devices_notified

End a Live Activity

finish = activitysmith.live_activities.end(
  {
    activity_id: activity_id,
    content_state: {
      title: "ActivitySmith API Deployment",
      subtitle: "done",
      current_step: 4,
      auto_dismiss_minutes: 3
    }
  }
)

puts finish.success

Error Handling

begin
  activitysmith.notifications.send(
    { title: "Build Failed" }
  )
rescue OpenapiClient::ApiError => err
  puts "Request failed: #{err.code} #{err.message}"
end

API Surface

  • activitysmith.notifications
  • activitysmith.live_activities

Requirements

  • Ruby 3.0+

License

MIT

About

Ruby library for the ActivitySmith API

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages