praxicraft 0.1.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 799129a96ed9a7beef8539280d45e8473c6419348747a6ff9cb3d92ccc1411aa
4
- data.tar.gz: df111d9b369af810d04da8dbd01008355ad15dbac4fb92d51e65ba58e2dbfec4
3
+ metadata.gz: 686ed00809dbb228cc3d5c49600310c02c8c64ee4036bfb26f0ed6a481c60675
4
+ data.tar.gz: 6e5bac90ab609afe0c8abe8e58f843ba4e1bf6ecd088a7d46a2dadf309608e3b
5
5
  SHA512:
6
- metadata.gz: 63fbf2787f5891753ca19fff5a5167bef6f9937e05a23335c042c0196d3a3ea8cf41894170d2a5a6fb3be2b79f94b13096d232540ee4b9f0cd7da89a8837dae7
7
- data.tar.gz: 627d4323942162c8d64505651de6c23751de86cd87237789f20d6a96170f3fc3a8511f8d2766caaeefc846c69a281d04a70689959303dc559a9627fe546905c0
6
+ metadata.gz: da59f91f5b965c5868957a6b23cb41451dfc2d9c701b5071bc7af0b2d7ee2fa06ff9a3961f7f598325f81b1fa010685dbdd250f8f4feb84e3943df237b93aa2c
7
+ data.tar.gz: 6f1ae348d21261916b693d1dcbbbe84175f0e092108f5b15045b9b6bd450e7f1b3ed1f5d94347343177020fd016437c70d8c8c64ae99b3ca38fbfb312ef08c78
data/CHANGELOG.md CHANGED
@@ -1,9 +1,11 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.2
3
+ ## [1.0.0] — 2026-08-27
4
4
 
5
- - ci: release via tags only (no push to main) (#2)
6
- - ci: auto-bump releases with GitHub Release + package publish
5
+ ### Breaking
6
+
7
+ - Rename assessment task methods from `list_cases` / `attach_cases` / `replace_cases` / `remove_case` to `list_tasks` / `attach_tasks` / `replace_tasks` / `remove_task`.
8
+ - Wire paths use `/tasks/` instead of `/cases/`; JSON keys use `tasks`, `task_id`, and `assessment_task_id`.
7
9
 
8
10
  ## [0.1.1] — 2026-08-21
9
11
 
data/README.md CHANGED
@@ -96,7 +96,7 @@ Responses are **flat JSON** (same shape as the Public API — no `{ "data": …
96
96
  | Resource | Common methods |
97
97
  |----------|----------------|
98
98
  | `client.org` | `retrieve`, `stats` |
99
- | `client.assessments` | `list`, `retrieve`, `create`, `update`, `activate`, `list_cases`, `attach_cases`, `replace_cases`, `remove_case` |
99
+ | `client.assessments` | `list`, `retrieve`, `create`, `update`, `activate`, `list_tasks`, `attach_tasks`, `replace_tasks`, `remove_task` |
100
100
  | `client.invites` | `create`, `bulk_create`, `list`, `retrieve`, `remind`, `cancel` |
101
101
  | `client.results` | `list`, `retrieve`, `iter_all` |
102
102
  | `client.webhooks` | `list`, `create`, `retrieve`, `update`, `delete`, `test`, `deliveries` |
@@ -131,9 +131,9 @@ client.invites.bulk_create(
131
131
 
132
132
  ```ruby
133
133
  assessment = client.assessments.create(title: "Backend screen")
134
- client.assessments.attach_cases(
134
+ client.assessments.attach_tasks(
135
135
  assessment["slug"],
136
- cases: [{ "case_id" => "<platform-or-org-case-uuid>", "source" => "platform" }]
136
+ tasks: [{ "task_id" => "<platform-or-org-task-uuid>", "source" => "platform" }]
137
137
  )
138
138
  client.assessments.activate(assessment["slug"])
139
139
  ```
@@ -35,35 +35,35 @@ module Praxicraft
35
35
  update(assessment, "status" => "active")
36
36
  end
37
37
 
38
- def list_cases(assessment, params = nil)
38
+ def list_tasks(assessment, params = nil)
39
39
  key = Client.path_segment(assessment, "assessment")
40
- @client.get("/assessments/#{key}/cases/", normalize(params))
40
+ @client.get("/assessments/#{key}/tasks/", normalize(params))
41
41
  end
42
42
 
43
- def attach_cases(assessment, args = nil, **kwargs)
43
+ def attach_tasks(assessment, args = nil, **kwargs)
44
44
  body = normalize(args || kwargs)
45
45
  if body.nil? || body.empty?
46
- raise APIError.new("attach_cases() requires cases or case_id", "INVALID_ARGUMENT")
46
+ raise APIError.new("attach_tasks() requires tasks or task_id", "INVALID_ARGUMENT")
47
47
  end
48
48
 
49
49
  key = Client.path_segment(assessment, "assessment")
50
- @client.post("/assessments/#{key}/cases/attach/", body)
50
+ @client.post("/assessments/#{key}/tasks/attach/", body)
51
51
  end
52
52
 
53
- def replace_cases(assessment, cases, extra = nil, **kwargs)
53
+ def replace_tasks(assessment, tasks, extra = nil, **kwargs)
54
54
  key = Client.path_segment(assessment, "assessment")
55
- body = { "cases" => cases }.merge(normalize(extra || kwargs) || {})
56
- @client.put("/assessments/#{key}/cases/replace/", body)
55
+ body = { "tasks" => tasks }.merge(normalize(extra || kwargs) || {})
56
+ @client.put("/assessments/#{key}/tasks/replace/", body)
57
57
  end
58
58
 
59
- def remove_case(assessment, assessment_case_id)
59
+ def remove_task(assessment, assessment_task_id)
60
60
  key = Client.path_segment(assessment, "assessment")
61
- case_id = assessment_case_id.to_s.strip
62
- if case_id.empty?
63
- raise APIError.new("assessment_case_id must be a non-empty string", "INVALID_ARGUMENT")
61
+ task_id = assessment_task_id.to_s.strip
62
+ if task_id.empty?
63
+ raise APIError.new("assessment_task_id must be a non-empty string", "INVALID_ARGUMENT")
64
64
  end
65
65
 
66
- @client.delete("/assessments/#{key}/cases/remove/", { "assessment_case_id" => case_id })
66
+ @client.delete("/assessments/#{key}/tasks/remove/", { "assessment_task_id" => task_id })
67
67
  end
68
68
 
69
69
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Praxicraft
4
- VERSION = "0.1.2"
4
+ VERSION = "1.0.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: praxicraft
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - PraxiCraft
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-24 00:00:00.000000000 Z
11
+ date: 2026-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest