omnievent-icalendar 0.1.0.pre5 → 0.1.0.pre9

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: aa25b3d3dc39d4123b581c237ac7800d8ee3a6e3d5c0cb3f2df0cb1c76496bad
4
- data.tar.gz: b596143501e31e37cf6b8c18a45828f6fbe452c3fe3d9d91dd74a86d7eecd4d5
3
+ metadata.gz: 78744197d82208ad0dd99cfd8da48ced3eee93b9db16c67959ea29214062d9bf
4
+ data.tar.gz: 1c13423890b36316d80f4c8aafb5692a42c23114aaab166a966a53f0d6333cc2
5
5
  SHA512:
6
- metadata.gz: 4cd59495f94aae88a6792c0f772e65cd2a1d7ebd82895a6676d434ae3df527ea101774343e64b0e8ee42a6598ac6b8513da0048729e8d624421955eb0280cdcd
7
- data.tar.gz: a95ede68cb9bc0d9eacfacc735306888c64438c5500bee52ce7b96d9473757479527d605100e9037589108532561b2e1ef18919c70441dc0e45ab627d1277345
6
+ metadata.gz: c3d13c0ca81e0eeafa0a74114f831a37b1807b686d676fa27837ff881209f19725dd93bb7e18469489138d954de8efc1ae98067e531d67888e2f879f3650ccd2
7
+ data.tar.gz: c493bed8ba8e50028fe62a569a9d90fb1b45e7e4a3df5bb758b553809be2e63fe21ec01aa89af77e1ce579b665af12848de2939372a585cda62dbdc340194515
data/Gemfile CHANGED
@@ -10,3 +10,5 @@ gem "rake", "~> 13.0"
10
10
  gem "rspec", "~> 3.0"
11
11
 
12
12
  gem "rubocop", "~> 1.21"
13
+
14
+ gem "racc"
data/Gemfile.lock CHANGED
@@ -1,10 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- omnievent-icalendar (0.1.0.pre4)
5
- addressable (~> 2.7)
6
- icalendar
7
- icalendar-recurrence (~> 1.1)
4
+ omnievent-icalendar (0.1.0.pre9)
8
5
  omnievent
9
6
 
10
7
  GEM
@@ -36,6 +33,7 @@ GEM
36
33
  parser (3.2.1.0)
37
34
  ast (~> 2.4.1)
38
35
  public_suffix (5.0.1)
36
+ racc (1.8.1)
39
37
  rainbow (3.1.1)
40
38
  rake (13.0.6)
41
39
  regexp_parser (2.7.0)
@@ -76,11 +74,16 @@ GEM
76
74
 
77
75
  PLATFORMS
78
76
  arm64-darwin-21
77
+ arm64-darwin-23
79
78
  x86_64-linux
80
79
 
81
80
  DEPENDENCIES
81
+ addressable (~> 2.7)
82
82
  byebug
83
+ icalendar
84
+ icalendar-recurrence (~> 1.1)
83
85
  omnievent-icalendar!
86
+ racc
84
87
  rake (~> 13.0)
85
88
  rspec (~> 3.0)
86
89
  rubocop (~> 1.21)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OmniEvent
4
4
  module Icalendar
5
- VERSION = "0.1.0.pre5"
5
+ VERSION = "0.1.0.pre9"
6
6
  end
7
7
  end
@@ -14,6 +14,14 @@ module OmniEvent
14
14
 
15
15
  include OmniEvent::Strategy
16
16
 
17
+ DEFAULT_COUNT = 10
18
+ ATTENDEE_STATUS_MAP = {
19
+ "NEEDS-ACTION" => "invited",
20
+ "ACCEPTED" => "confirmed",
21
+ "DECLINED" => "declined",
22
+ "TENTATIVE" => "tentative"
23
+ }.freeze
24
+
17
25
  option :name, "icalendar"
18
26
  option :expand_recurrences
19
27
  option :uri, ""
@@ -48,10 +56,15 @@ module OmniEvent
48
56
  url: raw_event.url.to_s
49
57
  }
50
58
 
59
+ associated_data = {
60
+ registrations: get_registrations(raw_event)
61
+ }
62
+
51
63
  OmniEvent::EventHash.new(
52
64
  provider: name,
53
65
  data: data,
54
- metadata: retrieve_metadata(raw_event)
66
+ metadata: retrieve_metadata(raw_event),
67
+ associated_data: associated_data
55
68
  )
56
69
  end
57
70
 
@@ -144,11 +157,10 @@ module OmniEvent
144
157
  end
145
158
 
146
159
  def extract_occurences(schedule)
147
- if options.from_time && options.to_time
148
- schedule.occurrences_between(options.from_time, options.to_time)
149
- else
150
- schedule.all_occurrences
151
- end
160
+ return schedule.occurrences_between(options.from_time, options.to_time) if options.from_time && options.to_time
161
+
162
+ schedule.rrules.first.count = DEFAULT_COUNT if !schedule.rrules.first.count && !schedule.rrules.first.until
163
+ schedule.all_occurrences
152
164
  end
153
165
 
154
166
  def recurrence?(event)
@@ -162,6 +174,19 @@ module OmniEvent
162
174
  def exception?(exceptions, occurrence)
163
175
  exceptions.any? { |e| e.recurrence_id.to_i == occurrence.start_time.to_i }
164
176
  end
177
+
178
+ def get_registrations(raw_event)
179
+ return [] unless raw_event&.attendee
180
+
181
+ raw_event.attendee.map do |attendee|
182
+ {
183
+ uid: attendee.to,
184
+ name: attendee.ical_params["cn"].first,
185
+ email: attendee.to,
186
+ status: ATTENDEE_STATUS_MAP[attendee.ical_params["partstat"].first]
187
+ }
188
+ end
189
+ end
165
190
  end
166
191
  end
167
192
  end
@@ -28,10 +28,10 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ["lib"]
30
30
 
31
- spec.add_dependency "addressable", "~> 2.7"
32
- spec.add_dependency "icalendar"
33
- spec.add_dependency "icalendar-recurrence", "~> 1.1"
34
31
  spec.add_dependency "omnievent"
32
+ spec.add_development_dependency "addressable", "~> 2.7"
35
33
  spec.add_development_dependency "byebug"
34
+ spec.add_development_dependency "icalendar"
35
+ spec.add_development_dependency "icalendar-recurrence", "~> 1.1"
36
36
  spec.add_development_dependency "webmock"
37
37
  end
metadata CHANGED
@@ -1,31 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omnievent-icalendar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre5
4
+ version: 0.1.0.pre9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Angus McLeod
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-27 00:00:00.000000000 Z
11
+ date: 2024-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: addressable
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2.7'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2.7'
27
- - !ruby/object:Gem::Dependency
28
- name: icalendar
14
+ name: omnievent
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - ">="
@@ -39,27 +25,27 @@ dependencies:
39
25
  - !ruby/object:Gem::Version
40
26
  version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
- name: icalendar-recurrence
28
+ name: addressable
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: '1.1'
48
- type: :runtime
33
+ version: '2.7'
34
+ type: :development
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: '1.1'
40
+ version: '2.7'
55
41
  - !ruby/object:Gem::Dependency
56
- name: omnievent
42
+ name: byebug
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - ">="
60
46
  - !ruby/object:Gem::Version
61
47
  version: '0'
62
- type: :runtime
48
+ type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
@@ -67,7 +53,7 @@ dependencies:
67
53
  - !ruby/object:Gem::Version
68
54
  version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
- name: byebug
56
+ name: icalendar
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
@@ -80,6 +66,20 @@ dependencies:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: icalendar-recurrence
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.1'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.1'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: webmock
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -133,11 +133,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
133
133
  version: 2.6.0
134
134
  required_rubygems_version: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">"
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: 1.3.1
138
+ version: '0'
139
139
  requirements: []
140
- rubygems_version: 3.3.26
140
+ rubygems_version: 3.5.17
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: OmniEvent iCalendar strategy