Skip to content

Commit 9cc6f91

Browse files
committed
Add CI workflow and expand README install docs
1 parent 39325b6 commit 9cc6f91

File tree

2 files changed

+46
-2
lines changed

2 files changed

+46
-2
lines changed

.github/workflows/ruby.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Ruby
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
ruby:
15+
- '3.4'
16+
steps:
17+
- uses: actions/checkout@v4
18+
- name: Set up Ruby
19+
uses: ruby/setup-ruby@v1
20+
with:
21+
ruby-version: ${{ matrix.ruby }}
22+
bundler-cache: true
23+
- name: Run tests
24+
run: RBENV_VERSION=${{ matrix.ruby }} bundle exec rake test

README.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
# Exa Ruby Client
22

3+
[![Gem Version](https://img.shields.io/gem/v/exa-ai-ruby)](https://rubygems.org/gems/exa-ai-ruby)
4+
[![Total Downloads](https://img.shields.io/gem/dt/exa-ai-ruby)](https://rubygems.org/gems/exa-ai-ruby)
5+
[![Build Status](https://img.shields.io/github/actions/workflow/status/vicentereig/exa-ruby/ruby.yml?branch=main&label=tests)](https://github.com/vicentereig/exa-ruby/actions/workflows/ruby.yml)
6+
37
> Typed, Sorbet-friendly Ruby bindings for the Exa API, inspired by `openai-ruby` and aligned with Exa’s OpenAPI specs.
48
5-
This README doubles as the canonical “llms-full” reference for the project: it documents the architecture, the current API surface, and the functional-programming patterns we’re porting from OpenAI’s client. If you’re building the Exa Ruby SDK—or just trying to understand how to extend it—start here.
9+
This README is intentionally exhaustive—LLM agents and humans alike should be able to read it and learn how to use or extend the client without digging elsewhere.
610

711
---
812

@@ -40,18 +44,34 @@ $ git clone https://github.com/vicentereig/exa-ruby
4044
$ cd exa-ruby
4145
$ rbenv install 3.4.5 # .ruby-version already pins this
4246
$ bundle install
47+
```
4348

44-
# or install from RubyGems (gem name: exa-ai-ruby)
49+
### Install via RubyGems
50+
51+
```
4552
$ gem install exa-ai-ruby
4653
```
4754

55+
### Install via Bundler
56+
57+
```ruby
58+
# Gemfile
59+
gem "exa-ai-ruby", "~> 1.0"
60+
```
61+
62+
```
63+
$ bundle install
64+
```
65+
4866
Runtime dependencies:
4967
- `sorbet-runtime` – typed structs/enums and runtime assertions.
5068
- `connection_pool``Net::HTTP` pooling in `PooledNetRequester`.
5169
- `dspy-schema` – converts Sorbet types to JSON Schema (structured output support).
5270

5371
Set the API key via `EXA_API_KEY` or pass `api_key:` when instantiating `Exa::Client`.
5472

73+
If you are building automation that calls this README (e.g., using `curl`/`wget` or a retrieval plug‑in), fetch the raw file from GitHub: `https://raw.githubusercontent.com/vicentereig/exa-ruby/main/README.md`.
74+
5575
---
5676

5777
## Client Architecture Overview

0 commit comments

Comments
 (0)