lara-sdk 1.6.1 → 1.7.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: 6a3b69ad7aedd5fba6abf61cd338174f91c6784780afb48ed888f2d6781c225f
4
- data.tar.gz: 8f736b1507a97c1da997e8136bf6407de5e3a687c704573397284ea093c4fa2b
3
+ metadata.gz: 07f0f176e933b058cb2389a2f42b9eca44f340697f90f7249071ca7db164da86
4
+ data.tar.gz: f44fd4c0ec64c2051a77273eab0d4fdff5f1f47f4188c8fe6b21f6f3dfd492a6
5
5
  SHA512:
6
- metadata.gz: ed938c0f7ddd966f7307cb13c33500931d2e5f87d10cdd4590b999b37b660148b95a7d5e73a73b0d69eafc464eb98a1c8a03e3b533cfd362f8e434aca995db96
7
- data.tar.gz: c3b778924d5b7e09ddf9efff21aed919579cf86df566ada5f96a044c043f6bf3e3fc529ee81c2c7f34c84d576f7f628b07a08719fcf1eadbef3dc7becf34e9c5
6
+ metadata.gz: f70a02eabf9588e9b6348efcffed1e4e051cfa11fea586c804ffc47e36c8a65fc9da2c1cfa466539a09b8dea0547727ce9d26dde0259056c1ed993409289380d
7
+ data.tar.gz: 96d6199390210e3b8c8628c9f048668981870671d78e08ee59f9bc1b08b8f856d8cd90070cf9150a2964fcfa3f8ce5198edda88f437e6609a718f5782cd5054d
@@ -57,6 +57,35 @@ module Lara
57
57
  body: { name: name }).transform_keys(&:to_sym))
58
58
  end
59
59
 
60
+ # @return [Lara::Models::GlossaryShares]
61
+ def get_shares(id)
62
+ Lara::Models::GlossaryShares.new(**@client.get("/v2/glossaries/#{id}/shares").transform_keys(&:to_sym))
63
+ end
64
+
65
+ def add_account_share(id, name: nil)
66
+ glossary_from(@client.post("/v2/glossaries/#{id}/shares", body: { name: name }.compact))
67
+ end
68
+
69
+ def rename_account_share(id, name:)
70
+ glossary_from(@client.put("/v2/glossaries/#{id}/shares", body: { name: name }))
71
+ end
72
+
73
+ def revoke_account_share(id)
74
+ glossary_from(@client.delete("/v2/glossaries/#{id}/shares"))
75
+ end
76
+
77
+ def add_group_share(id, group_id, name: nil)
78
+ glossary_from(@client.post("/v2/glossaries/#{id}/shares/groups/#{group_id}", body: { name: name }.compact))
79
+ end
80
+
81
+ def rename_group_share(id, group_id, name:)
82
+ glossary_from(@client.put("/v2/glossaries/#{id}/shares/groups/#{group_id}", body: { name: name }))
83
+ end
84
+
85
+ def revoke_group_share(id, group_id)
86
+ glossary_from(@client.delete("/v2/glossaries/#{id}/shares/groups/#{group_id}"))
87
+ end
88
+
60
89
  # @return [Lara::Models::GlossaryCounts]
61
90
  def counts(id)
62
91
  Lara::Models::GlossaryCounts.new(**@client.get("/v2/glossaries/#{id}/counts").transform_keys(&:to_sym))
@@ -169,5 +198,11 @@ module Lara
169
198
  Lara::Models::GlossaryImport.new(**@client.delete("/v2/glossaries/#{glossary_id}/content",
170
199
  body: body).transform_keys(&:to_sym))
171
200
  end
201
+
202
+ private
203
+
204
+ def glossary_from(response)
205
+ Lara::Models::Glossary.new(**response.transform_keys(&:to_sym))
206
+ end
172
207
  end
173
208
  end
data/lib/lara/memories.rb CHANGED
@@ -69,6 +69,35 @@ module Lara
69
69
  models.first
70
70
  end
71
71
 
72
+ # @return [Lara::Models::MemoryShares]
73
+ def get_shares(id)
74
+ Lara::Models::MemoryShares.new(**@client.get("/v2/memories/#{id}/shares").transform_keys(&:to_sym))
75
+ end
76
+
77
+ def add_account_share(id, name: nil)
78
+ memory_from(@client.post("/v2/memories/#{id}/shares", body: { name: name }.compact))
79
+ end
80
+
81
+ def rename_account_share(id, name:)
82
+ memory_from(@client.put("/v2/memories/#{id}/shares", body: { name: name }))
83
+ end
84
+
85
+ def revoke_account_share(id)
86
+ memory_from(@client.delete("/v2/memories/#{id}/shares"))
87
+ end
88
+
89
+ def add_group_share(id, group_id, name: nil)
90
+ memory_from(@client.post("/v2/memories/#{id}/shares/groups/#{group_id}", body: { name: name }.compact))
91
+ end
92
+
93
+ def rename_group_share(id, group_id, name:)
94
+ memory_from(@client.put("/v2/memories/#{id}/shares/groups/#{group_id}", body: { name: name }))
95
+ end
96
+
97
+ def revoke_group_share(id, group_id)
98
+ memory_from(@client.delete("/v2/memories/#{id}/shares/groups/#{group_id}"))
99
+ end
100
+
72
101
  # @return [Lara::Models::MemoryImport]
73
102
  def add_translation(id_or_ids, source:, target:, sentence:, translation:, tuid: nil,
74
103
  sentence_before: nil, sentence_after: nil, headers: nil)
@@ -166,5 +195,11 @@ module Lara
166
195
  end
167
196
  current
168
197
  end
198
+
199
+ private
200
+
201
+ def memory_from(response)
202
+ Lara::Models::Memory.new(**response.transform_keys(&:to_sym))
203
+ end
169
204
  end
170
205
  end
@@ -16,7 +16,8 @@ module Lara
16
16
  @created_at = Base.parse_time(created_at)
17
17
  @updated_at = Base.parse_time(updated_at)
18
18
  @shared_at = Base.parse_time(shared_at)
19
- @is_personal = is_personal
19
+ # The API sends is_personal: true and omits the key otherwise; it never sends false or null.
20
+ @is_personal = is_personal || false
20
21
  end
21
22
  end
22
23
 
@@ -21,7 +21,8 @@ module Lara
21
21
  @secret = secret
22
22
  @collaborators_count = collaborators_count
23
23
  @shared_at = Base.parse_time(shared_at)
24
- @is_personal = is_personal
24
+ # The API sends is_personal: true and omits the key otherwise; it never sends false or null.
25
+ @is_personal = is_personal || false
25
26
  end
26
27
  end
27
28
 
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "base"
4
+
5
+ module Lara
6
+ module Models
7
+ class ResourceShareEntry < Base
8
+ attr_reader :id, :name, :share_name, :shared_at, :permissions
9
+
10
+ def initialize(id:, name:, share_name:, shared_at:, permissions:, **_kwargs)
11
+ super()
12
+ @id = id
13
+ @name = name
14
+ @share_name = share_name
15
+ @shared_at = Base.parse_time(shared_at)
16
+ @permissions = permissions
17
+ end
18
+ end
19
+
20
+ class MemoryShares < Base
21
+ attr_reader :memory, :account, :groups, :users
22
+
23
+ def initialize(memory:, account: nil, groups: [], users: [], **_kwargs)
24
+ super()
25
+ @memory = Memory.new(**memory.transform_keys(&:to_sym))
26
+ @account = ResourceShareEntry.new(**account.transform_keys(&:to_sym)) if account
27
+ @groups = groups.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
28
+ @users = users.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
29
+ end
30
+ end
31
+
32
+ class GlossaryShares < Base
33
+ attr_reader :glossary, :account, :groups, :users
34
+
35
+ def initialize(glossary:, account: nil, groups: [], users: [], **_kwargs)
36
+ super()
37
+ @glossary = Glossary.new(**glossary.transform_keys(&:to_sym))
38
+ @account = ResourceShareEntry.new(**account.transform_keys(&:to_sym)) if account
39
+ @groups = groups.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
40
+ @users = users.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
41
+ end
42
+ end
43
+
44
+ class StyleguideShares < Base
45
+ attr_reader :styleguide, :account, :groups, :users
46
+
47
+ def initialize(styleguide:, account: nil, groups: [], users: [], **_kwargs)
48
+ super()
49
+ @styleguide = Styleguide.new(**styleguide.transform_keys(&:to_sym))
50
+ @account = ResourceShareEntry.new(**account.transform_keys(&:to_sym)) if account
51
+ @groups = groups.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
52
+ @users = users.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
53
+ end
54
+ end
55
+ end
56
+ end
@@ -115,10 +115,10 @@ module Lara
115
115
  end
116
116
 
117
117
  class Styleguide < Base
118
- attr_reader :id, :name, :content, :owner_id, :created_at, :updated_at, :is_personal
118
+ attr_reader :id, :name, :content, :owner_id, :created_at, :updated_at, :shared_at, :is_personal
119
119
 
120
120
  def initialize(id:, name:, content: nil, owner_id: nil, created_at: nil, updated_at: nil,
121
- is_personal: nil, **_kwargs)
121
+ shared_at: nil, is_personal: nil, **_kwargs)
122
122
  super()
123
123
  @id = id
124
124
  @name = name
@@ -126,7 +126,9 @@ module Lara
126
126
  @owner_id = owner_id
127
127
  @created_at = Base.parse_time(created_at)
128
128
  @updated_at = Base.parse_time(updated_at)
129
- @is_personal = is_personal
129
+ @shared_at = Base.parse_time(shared_at)
130
+ # The API sends is_personal: true and omits the key otherwise; it never sends false or null.
131
+ @is_personal = is_personal || false
130
132
  end
131
133
 
132
134
  def to_s
@@ -40,5 +40,40 @@ module Lara
40
40
  def delete(id)
41
41
  Lara::Models::Styleguide.new(**@client.delete("/v2/styleguides/#{id}").transform_keys(&:to_sym))
42
42
  end
43
+
44
+ # @return [Lara::Models::StyleguideShares]
45
+ def get_shares(id)
46
+ Lara::Models::StyleguideShares.new(**@client.get("/v2/styleguides/#{id}/shares").transform_keys(&:to_sym))
47
+ end
48
+
49
+ def add_account_share(id, name: nil)
50
+ styleguide_from(@client.post("/v2/styleguides/#{id}/shares", body: { name: name }.compact))
51
+ end
52
+
53
+ def rename_account_share(id, name:)
54
+ styleguide_from(@client.put("/v2/styleguides/#{id}/shares", body: { name: name }))
55
+ end
56
+
57
+ def revoke_account_share(id)
58
+ styleguide_from(@client.delete("/v2/styleguides/#{id}/shares"))
59
+ end
60
+
61
+ def add_group_share(id, group_id, name: nil)
62
+ styleguide_from(@client.post("/v2/styleguides/#{id}/shares/groups/#{group_id}", body: { name: name }.compact))
63
+ end
64
+
65
+ def rename_group_share(id, group_id, name:)
66
+ styleguide_from(@client.put("/v2/styleguides/#{id}/shares/groups/#{group_id}", body: { name: name }))
67
+ end
68
+
69
+ def revoke_group_share(id, group_id)
70
+ styleguide_from(@client.delete("/v2/styleguides/#{id}/shares/groups/#{group_id}"))
71
+ end
72
+
73
+ private
74
+
75
+ def styleguide_from(response)
76
+ Lara::Models::Styleguide.new(**response.transform_keys(&:to_sym))
77
+ end
43
78
  end
44
79
  end
data/lib/lara/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lara
4
- VERSION = "1.6.1"
4
+ VERSION = "1.7.0"
5
5
  end
data/lib/lara.rb CHANGED
@@ -19,6 +19,7 @@ require_relative "lara/models/base"
19
19
  require_relative "lara/models/text"
20
20
  require_relative "lara/models/memories"
21
21
  require_relative "lara/models/glossaries"
22
+ require_relative "lara/models/shares"
22
23
  require_relative "lara/models/documents"
23
24
  require_relative "lara/models/images"
24
25
  require_relative "lara/models/audio"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lara-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Translated
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-08-25 00:00:00.000000000 Z
11
+ date: 2026-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -165,6 +165,7 @@ files:
165
165
  - lib/lara/models/glossaries.rb
166
166
  - lib/lara/models/images.rb
167
167
  - lib/lara/models/memories.rb
168
+ - lib/lara/models/shares.rb
168
169
  - lib/lara/models/text.rb
169
170
  - lib/lara/s3_client.rb
170
171
  - lib/lara/styleguides.rb