meibo 0.27.0 → 0.28.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.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/.envrc +4 -0
  3. data/.rubocop.yml +14 -2
  4. data/.rubocop_todo.yml +0 -7
  5. data/Gemfile.lock +157 -56
  6. data/README.md +14 -3
  7. data/flake.lock +188 -0
  8. data/flake.nix +55 -0
  9. data/gemset.nix +658 -0
  10. data/lib/meibo/academic_session.rb +21 -21
  11. data/lib/meibo/classroom.rb +47 -34
  12. data/lib/meibo/classroom_set.rb +5 -1
  13. data/lib/meibo/converter.rb +16 -18
  14. data/lib/meibo/course.rb +34 -21
  15. data/lib/meibo/course_set.rb +5 -1
  16. data/lib/meibo/data_model.rb +46 -36
  17. data/lib/meibo/data_set.rb +8 -10
  18. data/lib/meibo/demographic.rb +36 -36
  19. data/lib/meibo/enrollment.rb +22 -22
  20. data/lib/meibo/enrollment_set.rb +9 -2
  21. data/lib/meibo/eportal/v3/classroom.rb +11 -0
  22. data/lib/meibo/eportal/v3/course.rb +11 -0
  23. data/lib/meibo/eportal/v3/enrollment.rb +11 -0
  24. data/lib/meibo/eportal/v3/organization.rb +11 -0
  25. data/lib/meibo/eportal/v3/user.rb +16 -0
  26. data/lib/meibo/eportal/v3/user_profile.rb +11 -0
  27. data/lib/meibo/eportal/v3.rb +30 -0
  28. data/lib/meibo/eportal/v4/user.rb +37 -0
  29. data/lib/meibo/eportal/v4.rb +16 -0
  30. data/lib/meibo/eportal.rb +6 -0
  31. data/lib/meibo/errors.rb +27 -5
  32. data/lib/meibo/factory_bot/academic_session.rb +1 -1
  33. data/lib/meibo/factory_bot/classroom.rb +1 -1
  34. data/lib/meibo/factory_bot/course.rb +1 -1
  35. data/lib/meibo/factory_bot/demographic.rb +1 -1
  36. data/lib/meibo/factory_bot/enrollment.rb +1 -1
  37. data/lib/meibo/factory_bot/manifest.rb +0 -21
  38. data/lib/meibo/factory_bot/organization.rb +1 -1
  39. data/lib/meibo/factory_bot/role.rb +2 -4
  40. data/lib/meibo/factory_bot/user.rb +7 -7
  41. data/lib/meibo/factory_bot/user_profile.rb +1 -1
  42. data/lib/meibo/japan_k12_schools_profile/v1/enrollment.rb +16 -0
  43. data/lib/meibo/japan_k12_schools_profile/v1.rb +20 -0
  44. data/lib/meibo/japan_k12_schools_profile.rb +6 -0
  45. data/lib/meibo/japan_profile/v1_1/academic_session.rb +29 -0
  46. data/lib/meibo/japan_profile/v1_1/classroom.rb +27 -0
  47. data/lib/meibo/japan_profile/v1_1/course.rb +16 -0
  48. data/lib/meibo/japan_profile/v1_1/demographic.rb +11 -0
  49. data/lib/meibo/japan_profile/v1_1/enrollment.rb +47 -0
  50. data/lib/meibo/japan_profile/v1_1/organization.rb +16 -0
  51. data/lib/meibo/japan_profile/v1_1/organization_set.rb +23 -0
  52. data/lib/meibo/japan_profile/v1_1/user.rb +39 -0
  53. data/lib/meibo/japan_profile/v1_1/user_set.rb +17 -0
  54. data/lib/meibo/japan_profile/v1_1.rb +35 -0
  55. data/lib/meibo/japan_profile/v1_1_1.rb +9 -0
  56. data/lib/meibo/japan_profile/v1_2/user.rb +42 -0
  57. data/lib/meibo/japan_profile/v1_2.rb +20 -0
  58. data/lib/meibo/japan_profile.rb +6 -0
  59. data/lib/meibo/manifest.rb +41 -46
  60. data/lib/meibo/oneroster/v1_2/user.rb +43 -0
  61. data/lib/meibo/oneroster/v1_2.rb +62 -0
  62. data/lib/meibo/oneroster/v1_2_1.rb +22 -0
  63. data/lib/meibo/oneroster.rb +6 -0
  64. data/lib/meibo/organization.rb +17 -17
  65. data/lib/meibo/processing_mode.rb +53 -0
  66. data/lib/meibo/profile.rb +8 -4
  67. data/lib/meibo/profiles.rb +12 -120
  68. data/lib/meibo/pse_interoperability_standard/v5.rb +9 -0
  69. data/lib/meibo/pse_interoperability_standard/v6/enrollment.rb +11 -0
  70. data/lib/meibo/pse_interoperability_standard/v6.rb +18 -0
  71. data/lib/meibo/pse_interoperability_standard.rb +6 -0
  72. data/lib/meibo/reader.rb +24 -36
  73. data/lib/meibo/role.rb +24 -24
  74. data/lib/meibo/roster.rb +46 -47
  75. data/lib/meibo/user.rb +35 -35
  76. data/lib/meibo/user_profile.rb +20 -20
  77. data/lib/meibo/user_set.rb +1 -1
  78. data/lib/meibo/version.rb +1 -1
  79. data/lib/meibo.rb +10 -2
  80. data/meibo.gemspec +1 -1
  81. metadata +45 -28
  82. data/lib/meibo/eportal_v3/classroom.rb +0 -15
  83. data/lib/meibo/eportal_v3/course.rb +0 -15
  84. data/lib/meibo/eportal_v3/enrollment.rb +0 -15
  85. data/lib/meibo/eportal_v3/organization.rb +0 -15
  86. data/lib/meibo/eportal_v3/user.rb +0 -16
  87. data/lib/meibo/eportal_v3/user_profile.rb +0 -15
  88. data/lib/meibo/japan_profile/academic_session.rb +0 -29
  89. data/lib/meibo/japan_profile/classroom.rb +0 -24
  90. data/lib/meibo/japan_profile/course.rb +0 -18
  91. data/lib/meibo/japan_profile/demographic.rb +0 -15
  92. data/lib/meibo/japan_profile/enrollment.rb +0 -40
  93. data/lib/meibo/japan_profile/organization.rb +0 -20
  94. data/lib/meibo/japan_profile/organization_set.rb +0 -17
  95. data/lib/meibo/japan_profile/role_jp_m0.rb +0 -26
  96. data/lib/meibo/japan_profile/user.rb +0 -45
  97. data/lib/meibo/japan_profile/user_m0.rb +0 -12
  98. data/lib/meibo/japan_profile/user_set.rb +0 -14
  99. data/lib/meibo/manifest/processing_mode.rb +0 -41
  100. data/lib/meibo/user_m0.rb +0 -47
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meibo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.0
4
+ version: 0.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seiei Miyagi
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-03-09 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: csv
@@ -52,13 +51,13 @@ dependencies:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
53
  version: '0'
55
- description:
56
54
  email:
57
55
  - hanachin@gmail.com
58
56
  executables: []
59
57
  extensions: []
60
58
  extra_rdoc_files: []
61
59
  files:
60
+ - ".envrc"
62
61
  - ".rspec"
63
62
  - ".rubocop.yml"
64
63
  - ".rubocop_todo.yml"
@@ -69,6 +68,9 @@ files:
69
68
  - LICENSE.txt
70
69
  - README.md
71
70
  - Rakefile
71
+ - flake.lock
72
+ - flake.nix
73
+ - gemset.nix
72
74
  - lib/meibo.rb
73
75
  - lib/meibo/academic_session.rb
74
76
  - lib/meibo/academic_session_set.rb
@@ -94,12 +96,16 @@ files:
94
96
  - lib/meibo/demographic_set.rb
95
97
  - lib/meibo/enrollment.rb
96
98
  - lib/meibo/enrollment_set.rb
97
- - lib/meibo/eportal_v3/classroom.rb
98
- - lib/meibo/eportal_v3/course.rb
99
- - lib/meibo/eportal_v3/enrollment.rb
100
- - lib/meibo/eportal_v3/organization.rb
101
- - lib/meibo/eportal_v3/user.rb
102
- - lib/meibo/eportal_v3/user_profile.rb
99
+ - lib/meibo/eportal.rb
100
+ - lib/meibo/eportal/v3.rb
101
+ - lib/meibo/eportal/v3/classroom.rb
102
+ - lib/meibo/eportal/v3/course.rb
103
+ - lib/meibo/eportal/v3/enrollment.rb
104
+ - lib/meibo/eportal/v3/organization.rb
105
+ - lib/meibo/eportal/v3/user.rb
106
+ - lib/meibo/eportal/v3/user_profile.rb
107
+ - lib/meibo/eportal/v4.rb
108
+ - lib/meibo/eportal/v4/user.rb
103
109
  - lib/meibo/errors.rb
104
110
  - lib/meibo/factory_bot/academic_session.rb
105
111
  - lib/meibo/factory_bot/all.rb
@@ -113,29 +119,42 @@ files:
113
119
  - lib/meibo/factory_bot/roster.rb
114
120
  - lib/meibo/factory_bot/user.rb
115
121
  - lib/meibo/factory_bot/user_profile.rb
116
- - lib/meibo/japan_profile/academic_session.rb
117
- - lib/meibo/japan_profile/classroom.rb
118
- - lib/meibo/japan_profile/course.rb
119
- - lib/meibo/japan_profile/demographic.rb
120
- - lib/meibo/japan_profile/enrollment.rb
121
- - lib/meibo/japan_profile/organization.rb
122
- - lib/meibo/japan_profile/organization_set.rb
123
- - lib/meibo/japan_profile/role_jp_m0.rb
124
- - lib/meibo/japan_profile/user.rb
125
- - lib/meibo/japan_profile/user_m0.rb
126
- - lib/meibo/japan_profile/user_set.rb
122
+ - lib/meibo/japan_k12_schools_profile.rb
123
+ - lib/meibo/japan_k12_schools_profile/v1.rb
124
+ - lib/meibo/japan_k12_schools_profile/v1/enrollment.rb
125
+ - lib/meibo/japan_profile.rb
126
+ - lib/meibo/japan_profile/v1_1.rb
127
+ - lib/meibo/japan_profile/v1_1/academic_session.rb
128
+ - lib/meibo/japan_profile/v1_1/classroom.rb
129
+ - lib/meibo/japan_profile/v1_1/course.rb
130
+ - lib/meibo/japan_profile/v1_1/demographic.rb
131
+ - lib/meibo/japan_profile/v1_1/enrollment.rb
132
+ - lib/meibo/japan_profile/v1_1/organization.rb
133
+ - lib/meibo/japan_profile/v1_1/organization_set.rb
134
+ - lib/meibo/japan_profile/v1_1/user.rb
135
+ - lib/meibo/japan_profile/v1_1/user_set.rb
136
+ - lib/meibo/japan_profile/v1_1_1.rb
137
+ - lib/meibo/japan_profile/v1_2.rb
138
+ - lib/meibo/japan_profile/v1_2/user.rb
127
139
  - lib/meibo/manifest.rb
128
- - lib/meibo/manifest/processing_mode.rb
140
+ - lib/meibo/oneroster.rb
141
+ - lib/meibo/oneroster/v1_2.rb
142
+ - lib/meibo/oneroster/v1_2/user.rb
143
+ - lib/meibo/oneroster/v1_2_1.rb
129
144
  - lib/meibo/organization.rb
130
145
  - lib/meibo/organization_set.rb
146
+ - lib/meibo/processing_mode.rb
131
147
  - lib/meibo/profile.rb
132
148
  - lib/meibo/profiles.rb
149
+ - lib/meibo/pse_interoperability_standard.rb
150
+ - lib/meibo/pse_interoperability_standard/v5.rb
151
+ - lib/meibo/pse_interoperability_standard/v6.rb
152
+ - lib/meibo/pse_interoperability_standard/v6/enrollment.rb
133
153
  - lib/meibo/reader.rb
134
154
  - lib/meibo/role.rb
135
155
  - lib/meibo/role_set.rb
136
156
  - lib/meibo/roster.rb
137
157
  - lib/meibo/user.rb
138
- - lib/meibo/user_m0.rb
139
158
  - lib/meibo/user_profile.rb
140
159
  - lib/meibo/user_profile_set.rb
141
160
  - lib/meibo/user_set.rb
@@ -149,9 +168,8 @@ metadata:
149
168
  allowed_push_host: https://rubygems.org/
150
169
  homepage_uri: https://github.com/hanachin/meibo
151
170
  source_code_uri: https://github.com/hanachin/meibo
152
- changelog_uri: https://github.com/hanachin/meibo/blob/meibo/v0.27.0/CHANGELOG.md
171
+ changelog_uri: https://github.com/hanachin/meibo/blob/meibo/v0.28.0/CHANGELOG.md
153
172
  rubygems_mfa_required: 'true'
154
- post_install_message:
155
173
  rdoc_options: []
156
174
  require_paths:
157
175
  - lib
@@ -159,15 +177,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
159
177
  requirements:
160
178
  - - ">="
161
179
  - !ruby/object:Gem::Version
162
- version: 2.7.0
180
+ version: 3.4.0
163
181
  required_rubygems_version: !ruby/object:Gem::Requirement
164
182
  requirements:
165
183
  - - ">="
166
184
  - !ruby/object:Gem::Version
167
185
  version: '0'
168
186
  requirements: []
169
- rubygems_version: 3.2.26
170
- signing_key:
187
+ rubygems_version: 4.0.10
171
188
  specification_version: 4
172
189
  summary: Meibo is a ruby library for OneRoster CSV Binding Japan Profile.
173
190
  test_files: []
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module EportalV3
5
- class Classroom < ::Meibo::JapanProfile::Classroom
6
- DataModel.define(
7
- self,
8
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
9
- converters: superclass.converters.merge(
10
- fullwidth: %i[title location].freeze
11
- ).freeze
12
- )
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module EportalV3
5
- class Course < ::Meibo::JapanProfile::Course
6
- DataModel.define(
7
- self,
8
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
9
- converters: superclass.converters.merge(
10
- fullwidth: %i[title].freeze
11
- ).freeze
12
- )
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module EportalV3
5
- class Enrollment < ::Meibo::JapanProfile::Enrollment
6
- DataModel.define(
7
- self,
8
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
9
- converters: superclass.converters.merge(
10
- required: [*superclass.converters[:required], :primary].freeze
11
- ).freeze
12
- )
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module EportalV3
5
- class Organization < ::Meibo::JapanProfile::Organization
6
- DataModel.define(
7
- self,
8
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
9
- converters: superclass.converters.merge(
10
- fullwidth: %i[name].freeze
11
- ).freeze
12
- )
13
- end
14
- end
15
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module EportalV3
5
- class User < ::Meibo::JapanProfile::UserM0
6
- DataModel.define(
7
- self,
8
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
9
- converters: superclass.converters.merge(
10
- fullwidth: %i[given_name family_name middle_name preferred_given_name preferred_middle_name preferred_family_name kana_given_name kana_family_name kana_middle_name].freeze,
11
- required: [*superclass.converters[:required], :user_master_identifier, :preferred_given_name, :preferred_family_name, :kana_given_name, :kana_family_name].freeze
12
- ).freeze
13
- )
14
- end
15
- end
16
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module EportalV3
5
- class UserProfile < ::Meibo::UserProfile
6
- DataModel.define(
7
- self,
8
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
9
- converters: superclass.converters.merge(
10
- fullwidth: %i[description].freeze
11
- ).freeze
12
- )
13
- end
14
- end
15
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class AcademicSession < ::Meibo::AcademicSession
6
- TYPES = { school_year: "schoolYear" }.freeze
7
-
8
- DataModel.define(
9
- self,
10
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
11
- converters: superclass.converters.merge(
12
- format: { title: /\A\d+年度\z/ },
13
- enum: { type: TYPES.values.freeze }.freeze
14
- )
15
- )
16
-
17
- # NOTE: 以下固定
18
- # - titleは連携処理実行時の対象年度西暦 + 「年度」を設定
19
- # - typeはschoolYear固定
20
- # - start_dateは対象年度の開始日固定
21
- # - end_dateは対象年度の終了日固定
22
- def initialize(school_year:, title: "#{school_year}年度", type: TYPES[:school_year],
23
- start_date: Date.new(school_year, 4,
24
- 1), end_date: Date.new(school_year + 1, 3, 31), **other_fields)
25
- super(school_year: school_year, title: title, type: type, start_date: start_date, end_date: end_date, **other_fields)
26
- end
27
- end
28
- end
29
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class Classroom < ::Meibo::Classroom
6
- DataModel.define(
7
- self,
8
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map.merge(
9
- special_needs: "metadata.jp.specialNeeds"
10
- ).freeze,
11
- converters: superclass.converters.merge(
12
- boolean: [:special_needs].freeze,
13
- enum: { class_type: TYPES.values.freeze }.freeze,
14
- mext_grade_code: [:grades].freeze
15
- ).freeze
16
- )
17
-
18
- def initialize(special_needs: nil, **other_fields)
19
- super(**other_fields)
20
- @special_needs = special_needs
21
- end
22
- end
23
- end
24
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class Course < ::Meibo::Course
6
- DataModel.define(
7
- self,
8
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
9
- converters: superclass.converters.merge(enum: { course_code: [""].freeze }.freeze, mext_grade_code: [:grades].freeze)
10
- )
11
-
12
- # NOTE: courseCodeは空文字固定
13
- def initialize(course_code: "", **other_fields)
14
- super(course_code: course_code, **other_fields)
15
- end
16
- end
17
- end
18
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class Demographic < ::Meibo::Demographic
6
- DataModel.define(
7
- self,
8
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
9
- converters: superclass.converters.merge(
10
- enum: { sex: SEX.values.freeze }
11
- ).freeze
12
- )
13
- end
14
- end
15
- end
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class Enrollment < ::Meibo::Enrollment
6
- ROLES = {
7
- student: "student",
8
- teacher: "teacher",
9
- administrator: "administrator",
10
- guardian: "guardian"
11
- }.freeze
12
-
13
- DataModel.define(
14
- self,
15
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map.merge(
16
- shusseki_no: "metadata.jp.ShussekiNo",
17
- public_flg: "metadata.jp.PublicFlg"
18
- ).freeze,
19
- converters: superclass.converters.merge(
20
- boolean: [*superclass.converters[:boolean], :public_flg].freeze,
21
- enum: { role: ROLES.values.freeze }.freeze,
22
- integer: [:shusseki_no].freeze
23
- ).freeze
24
- )
25
-
26
- # NOTE: 児童生徒の場合primaryはfalse固定
27
- # MEMO: 保護者の場合もそうでは?
28
- def initialize(role:, shusseki_no: nil, public_flg: nil, primary: (role == ROLES[:student] ? false : nil),
29
- **other_fields)
30
- super(role: role, primary: primary, **other_fields)
31
- @shusseki_no = shusseki_no
32
- @public_flg = public_flg
33
- end
34
-
35
- def guardian?
36
- role == ROLES[:guardian]
37
- end
38
- end
39
- end
40
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class Organization < ::Meibo::Organization
6
- TYPES = {
7
- district: "district",
8
- school: "school"
9
- }.freeze
10
-
11
- DataModel.define(
12
- self,
13
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
14
- converters: superclass.converters.merge(
15
- enum: { type: TYPES.values.freeze }
16
- ).freeze
17
- )
18
- end
19
- end
20
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class OrganizationSet < ::Meibo::OrganizationSet
6
- def check_semantically_consistent
7
- super
8
-
9
- each do |organization|
10
- next unless organization.parent_sourced_id
11
-
12
- raise InvalidDataTypeError if organization.district?
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class RoleJpM0 < ::Meibo::Role
6
- # NOTE: roleは固定
7
- # - 児童生徒の場合student
8
- # - 教職員の場合teacher
9
- # - 保護者の場合guardian
10
- # MEMO: enrollments.csvの方ではadministratorとguardianも許可されているがズレてないか
11
- ROLES = {
12
- teacher: "teacher",
13
- student: "student",
14
- guardian: "guardian"
15
- }.freeze
16
-
17
- DataModel.define(
18
- self,
19
- attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map,
20
- converters: superclass.converters.merge(
21
- enum: superclass.converters[:enum].merge(role: ROLES.values).freeze
22
- )
23
- )
24
- end
25
- end
26
- end
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class User < ::Meibo::User
6
- module ClassMethods
7
- def define_additional_definition(klass)
8
- DataModel.define(
9
- klass,
10
- attribute_name_to_header_field_map: klass.superclass.attribute_name_to_header_field_map.merge(
11
- kana_given_name: "metadata.jp.kanaGivenName",
12
- kana_family_name: "metadata.jp.kanaFamilyName",
13
- kana_middle_name: "metadata.jp.kanaMiddleName",
14
- home_class: "metadata.jp.homeClass"
15
- ).freeze,
16
- converters: klass.superclass.converters.merge(
17
- mext_grade_code: [:grades].freeze
18
- )
19
- )
20
- end
21
- end
22
-
23
- module InstanceMethods
24
- # NOTE: enabled_userは必須ではないが固定
25
- def initialize(enabled_user: true, kana_given_name: nil, kana_family_name: nil, kana_middle_name: nil,
26
- home_class: nil, **other_fields)
27
- super(enabled_user: enabled_user, **other_fields)
28
- @kana_given_name = kana_given_name
29
- @kana_family_name = kana_family_name
30
- @kana_middle_name = kana_middle_name
31
- @home_class = home_class
32
- end
33
-
34
- def home_classroom
35
- home_class && Meibo.current_roster.classes.find(home_class)
36
- end
37
- end
38
-
39
- include InstanceMethods
40
- extend ClassMethods
41
-
42
- define_additional_definition(self)
43
- end
44
- end
45
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class UserM0 < ::Meibo::UserM0
6
- include User::InstanceMethods
7
- extend User::ClassMethods
8
-
9
- define_additional_definition(self)
10
- end
11
- end
12
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- module JapanProfile
5
- class UserSet < ::Meibo::UserSet
6
- def check_semantically_consistent
7
- super
8
- each do |user|
9
- roster.classes.find(user.home_class) if user.home_class
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- class Manifest
5
- class ProcessingMode
6
- attr_reader :mode
7
-
8
- def initialize(mode)
9
- @mode = mode
10
- freeze
11
- end
12
-
13
- def absent?
14
- @mode == "absent"
15
- end
16
-
17
- def bulk?
18
- @mode == "bulk"
19
- end
20
-
21
- def delta?
22
- @mode == "delta"
23
- end
24
-
25
- def ==(other)
26
- case other
27
- when ProcessingMode
28
- @mode == other.mode
29
- when String
30
- to_s == other
31
- else
32
- false
33
- end
34
- end
35
-
36
- def to_s
37
- @mode
38
- end
39
- end
40
- end
41
- end
data/lib/meibo/user_m0.rb DELETED
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Meibo
4
- class UserM0 < ::Meibo::User
5
- DataModel.define(
6
- self,
7
- attribute_name_to_header_field_map: {
8
- sourced_id: "sourcedId",
9
- status: "status",
10
- date_last_modified: "dateLastModified",
11
- enabled_user: "enabledUser",
12
- username: "username",
13
- user_ids: "userIds",
14
- given_name: "givenName",
15
- family_name: "familyName",
16
- middle_name: "middleName",
17
- identifier: "identifier",
18
- email: "email",
19
- sms: "sms",
20
- phone: "phone",
21
- agent_sourced_ids: "agentSourcedIds",
22
- grades: "grades",
23
- password: "password",
24
- user_master_identifier: "userMasterIdentifier",
25
- resource_sourced_ids: "resourceSourcedIds",
26
- preferred_given_name: "preferredGivenName",
27
- preferred_middle_name: "preferredMiddleName",
28
- preferred_family_name: "preferredFamilyName",
29
- primary_org_sourced_id: "primaryOrgSourcedId",
30
- pronouns: "pronouns"
31
- }.freeze,
32
- converters: superclass.converters.merge(
33
- list: %i[user_ids agent_sourced_ids grades resource_sourced_ids].freeze
34
- )
35
- )
36
-
37
- # NOTE: enabled_userは必須ではないが固定
38
- def initialize(resource_sourced_ids: nil, **other_fields)
39
- super(**other_fields)
40
- @resource_sourced_ids = resource_sourced_ids
41
- end
42
-
43
- def home_classroom
44
- home_class && Meibo.current_roster.classes.find(home_class)
45
- end
46
- end
47
- end