kosapi_client 0.8.0 → 0.9.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
  SHA1:
3
- metadata.gz: 2cbd06f389e0118e1f7c3e9366af9638ee643bbf
4
- data.tar.gz: b4c7f3e7680653e4920a2c30876107c2dbf1ce2c
3
+ metadata.gz: bac1e9014ebfe31cb9d5be57bb61a75ee7301bb7
4
+ data.tar.gz: 70a1e0029c8fca1bf04fcf84e87cddd7a843e046
5
5
  SHA512:
6
- metadata.gz: dee4adbe8a2bdd0f8a975aaeb7797cdf61cc0230540b66666f8e30bf973b64d9ce919ab3d030981f45b8ce67fc5e590dd6252cdd24c74b44c7de36ba1f0c4d8b
7
- data.tar.gz: 8f327d32b45559da7156b0ca039fffbb73e64bb77e366f59574d9fe8cdcc8ce7a8e748f12e25f1004e83d62fb0c50438e81b5ff66fc098a94a5f3ea34fcd6c53
6
+ metadata.gz: 1b468d6c89c156918444e21f755457ea5747ec0a0dbd4c3a215908d0a0e5a6cf08caad4b44063a0b415d302f679f5ca982d80106ca82309ca3e4f8cc6daaf46a
7
+ data.tar.gz: 436b109ae00c71e174e22cf670005aad463287ee899cbbf82044955d0966bf979063ca3ceb00dcc0b13c44db97d47f71488ee43a94465d863d4f2f30bc55e590
@@ -6,6 +6,7 @@ module KOSapiClient
6
6
  include ResourceMapper
7
7
 
8
8
  # accessible resources definition
9
+ resource :branches
9
10
  resource :courses
10
11
  resource :course_events
11
12
  resource :divisions
@@ -21,3 +21,4 @@ require 'kosapi_client/entity/teacher'
21
21
  require 'kosapi_client/entity/semester'
22
22
  require 'kosapi_client/entity/student'
23
23
  require 'kosapi_client/entity/exam'
24
+ require 'kosapi_client/entity/branch'
@@ -0,0 +1,15 @@
1
+ module KOSapiClient
2
+ module Entity
3
+ class Branch < BaseEntity
4
+ map_data :abbrev
5
+ map_data :capacity, Integer
6
+ map_data :code
7
+ map_data :description, MLString
8
+ map_data :diploma_name, MLString
9
+ map_data :division, Link
10
+ map_data :guarantor, Link
11
+ map_data :name, MLString
12
+ map_data :open_for_admission, Boolean
13
+ end
14
+ end
15
+ end
@@ -1,4 +1,5 @@
1
1
  require 'kosapi_client/request_builder'
2
+ require 'kosapi_client/resource/branches_builder'
2
3
  require 'kosapi_client/resource/courses_builder'
3
4
  require 'kosapi_client/resource/parallels_builder'
4
5
  require 'kosapi_client/resource/exams_builder'
@@ -0,0 +1,11 @@
1
+ module KOSapiClient
2
+ module Resource
3
+ class BranchesBuilder < RequestBuilder
4
+ def study_plans
5
+ raise 'Call #find before asking for branch\'s study plans' unless id_set?
6
+ url_builder.set_path(id, 'studyPlans')
7
+ self
8
+ end
9
+ end
10
+ end
11
+ end
@@ -3,17 +3,34 @@ module KOSapiClient
3
3
  class CoursesBuilder < RequestBuilder
4
4
 
5
5
  def detail(level = 1)
6
- @url_builder.set_query_param(:detail, level)
6
+ url_builder.set_query_param(:detail, level)
7
7
  self
8
8
  end
9
9
 
10
10
  # Selects courses scheduled in the specified semester(s).
11
11
  def sem(*semesters)
12
- @url_builder.set_query_param(:sem, semesters.join(','))
12
+ url_builder.set_query_param(:sem, semesters.join(','))
13
13
  self
14
14
  end
15
15
 
16
16
  alias semester sem
17
+
18
+ # XXX: This is quite insane, we need some support to DRY subresources.
19
+ %w[events exams parallels students instances branches].each do |resource|
20
+ define_method(resource) do |semester: 'current'|
21
+ raise "Call #find({course_code}) before asking for #{resource}" unless id_set?
22
+ url_builder.set_path(id, resource)
23
+ url_builder.set_query_param(:sem, semester)
24
+ self
25
+ end
26
+ end
27
+
28
+ def parallel(code, semester: 'current')
29
+ raise 'Call #find({course_code}) before asking for parallel' unless id_set?
30
+ url_builder.set_path(id, 'parallels', code)
31
+ url_builder.set_query_param(:sem, semester)
32
+ self
33
+ end
17
34
  end
18
35
  end
19
36
  end
@@ -1,3 +1,3 @@
1
1
  module KOSapiClient
2
- VERSION = '0.8.0'
2
+ VERSION = '0.9.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kosapi_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tibor Szolár
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-19 00:00:00.000000000 Z
11
+ date: 2018-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -265,6 +265,7 @@ files:
265
265
  - lib/kosapi_client/entity/base_entity.rb
266
266
  - lib/kosapi_client/entity/base_person.rb
267
267
  - lib/kosapi_client/entity/boolean.rb
268
+ - lib/kosapi_client/entity/branch.rb
268
269
  - lib/kosapi_client/entity/course.rb
269
270
  - lib/kosapi_client/entity/course_event.rb
270
271
  - lib/kosapi_client/entity/coursin.rb
@@ -292,6 +293,7 @@ files:
292
293
  - lib/kosapi_client/request_builder.rb
293
294
  - lib/kosapi_client/request_builder_delegator.rb
294
295
  - lib/kosapi_client/resource.rb
296
+ - lib/kosapi_client/resource/branches_builder.rb
295
297
  - lib/kosapi_client/resource/course_events_builder.rb
296
298
  - lib/kosapi_client/resource/courses_builder.rb
297
299
  - lib/kosapi_client/resource/exams_builder.rb