calendav 0.5.1 → 0.6.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: b9184c07924c977505c60443440baa861d062b0d79277fc17659e3847033beb0
4
- data.tar.gz: c9e59f88fd7b1774443171047180e75ab6a6dd60323ece5344191625750ad760
3
+ metadata.gz: 3115f578b5329042f5a89fa08d3187add9a71a45a2d31cd424b8627a1a2c236c
4
+ data.tar.gz: fb6c5ba8597585660bc90adcacfa4007f8178d90b742f35d2401c9e0ab647435
5
5
  SHA512:
6
- metadata.gz: 7b0e23683f9359c7670d6a7b9ba1741a866634892c7cd7b190ff1b788f14eaf3e72bfafdde8a7f413cdc0c27bc1871644b0ff41a041f211afdcacc3fce1106c4
7
- data.tar.gz: 8dc1bcb05f35892cad6f3c9e7502cc903d3bf6e771e3f556f34178dcf5d90b44bcffa137aa71735a6af4a849e421102433e531a6f8a66a3b741ce4e1eeff0b83
6
+ metadata.gz: a39ecdba7a8ad77379b98b96724e68bc99cd3e46836ab65764fbba7f9765d9001ed46752fb5de85018736419e1c4db5739a412020f333382e00514ba74cda782
7
+ data.tar.gz: eae7061b25f20a6e5d4816e12dd11df886b4adce21caa2b5b7bd6c06837881b9141d0655ba6a6f7f5d24f6370df6fe9fce1961971801689dec02565a4573097c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## Unreleased
2
2
 
3
+ ## 0.6.0 - 2026-04-12
4
+
5
+ * Add `current-user-privilege-set` support (Antoine Girard #15)
6
+
3
7
  ## 0.5.1 - 2025-11-21
4
8
 
5
9
  * Expose transp attribute on events (Antoine Girard #14)
@@ -7,7 +7,7 @@ module Calendav
7
7
  class Calendar
8
8
  ATTRIBUTES = %i[
9
9
  url display_name description ctag etag time_zone color components reports
10
- sync_token
10
+ sync_token current_user_privilege_set
11
11
  ].freeze
12
12
 
13
13
  def self.from_xml(host, node)
@@ -15,6 +15,7 @@ module Calendav
15
15
  class CalendarsClient
16
16
  DEFAULT_ATTRIBUTES = %i[
17
17
  display_name resource_type etag ctag color components reports
18
+ current_user_privilege_set
18
19
  ].freeze
19
20
 
20
21
  def initialize(client, endpoint, credentials)
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Calendav
4
- Error = Class.new(StandardError)
4
+ class Error < StandardError; end
5
5
 
6
6
  class ParsingXMLError < Error
7
7
  attr_reader :xml, :original
@@ -30,5 +30,5 @@ module Calendav
30
30
  end
31
31
  end
32
32
 
33
- PreconditionError = Class.new(RequestError)
33
+ class PreconditionError < RequestError; end
34
34
  end
@@ -24,7 +24,11 @@ module Calendav
24
24
  def call
25
25
  XPATHS
26
26
  .transform_values { |xpath| value(xpath) }
27
- .merge(components: components, reports: reports)
27
+ .merge(
28
+ components: components,
29
+ reports: reports,
30
+ current_user_privilege_set: privileges
31
+ )
28
32
  end
29
33
 
30
34
  private
@@ -43,6 +47,12 @@ module Calendav
43
47
  ).collect(&:name)
44
48
  end
45
49
 
50
+ def privileges
51
+ element.xpath(
52
+ ".//dav:current-user-privilege-set/dav:privilege/*"
53
+ ).collect(&:name)
54
+ end
55
+
46
56
  def value(xpath)
47
57
  node = element.xpath(xpath)
48
58
  return nil if node.children.empty?
@@ -19,6 +19,11 @@ module Calendav
19
19
  key: :components,
20
20
  namespace: "caldav",
21
21
  name: "supported-calendar-component-set"
22
+ },
23
+ {
24
+ key: :current_user_privilege_set,
25
+ namespace: "dav",
26
+ name: "current-user-privilege-set"
22
27
  }
23
28
  ].freeze
24
29
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: calendav
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pat Allan