kosapi_client 0.14.0 → 0.15.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: 3ddc958339b1941f96107542a7c50bcbdf3f9dc869362ff4a68190ea1b9fd7c0
4
- data.tar.gz: 7807d6b087afd5b02e0f8e7516fe5e0822efac8f31df52b2656a67bbff6a133c
3
+ metadata.gz: 0f194adf9313dba655ae7b4f1df804af846478e0409ca119251e2085eb9ce45c
4
+ data.tar.gz: 84411d4e1bcd9c0cb0a98b98a185c2478bb3a076308e65321d8ef36198b98c3e
5
5
  SHA512:
6
- metadata.gz: 2ad6c535c9bcf9a85138047fabbef4e129c8377c9b9b10277a542d79ab02ee1102c80cc03d4824325795fcd20e7243c319b0c31b6f13022d0de1e43c917b199e
7
- data.tar.gz: 549b833216a3d5f0b8bd8bbf2dfe96581d771abe2eff8ce9c8634f627e678cae653d0d01de7f7d3e3e5d23674e3211a57a0bf597426c59097e195ad6d15d5034
6
+ metadata.gz: 1e4ec324c5efdf50066c6a62a331dccf388d267e05938974abf5511d5aae038ccbc5e6a10194cb2e2670bd88123bac98e38b57fe03143fbd7b9e2e6781f0c937
7
+ data.tar.gz: e185c427a236c862936b48cba50c928fcdf4ccfbc821ba4047e507ede3be469298028d871e6b5fcb5487a0ed5e48c67bbea92c4132676143cd732db5163ddaf2
@@ -13,6 +13,7 @@ module KOSapiClient
13
13
  resource :parallels
14
14
  resource :parameters
15
15
  resource :exams
16
+ resource :schedule_slots
16
17
  resource :semesters
17
18
  resource :teachers
18
19
 
@@ -37,8 +37,14 @@ module KOSapiClient
37
37
  { href: link_href, rel: link_rel, title: link_title }
38
38
  end
39
39
 
40
- def method_missing(method, *args, &block)
41
- target.send(method, *args, &block)
40
+ if RUBY_VERSION >= '3.0'
41
+ def method_missing(method, *args, **kwargs, &block)
42
+ target.send(method, *args, **kwargs, &block)
43
+ end
44
+ else
45
+ def method_missing(method, *args, &block)
46
+ target.send(method, *args, &block)
47
+ end
42
48
  end
43
49
 
44
50
  def respond_to_missing?(method_name, include_private = false)
@@ -0,0 +1,15 @@
1
+ module KOSapiClient
2
+ module Entity
3
+ class ScheduleSlot < BaseEntity
4
+
5
+ map_data :department, Link
6
+ map_data :end_date, Time
7
+ map_data :faculty, Link
8
+ map_data :note, String
9
+ map_data :occupied, Boolean
10
+ map_data :room, Link
11
+ map_data :start_date, Time
12
+
13
+ end
14
+ end
15
+ end
@@ -13,6 +13,7 @@ module KOSapiClient
13
13
  map_data :start_time, Time
14
14
  map_data :end_time, Time
15
15
  map_data :weeks, String
16
+ map_data :teachers, [Link], element: :teacher
16
17
 
17
18
  end
18
19
  end
@@ -13,6 +13,7 @@ require 'kosapi_client/entity/coursin'
13
13
  require 'kosapi_client/entity/division'
14
14
  require 'kosapi_client/entity/teacher_timetable_slot'
15
15
  require 'kosapi_client/entity/timetable_slot'
16
+ require 'kosapi_client/entity/schedule_slot'
16
17
  require 'kosapi_client/entity/parallel'
17
18
  require 'kosapi_client/entity/parameter'
18
19
  require 'kosapi_client/entity/base_person'
@@ -8,14 +8,6 @@ module KOSapiClient
8
8
 
9
9
  alias :super_method_missing :method_missing
10
10
 
11
- def method_missing(method, *args, &block)
12
- if @response
13
- delegate_to_response(method, *args, &block)
14
- else
15
- delegate_to_builder(method, *args, &block)
16
- end
17
- end
18
-
19
11
  def respond_to_missing?(method, include_all)
20
12
  if @response
21
13
  @response.respond_to?(method, include_all)
@@ -24,27 +16,72 @@ module KOSapiClient
24
16
  end
25
17
  end
26
18
 
27
- private
28
- def delegate_to_response(method, *args, &block)
29
- if @response.respond_to?(method)
30
- @response.send(method, *args, &block)
31
- else
32
- super_method_missing(method, *args)
19
+ if RUBY_VERSION >= '3.0'
20
+ def method_missing(method, *args, **kwargs, &block)
21
+ if @response
22
+ delegate_to_response(method, *args, **kwargs, &block)
23
+ else
24
+ delegate_to_builder(method, *args, **kwargs, &block)
25
+ end
33
26
  end
34
- end
35
27
 
36
- def delegate_to_builder(method, *args, &block)
37
- if @request_builder.respond_to?(method)
38
- res = @request_builder.send(method, *args, &block)
39
- if res.equal?(@request_builder)
40
- self
28
+ private
29
+
30
+ def delegate_to_response(method, *args, **kwargs, &block)
31
+ if @response.respond_to?(method)
32
+ @response.send(method, *args, **kwargs, &block)
41
33
  else
42
- res
34
+ super_method_missing(method, *args, **kwargs)
35
+ end
36
+ end
37
+
38
+ def delegate_to_builder(method, *args, **kwargs, &block)
39
+ if @request_builder.respond_to?(method)
40
+ res = @request_builder.send(method, *args, **kwargs, &block)
41
+ if res.equal?(@request_builder)
42
+ self
43
+ else
44
+ res
45
+ end
46
+ else
47
+ @request_builder.finalize
48
+ @response = @request_builder.response
49
+ delegate_to_response(method, *args, **kwargs, &block)
50
+ end
51
+ end
52
+
53
+ else # RUBY_VERSION < '3.0'
54
+ def method_missing(method, *args, &block)
55
+ if @response
56
+ delegate_to_response(method, *args, &block)
57
+ else
58
+ delegate_to_builder(method, *args, &block)
59
+ end
60
+ end
61
+
62
+ private
63
+
64
+ def delegate_to_response(method, *args, &block)
65
+ if @response.respond_to?(method)
66
+ @response.send(method, *args, &block)
67
+ else
68
+ super_method_missing(method, *args)
69
+ end
70
+ end
71
+
72
+ def delegate_to_builder(method, *args, &block)
73
+ if @request_builder.respond_to?(method)
74
+ res = @request_builder.send(method, *args, &block)
75
+ if res.equal?(@request_builder)
76
+ self
77
+ else
78
+ res
79
+ end
80
+ else
81
+ @request_builder.finalize
82
+ @response = @request_builder.response
83
+ delegate_to_response(method, *args, &block)
43
84
  end
44
- else
45
- @request_builder.finalize
46
- @response = @request_builder.response
47
- delegate_to_response(method, *args, &block)
48
85
  end
49
86
  end
50
87
 
@@ -1,3 +1,3 @@
1
1
  module KOSapiClient
2
- VERSION = '0.14.0'
2
+ VERSION = '0.15.0'
3
3
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kosapi_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tibor Szolár
8
8
  - Jakub Jirutka
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-07-08 00:00:00.000000000 Z
12
+ date: 2025-09-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -245,6 +245,7 @@ files:
245
245
  - lib/kosapi_client/entity/parameter.rb
246
246
  - lib/kosapi_client/entity/person.rb
247
247
  - lib/kosapi_client/entity/result_page.rb
248
+ - lib/kosapi_client/entity/schedule_slot.rb
248
249
  - lib/kosapi_client/entity/semester.rb
249
250
  - lib/kosapi_client/entity/student.rb
250
251
  - lib/kosapi_client/entity/teacher.rb
@@ -274,7 +275,7 @@ homepage: https://github.com/cvut/kosapi_client.rb
274
275
  licenses:
275
276
  - MIT
276
277
  metadata: {}
277
- post_install_message:
278
+ post_install_message:
278
279
  rdoc_options: []
279
280
  require_paths:
280
281
  - lib
@@ -290,7 +291,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
290
291
  version: '0'
291
292
  requirements: []
292
293
  rubygems_version: 3.1.6
293
- signing_key:
294
+ signing_key:
294
295
  specification_version: 4
295
296
  summary: Simple Ruby client library for accessing KOSapi service resources
296
297
  test_files: []