swiftner 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/RELEASING.md +14 -0
- data/lib/swiftner/API/channel.rb +81 -0
- data/lib/swiftner/API/chapter.rb +76 -0
- data/lib/swiftner/API/meeting.rb +127 -0
- data/lib/swiftner/API/organisation.rb +77 -0
- data/lib/swiftner/client.rb +1 -1
- data/lib/swiftner/version.rb +1 -1
- data/lib/swiftner.rb +4 -0
- data/swiftner.gemspec +40 -0
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7fed0bd04566bcce81abf9cef775cd31ee2b4faf14709c190ea57a468804074e
|
4
|
+
data.tar.gz: 4d3c389378438555f00485e9f8cbee362a9d1757a8babbd5b545f5741f4f8b4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec7c67f789d1f167cbde69b4a7a6df4d173a237500681bb2238525833312c86beed7198688d1a8dba9ed867155cbf468cdb32fb50d5d7b42c2d522ebe9ff818a
|
7
|
+
data.tar.gz: 0a3023b1c834c6791168659cb7a2bb0b0b6d4b7902070175c3e7423024a4010809fc74bb7aed2ae4c70e4cd782a28896131aa581bb3787ca780f655006aae8a7
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.0.6]
|
4
|
+
- Added Meeting service with CRUD operations and `start`, `end`, `pause` and `resume`. [#10](https://github.com/Swiftner/swiftner_ruby/pull/10)
|
5
|
+
- Added Channel service with CRUD operations and `live?`. [#9](https://github.com/Swiftner/swiftner_ruby/pull/9)
|
6
|
+
- Added Chapter service with CRUD operations. [#8](https://github.com/Swiftner/swiftner_ruby/pull/8)
|
7
|
+
- Added Organisation service with CRUD operations and `add_org_to_token`. [#7](https://github.com/Swiftner/swiftner_ruby/pull/7)
|
8
|
+
|
3
9
|
## [0.0.2] - 2024-02-13
|
4
10
|
|
5
11
|
- Adds the first services supported.
|
data/RELEASING.md
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Releasing
|
2
|
+
|
3
|
+
1. Update `lib/swiftner/version.rb` accordingly and run `bundle install` to update the Gemfile.lock.
|
4
|
+
1. Update `CHANGELOG.md` to reflect the changes since last release. This means moving everyhing from the unrealesed section to an appropriate version section.
|
5
|
+
1. Commit changes.
|
6
|
+
1. Tag the release: `git tag -s vVERSION`
|
7
|
+
1. Push changes: `git push && git push --tags`
|
8
|
+
1. Build and publish:
|
9
|
+
```bash
|
10
|
+
gem build swiftner.gemspe
|
11
|
+
gem push swiftner-VERSION.gem
|
12
|
+
```
|
13
|
+
1. Add a new GitHub release using the content from new version section of `CHANGELOG.md` as the content.
|
14
|
+
1. Announce the new release, say "thank you" to the contributors.
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Swiftner
|
4
|
+
module API
|
5
|
+
# Represents a Channel service responsible for finding, creating, updating and deleting channels.
|
6
|
+
# Inherits from the Service class.
|
7
|
+
# Provides methods for interacting with channel.
|
8
|
+
class Channel < Service
|
9
|
+
REQUIRED_ATTRIBUTES = %i[name type space_id].freeze
|
10
|
+
|
11
|
+
# Finds all channels
|
12
|
+
# @return [Array<Swiftner::API::Channel>]
|
13
|
+
def self.find_channels
|
14
|
+
response = client.get("/channel/get-channels")
|
15
|
+
map_collection(response)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Finds channel by its id
|
19
|
+
# @param [Integer] channel_id
|
20
|
+
# @return [Swiftner::API::Channel]
|
21
|
+
def self.find(channel_id)
|
22
|
+
response = client.get("/channel/get/#{channel_id}")
|
23
|
+
build(response.parsed_response)
|
24
|
+
end
|
25
|
+
|
26
|
+
# @param [Hash] attributes
|
27
|
+
# @option attributes [String] :name (required)
|
28
|
+
# @option attributes [String] :type (required) - "audio", "video" or "dual"
|
29
|
+
# @option attributes [Integer] :space_id (required)
|
30
|
+
# @option attributes [String] :description (optional)
|
31
|
+
# @option attributes [Integer] :order (optional)
|
32
|
+
# @return [Swiftner::API::Channel]
|
33
|
+
def self.create(attributes)
|
34
|
+
validate_required(attributes, *REQUIRED_ATTRIBUTES)
|
35
|
+
|
36
|
+
response = client.post(
|
37
|
+
"/channel/create",
|
38
|
+
body: attributes.to_json,
|
39
|
+
headers: { "Content-Type" => "application/json" }
|
40
|
+
)
|
41
|
+
|
42
|
+
build(response.parsed_response)
|
43
|
+
end
|
44
|
+
|
45
|
+
# @return [Boolean]
|
46
|
+
def live?
|
47
|
+
client.get("/channel/is_channel_live?channel_id=#{id}")["status"] == "live"
|
48
|
+
rescue Swiftner::NotFound
|
49
|
+
# ?Why does api return 404 when channel is not live?
|
50
|
+
false
|
51
|
+
end
|
52
|
+
|
53
|
+
# @param [Hash] attributes
|
54
|
+
# @option attributes [String] :name (required)
|
55
|
+
# @option attributes [String] :type (required) - "audio", "video" or "dual"
|
56
|
+
# @option attributes [Integer] :space_id (required)
|
57
|
+
# @option attributes [String] :description (optional)
|
58
|
+
# @option attributes [Integer] :order (optional)
|
59
|
+
# @return [Swiftner::API::Channel]
|
60
|
+
def update(attributes)
|
61
|
+
attributes = attributes.transform_keys(&:to_s)
|
62
|
+
@details = @details.merge(attributes)
|
63
|
+
|
64
|
+
self.class.validate_required(@details, *REQUIRED_ATTRIBUTES)
|
65
|
+
|
66
|
+
client.put(
|
67
|
+
"/channel/update/#{id}",
|
68
|
+
body: @details.to_json,
|
69
|
+
headers: { "Content-Type" => "application/json" }
|
70
|
+
)
|
71
|
+
self
|
72
|
+
end
|
73
|
+
|
74
|
+
# Deletes channel by its id
|
75
|
+
# @return [Hash] response
|
76
|
+
def delete
|
77
|
+
client.delete("/channel/delete/#{id}")
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Swiftner
|
4
|
+
module API
|
5
|
+
# Represents a chapter service responsible for finding, creating, and deleting chapters.
|
6
|
+
# Inherits from the Service class.
|
7
|
+
# Provides methods for interacting with chapters.
|
8
|
+
class Chapter < Service
|
9
|
+
REQUIRED_ATTRIBUTES = %i[title duration video_content_id start].freeze
|
10
|
+
# Finds all chapters for a video content.
|
11
|
+
# @param [Integer] video_content_id
|
12
|
+
# @return [Array<Swiftner::API::Chapter>]
|
13
|
+
def self.find_chapters(video_content_id)
|
14
|
+
response = client.get("/video-content/get/#{video_content_id}/chapters")
|
15
|
+
map_collection(response)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Finds chapter by id.
|
19
|
+
# @param [Integer] chapter_id
|
20
|
+
# @return [Swiftner::API::Chapter]
|
21
|
+
def self.find(chapter_id)
|
22
|
+
response = client.get("/chapter/get/#{chapter_id}")
|
23
|
+
build(response.parsed_response)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Creates a chapter.
|
27
|
+
# @param [Hash] attributes
|
28
|
+
# @option attributes [String] :title (required)
|
29
|
+
# @option attributes [String] :duration (required)
|
30
|
+
# @option attributes [Integer] :video_content_id (required)
|
31
|
+
# @option attributes [String] :start (required)
|
32
|
+
# @option attributes [String] :start_seconds (optional)
|
33
|
+
# @option attributes [String] :language (optional)
|
34
|
+
# @return [Swiftner::API::Chapter]
|
35
|
+
def self.create(attributes)
|
36
|
+
validate_required(attributes, *REQUIRED_ATTRIBUTES)
|
37
|
+
|
38
|
+
response = client.post(
|
39
|
+
"/chapter/create",
|
40
|
+
body: attributes.to_json,
|
41
|
+
headers: { "Content-Type" => "application/json" }
|
42
|
+
)
|
43
|
+
|
44
|
+
build(response.parsed_response)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Creates a chapter.
|
48
|
+
# @param [Hash] attributes
|
49
|
+
# @option attributes [String] :title (optional)
|
50
|
+
# @option attributes [String] :duration (optional)
|
51
|
+
# @option attributes [Integer] :video_content_id (optional)
|
52
|
+
# @option attributes [String] :start (optional)
|
53
|
+
# @option attributes [String] :start_seconds (optional)
|
54
|
+
# @option attributes [String] :language (optional)
|
55
|
+
# @return [Swiftner::API::Chapter]
|
56
|
+
def update(attributes)
|
57
|
+
attributes = attributes.transform_keys(&:to_s)
|
58
|
+
@details = @details.merge(attributes)
|
59
|
+
|
60
|
+
self.class.validate_required(@details, *REQUIRED_ATTRIBUTES)
|
61
|
+
|
62
|
+
client.put(
|
63
|
+
"/chapter/update/#{id}",
|
64
|
+
body: @details.to_json,
|
65
|
+
headers: { "Content-Type" => "application/json" }
|
66
|
+
)
|
67
|
+
self
|
68
|
+
end
|
69
|
+
|
70
|
+
# @return [Hash]
|
71
|
+
def delete
|
72
|
+
client.delete("/chapter/delete/#{id}")
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,127 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Swiftner
|
4
|
+
module API
|
5
|
+
# Represents a Meeting service responsible for finding, creating, and deleting spaces.
|
6
|
+
# Inherits from the Service class.
|
7
|
+
# Provides methods for interacting with meetings.
|
8
|
+
class Meeting < Service
|
9
|
+
REQUIRED_ATTRIBUTES = %i[space_id language].freeze
|
10
|
+
# Finds all meetings
|
11
|
+
# @return [Array<Swiftner::API::Meeting>]
|
12
|
+
def self.find_meetings
|
13
|
+
response = client.get("/meeting/get-meetings")
|
14
|
+
map_collection(response)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Finds meeting by id
|
18
|
+
# @param [Integer] meeting_id
|
19
|
+
# @return [Swiftner::API::Meeting]
|
20
|
+
def self.find(meeting_id)
|
21
|
+
response = client.get("/meeting/get/#{meeting_id}")
|
22
|
+
build(response.parsed_response)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Creates a meeting.
|
26
|
+
# @param [Hash] attributes
|
27
|
+
# @option attributes [Integer] :space_id (required)
|
28
|
+
# @option attributes [String] :language (required)
|
29
|
+
# @option attributes [String] :title (optional)
|
30
|
+
# @option attributes [String] :description (optional)
|
31
|
+
# @option attributes [String] :start (optional) eg. "2024-09-06T08:37:45.162Z"
|
32
|
+
# @option attributes [Integer] :duration (optional)
|
33
|
+
# @option attributes [String] :thumbnail_url (optional)
|
34
|
+
# @option attributes [String] :state (optional) eg. "not_started", "ended"
|
35
|
+
# @option attributes [Integer] :prompt_id (optional)
|
36
|
+
# @return [Swiftner::API::Meeting]
|
37
|
+
def self.create(attributes)
|
38
|
+
validate_required(attributes, *REQUIRED_ATTRIBUTES)
|
39
|
+
|
40
|
+
response = client.post(
|
41
|
+
"/meeting/create",
|
42
|
+
body: attributes.to_json,
|
43
|
+
headers: { "Content-Type" => "application/json" }
|
44
|
+
)
|
45
|
+
|
46
|
+
build(response.parsed_response)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Starts a meeting
|
50
|
+
# @return [Swiftner::API::Meeting]
|
51
|
+
def start
|
52
|
+
response = client.post(
|
53
|
+
"/meeting/#{id}/start",
|
54
|
+
headers: { "Content-Type" => "application/json" }
|
55
|
+
)
|
56
|
+
|
57
|
+
@details = response
|
58
|
+
self
|
59
|
+
end
|
60
|
+
|
61
|
+
# Ends a meeting
|
62
|
+
# @return [Swiftner::API::Meeting]
|
63
|
+
def end
|
64
|
+
response = client.post(
|
65
|
+
"/meeting/#{id}/end",
|
66
|
+
headers: { "Content-Type" => "application/json" }
|
67
|
+
)
|
68
|
+
@details = response.parsed_response
|
69
|
+
self
|
70
|
+
end
|
71
|
+
|
72
|
+
# Pauses a meeting
|
73
|
+
# @return [Swiftner::API::Meeting, nil]
|
74
|
+
def pause
|
75
|
+
response = client.post(
|
76
|
+
"/meeting/#{id}/pause",
|
77
|
+
headers: { "Content-Type" => "application/json" }
|
78
|
+
)
|
79
|
+
@details = response.parsed_response
|
80
|
+
self
|
81
|
+
end
|
82
|
+
|
83
|
+
# Resumes a meeting
|
84
|
+
# @return [Swiftner::API::Meeting]
|
85
|
+
def resume
|
86
|
+
response = client.post(
|
87
|
+
"/meeting/#{id}/resume",
|
88
|
+
headers: { "Content-Type" => "application/json" }
|
89
|
+
)
|
90
|
+
@details = response.parsed_response
|
91
|
+
self
|
92
|
+
end
|
93
|
+
|
94
|
+
# Updates a meeting.
|
95
|
+
# @param [Hash] attributes
|
96
|
+
# @option attributes [Integer] :space_id (optional)
|
97
|
+
# @option attributes [String] :language (optional) eg. "no", "en"
|
98
|
+
# @option attributes [String] :title (optional)
|
99
|
+
# @option attributes [String] :description (optional)
|
100
|
+
# @option attributes [String] :start (optional) eg. "2024-09-06T08:37:45.162Z"
|
101
|
+
# @option attributes [Integer] :duration (optional)
|
102
|
+
# @option attributes [String] :thumbnail_url (optional)
|
103
|
+
# @option attributes [String] :state (optional) eg. "not_started", "ended"
|
104
|
+
# @option attributes [Integer] :prompt_id (optional)
|
105
|
+
# @return [Swiftner::API::Meeting]
|
106
|
+
def update(attributes)
|
107
|
+
attributes = attributes.transform_keys(&:to_s)
|
108
|
+
@details = @details.merge(attributes)
|
109
|
+
|
110
|
+
self.class.validate_required(@details, :language, :space)
|
111
|
+
|
112
|
+
client.put(
|
113
|
+
"/meeting/update/#{id}",
|
114
|
+
body: @details.to_json,
|
115
|
+
headers: { "Content-Type" => "application/json" }
|
116
|
+
)
|
117
|
+
self
|
118
|
+
end
|
119
|
+
|
120
|
+
# Deletes a meeting.
|
121
|
+
# @return [Hash]
|
122
|
+
def delete
|
123
|
+
client.delete("/meeting/delete/#{id}")
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Swiftner
|
4
|
+
module API
|
5
|
+
# Represents a Organisation service responsible for finding, creating, and deleting organisations.
|
6
|
+
# Inherits from the Service class.
|
7
|
+
# Provides methods for interacting with spaces.
|
8
|
+
class Organisation < Service
|
9
|
+
REQUIRED_ATTRIBUTES = %i[name].freeze
|
10
|
+
|
11
|
+
# Finds all organisations user is in
|
12
|
+
# @return [Array<Swiftner::API::Organisation>]
|
13
|
+
def self.find_organisations
|
14
|
+
response = client.get("/organisation/get-current-user-orgs")
|
15
|
+
map_collection(response)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Finds organisation by id
|
19
|
+
# @param [Integer] organisation_id
|
20
|
+
# @return [Swiftner::API::Organisation]
|
21
|
+
def self.find(organisation_id)
|
22
|
+
response = client.get("/organisation/get/#{organisation_id}")
|
23
|
+
build(response.parsed_response)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Add org to token
|
27
|
+
# @param [Integer] organisation_id
|
28
|
+
# @return [Hash] {access_hash: String, refresh_token: String}
|
29
|
+
def self.add_org_to_token(organisation_id)
|
30
|
+
client.put("/organisation/add-org-to-token?organisation_id=#{organisation_id}")
|
31
|
+
end
|
32
|
+
|
33
|
+
# Creates a new organisation
|
34
|
+
# @param [Hash] attributes
|
35
|
+
# @option attributes [String] :name (required)
|
36
|
+
# @option attributes [String] :description (optional)
|
37
|
+
# @option attributes [Integer] :default_prompt_id (optional)
|
38
|
+
# @option attributes [String] :language (optional)
|
39
|
+
# @return [Swiftner::API::Organisation]
|
40
|
+
def self.create(attributes)
|
41
|
+
validate_required(attributes, *REQUIRED_ATTRIBUTES)
|
42
|
+
response = client.post(
|
43
|
+
"/organisation/create",
|
44
|
+
body: attributes.to_json,
|
45
|
+
headers: { "Content-Type" => "application/json" }
|
46
|
+
)
|
47
|
+
build(response.parsed_response)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Updates organisation
|
51
|
+
# @param [Hash] attributes
|
52
|
+
# @option attributes [String] :name (optional)
|
53
|
+
# @option attributes [String] :description (optional)
|
54
|
+
# @option attributes [Integer] :default_prompt_id (optional)
|
55
|
+
# @option attributes [String] :language (optional)
|
56
|
+
# @return [Swiftner::API::Organisation]
|
57
|
+
def update(attributes)
|
58
|
+
attributes = attributes.transform_keys(&:to_s)
|
59
|
+
@details = @details.merge(attributes)
|
60
|
+
|
61
|
+
self.class.validate_required(@details, *REQUIRED_ATTRIBUTES)
|
62
|
+
|
63
|
+
client.put(
|
64
|
+
"/organisation/update/#{id}",
|
65
|
+
body: @details.to_json,
|
66
|
+
headers: { "Content-Type" => "application/json" }
|
67
|
+
)
|
68
|
+
self
|
69
|
+
end
|
70
|
+
|
71
|
+
# Deletes organisation
|
72
|
+
def delete
|
73
|
+
client.delete("/organisation/delete/#{id}")
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
data/lib/swiftner/client.rb
CHANGED
@@ -29,7 +29,7 @@ module Swiftner
|
|
29
29
|
|
30
30
|
def handle_response(response)
|
31
31
|
case response.code
|
32
|
-
when 200 then response
|
32
|
+
when 200, 201 then response
|
33
33
|
when 401 then raise Unauthorized.from_response(response)
|
34
34
|
when 403 then raise Forbidden.from_response(response)
|
35
35
|
when 404 then raise NotFound.from_response(response)
|
data/lib/swiftner/version.rb
CHANGED
data/lib/swiftner.rb
CHANGED
@@ -7,6 +7,10 @@ require_relative "swiftner/API/transcription"
|
|
7
7
|
require_relative "swiftner/API/upload"
|
8
8
|
require_relative "swiftner/API/video_content"
|
9
9
|
require_relative "swiftner/API/linked_content"
|
10
|
+
require_relative "swiftner/API/channel"
|
11
|
+
require_relative "swiftner/API/chapter"
|
12
|
+
require_relative "swiftner/API/organisation"
|
13
|
+
require_relative "swiftner/API/meeting"
|
10
14
|
require_relative "swiftner/configuration"
|
11
15
|
require_relative "swiftner/client"
|
12
16
|
require_relative "swiftner/version"
|
data/swiftner.gemspec
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/swiftner/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "swiftner"
|
7
|
+
spec.version = Swiftner::VERSION
|
8
|
+
spec.authors = ["Martin Ulleberg"]
|
9
|
+
spec.email = ["martin.ulleberg@gmail.com"]
|
10
|
+
|
11
|
+
spec.summary = "API wrapper for Swiftner's AI transcription service."
|
12
|
+
spec.description = "This gem provides an easy-to-use interface for Swiftner's API, allowing seamless integration of\
|
13
|
+
AI-driven transcription services into your Ruby applications."
|
14
|
+
spec.homepage = "https://swiftner.com"
|
15
|
+
spec.required_ruby_version = ">= 3.0.0"
|
16
|
+
|
17
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
18
|
+
spec.metadata["source_code_uri"] = "https://github.com/swiftner/swiftner_ruby"
|
19
|
+
spec.metadata["changelog_uri"] = "https://github.com/swiftner/swiftner_ruby/blob/main/CHANGELOG.md"
|
20
|
+
|
21
|
+
# Specify which files should be added to the gem when it is released.
|
22
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
23
|
+
spec.files = Dir.chdir(__dir__) do
|
24
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
25
|
+
(File.expand_path(f) == __FILE__) ||
|
26
|
+
f.start_with?(*%w[bin/ test/ spec/ features/ .git .github appveyor Gemfile])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
spec.bindir = "exe"
|
30
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
31
|
+
spec.require_paths = ["lib"]
|
32
|
+
|
33
|
+
spec.add_dependency "httparty", "~> 0.21"
|
34
|
+
# Uncomment to register a new dependency of your gem
|
35
|
+
# spec.add_dependency "example-gem", "~> 1.0"
|
36
|
+
|
37
|
+
# For more information and examples about making a new gem, check out our
|
38
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
39
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
40
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swiftner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Ulleberg
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -36,9 +36,14 @@ files:
|
|
36
36
|
- CHANGELOG.md
|
37
37
|
- CODE_OF_CONDUCT.md
|
38
38
|
- README.md
|
39
|
+
- RELEASING.md
|
39
40
|
- Rakefile
|
40
41
|
- lib/swiftner.rb
|
42
|
+
- lib/swiftner/API/channel.rb
|
43
|
+
- lib/swiftner/API/chapter.rb
|
41
44
|
- lib/swiftner/API/linked_content.rb
|
45
|
+
- lib/swiftner/API/meeting.rb
|
46
|
+
- lib/swiftner/API/organisation.rb
|
42
47
|
- lib/swiftner/API/service.rb
|
43
48
|
- lib/swiftner/API/space.rb
|
44
49
|
- lib/swiftner/API/transcription.rb
|
@@ -48,6 +53,7 @@ files:
|
|
48
53
|
- lib/swiftner/configuration.rb
|
49
54
|
- lib/swiftner/error.rb
|
50
55
|
- lib/swiftner/version.rb
|
56
|
+
- swiftner.gemspec
|
51
57
|
homepage: https://swiftner.com
|
52
58
|
licenses: []
|
53
59
|
metadata:
|
@@ -70,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
76
|
- !ruby/object:Gem::Version
|
71
77
|
version: '0'
|
72
78
|
requirements: []
|
73
|
-
rubygems_version: 3.5.
|
79
|
+
rubygems_version: 3.5.3
|
74
80
|
signing_key:
|
75
81
|
specification_version: 4
|
76
82
|
summary: API wrapper for Swiftner's AI transcription service.
|