meibo 0.27.1 → 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 +5 -5
  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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 64f9d6b81dd4774c1c17bc9f459636b4557117dfbec450f607a6ec5115d211d4
4
- data.tar.gz: 3d0e55832b713ebeb4734708aa7652d3be7e2e2919f4cc34bf05603e562ed88f
3
+ metadata.gz: 458ca8ce412235fd3394521bef920e178d2fb715a6bfc61ab144a448cebee721
4
+ data.tar.gz: 9417c7471baabd3023ba39658afae0cc756a1788d6eecbd4a267c6339f83e141
5
5
  SHA512:
6
- metadata.gz: 0cc54e27f03731076d8326ad23ad0ed2e54125511a60fdff5beaf7c1c0ce49ea2350a6f203f2057659e87829394699552af2c8d636b07db34974bccc34924487
7
- data.tar.gz: 5693fa25285dc06788eaa463c5418661cf06b6bbce118d16d1a8f94a8d880ca2aed47039985d8eb3dc2093045197eabc33915455164f42c4dd46437267c0a622
6
+ metadata.gz: 5fd9fc3a65033c14e2a1eed2a4320f2e60a875fe9d027fcf4537edb960bd811463912782b1134bec26d726286b1e7f08038430997af08050e6b3255cb2f1dfc6
7
+ data.tar.gz: 0bcd393fff7a2f19e767e5e968fec7fb1c460c47c3f37979c777bb31410fb46fabf72a1e365ed3a12e762aff574f1176cd57828ee6d9ecbe3e75b55a880202b8
data/.envrc ADDED
@@ -0,0 +1,4 @@
1
+ if has nix; then
2
+ watch_file gemset.nix
3
+ use flake
4
+ fi
data/.rubocop.yml CHANGED
@@ -1,4 +1,4 @@
1
- require:
1
+ plugins:
2
2
  - rubocop-rake
3
3
  - rubocop-rspec
4
4
 
@@ -6,7 +6,7 @@ inherit_from: .rubocop_todo.yml
6
6
 
7
7
  AllCops:
8
8
  NewCops: enable
9
- TargetRubyVersion: 2.7
9
+ TargetRubyVersion: 3.4
10
10
 
11
11
  Style/StringLiterals:
12
12
  Enabled: true
@@ -15,3 +15,15 @@ Style/StringLiterals:
15
15
  Style/StringLiteralsInInterpolation:
16
16
  Enabled: true
17
17
  EnforcedStyle: double_quotes
18
+
19
+ Naming/MethodParameterName:
20
+ AllowedNames:
21
+ - kw
22
+ - io
23
+
24
+ Naming/ClassAndModuleCamelCase:
25
+ AllowedNames:
26
+ - V1_1_1
27
+ - V1_1
28
+ - V1_2_1
29
+ - V1_2
data/.rubocop_todo.yml CHANGED
@@ -83,13 +83,6 @@ Naming/MethodParameterName:
83
83
  RSpec/ExampleLength:
84
84
  Max: 213
85
85
 
86
- # Offense count: 1
87
- # Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
88
- # Include: **/*_spec*rb*, **/spec/**/*
89
- RSpec/FilePath:
90
- Exclude:
91
- - 'spec/meibo/japan_profile_user_set_spec.rb'
92
-
93
86
  # Offense count: 2
94
87
  RSpec/MultipleExpectations:
95
88
  Max: 9
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- meibo (0.27.1)
4
+ meibo (0.28.0)
5
5
  csv (>= 3.1.4)
6
6
  rubyzip
7
7
  zeitwerk
@@ -9,75 +9,120 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activesupport (7.0.4)
13
- concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ activesupport (8.1.3)
13
+ base64
14
+ bigdecimal
15
+ concurrent-ruby (~> 1.0, >= 1.3.1)
16
+ connection_pool (>= 2.2.5)
17
+ drb
14
18
  i18n (>= 1.6, < 2)
19
+ json
20
+ logger (>= 1.4.2)
15
21
  minitest (>= 5.1)
16
- tzinfo (~> 2.0)
17
- ast (2.4.2)
18
- concurrent-ruby (1.1.10)
19
- csv (3.2.6)
20
- debug (1.6.3)
21
- irb (>= 1.3.6)
22
- reline (>= 0.3.1)
23
- diff-lcs (1.5.0)
24
- factory_bot (6.2.1)
25
- activesupport (>= 5.0.0)
26
- i18n (1.12.0)
22
+ securerandom (>= 0.3)
23
+ tzinfo (~> 2.0, >= 2.0.5)
24
+ uri (>= 0.13.1)
25
+ ast (2.4.3)
26
+ base64 (0.3.0)
27
+ bigdecimal (4.1.2)
28
+ concurrent-ruby (1.3.6)
29
+ connection_pool (3.0.2)
30
+ csv (3.3.5)
31
+ date (3.5.1)
32
+ debug (1.11.1)
33
+ irb (~> 1.10)
34
+ reline (>= 0.3.8)
35
+ diff-lcs (1.6.2)
36
+ drb (2.2.3)
37
+ erb (6.0.4)
38
+ factory_bot (6.6.0)
39
+ activesupport (>= 6.1.0)
40
+ i18n (1.14.8)
27
41
  concurrent-ruby (~> 1.0)
28
- io-console (0.5.11)
29
- irb (1.4.2)
30
- reline (>= 0.3.0)
31
- json (2.6.2)
32
- minitest (5.16.3)
33
- parallel (1.22.1)
34
- parser (3.1.2.1)
42
+ io-console (0.8.2)
43
+ irb (1.18.0)
44
+ pp (>= 0.6.0)
45
+ prism (>= 1.3.0)
46
+ rdoc (>= 4.0.0)
47
+ reline (>= 0.4.2)
48
+ json (2.19.8)
49
+ language_server-protocol (3.17.0.5)
50
+ lint_roller (1.1.0)
51
+ logger (1.7.0)
52
+ minitest (6.0.6)
53
+ drb (~> 2.0)
54
+ prism (~> 1.5)
55
+ parallel (2.1.0)
56
+ parser (3.3.11.1)
35
57
  ast (~> 2.4.1)
58
+ racc
59
+ pp (0.6.3)
60
+ prettyprint
61
+ prettyprint (0.2.0)
62
+ prism (1.9.0)
63
+ psych (5.4.0)
64
+ date
65
+ stringio
66
+ racc (1.8.1)
36
67
  rainbow (3.1.1)
37
- rake (13.0.6)
38
- regexp_parser (2.6.0)
39
- reline (0.3.1)
68
+ rake (13.4.2)
69
+ rdoc (7.2.0)
70
+ erb
71
+ psych (>= 4.0.0)
72
+ tsort
73
+ regexp_parser (2.12.0)
74
+ reline (0.6.3)
40
75
  io-console (~> 0.5)
41
- rexml (3.2.5)
42
- rspec (3.11.0)
43
- rspec-core (~> 3.11.0)
44
- rspec-expectations (~> 3.11.0)
45
- rspec-mocks (~> 3.11.0)
46
- rspec-core (3.11.0)
47
- rspec-support (~> 3.11.0)
48
- rspec-expectations (3.11.1)
76
+ rspec (3.13.2)
77
+ rspec-core (~> 3.13.0)
78
+ rspec-expectations (~> 3.13.0)
79
+ rspec-mocks (~> 3.13.0)
80
+ rspec-core (3.13.6)
81
+ rspec-support (~> 3.13.0)
82
+ rspec-expectations (3.13.5)
49
83
  diff-lcs (>= 1.2.0, < 2.0)
50
- rspec-support (~> 3.11.0)
51
- rspec-mocks (3.11.1)
84
+ rspec-support (~> 3.13.0)
85
+ rspec-mocks (3.13.8)
52
86
  diff-lcs (>= 1.2.0, < 2.0)
53
- rspec-support (~> 3.11.0)
54
- rspec-support (3.11.1)
55
- rubocop (1.36.0)
87
+ rspec-support (~> 3.13.0)
88
+ rspec-support (3.13.7)
89
+ rubocop (1.87.0)
56
90
  json (~> 2.3)
57
- parallel (~> 1.10)
58
- parser (>= 3.1.2.1)
91
+ language_server-protocol (~> 3.17.0.2)
92
+ lint_roller (~> 1.1.0)
93
+ parallel (>= 1.10)
94
+ parser (>= 3.3.0.2)
59
95
  rainbow (>= 2.2.2, < 4.0)
60
- regexp_parser (>= 1.8, < 3.0)
61
- rexml (>= 3.2.5, < 4.0)
62
- rubocop-ast (>= 1.20.1, < 2.0)
96
+ regexp_parser (>= 2.9.3, < 3.0)
97
+ rubocop-ast (>= 1.49.0, < 2.0)
63
98
  ruby-progressbar (~> 1.7)
64
- unicode-display_width (>= 1.4.0, < 3.0)
65
- rubocop-ast (1.22.0)
66
- parser (>= 3.1.1.0)
67
- rubocop-rake (0.6.0)
68
- rubocop (~> 1.0)
69
- rubocop-rspec (2.15.0)
70
- rubocop (~> 1.33)
71
- ruby-progressbar (1.11.0)
72
- rubyzip (2.3.2)
73
- tzinfo (2.0.5)
99
+ unicode-display_width (>= 2.4.0, < 4.0)
100
+ rubocop-ast (1.49.1)
101
+ parser (>= 3.3.7.2)
102
+ prism (~> 1.7)
103
+ rubocop-rake (0.7.1)
104
+ lint_roller (~> 1.1)
105
+ rubocop (>= 1.72.1)
106
+ rubocop-rspec (3.10.2)
107
+ lint_roller (~> 1.1)
108
+ regexp_parser (>= 2.0)
109
+ rubocop (~> 1.86, >= 1.86.2)
110
+ ruby-progressbar (1.13.0)
111
+ rubyzip (3.3.1)
112
+ securerandom (0.4.1)
113
+ stringio (3.2.0)
114
+ tsort (0.2.0)
115
+ tzinfo (2.0.6)
74
116
  concurrent-ruby (~> 1.0)
75
- unicode-display_width (2.3.0)
76
- zeitwerk (2.6.6)
117
+ unicode-display_width (3.2.0)
118
+ unicode-emoji (~> 4.1)
119
+ unicode-emoji (4.2.0)
120
+ uri (1.1.1)
121
+ zeitwerk (2.8.2)
77
122
 
78
123
  PLATFORMS
124
+ aarch64-linux
79
125
  ruby
80
- x86_64-linux
81
126
 
82
127
  DEPENDENCIES
83
128
  debug
@@ -89,5 +134,61 @@ DEPENDENCIES
89
134
  rubocop-rake
90
135
  rubocop-rspec
91
136
 
137
+ CHECKSUMS
138
+ activesupport (8.1.3) sha256=21a5e0dfbd4c3ddd9e1317ec6a4d782fa226e7867dc70b0743acda81a1dca20e
139
+ ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
140
+ base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
141
+ bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
142
+ bundler (4.0.12) sha256=7f8b757d28dfb636e7b24fba2344ac6dd13b5b24f4b46d62573d483f211825ac
143
+ concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
144
+ connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
145
+ csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f
146
+ date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
147
+ debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6
148
+ diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
149
+ drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
150
+ erb (6.0.4) sha256=38e3803694be357fe2bfe312487c74beaf9fb4e5beb3e22498952fe1645b95d9
151
+ factory_bot (6.6.0) sha256=1fc1b3b5620ec980a6a27aec1b6ec8c250ca82962e970e8a40f93e8d388d4b89
152
+ i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
153
+ io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
154
+ irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
155
+ json (2.19.8) sha256=6354310fd76ef69b87d5bd1f38b40d730613baf90b6803d2d0a48f618d32dfaa
156
+ language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
157
+ lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
158
+ logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
159
+ meibo (0.28.0)
160
+ minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1
161
+ parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356
162
+ parser (3.3.11.1) sha256=d17ace7aabe3e72c3cc94043714be27cc6f852f104d81aa284c2281aecc65d54
163
+ pp (0.6.3) sha256=2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6
164
+ prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
165
+ prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
166
+ psych (5.4.0) sha256=14f72d69a611af663d7d70e4a7b67d9eb1f3ae9f8d916b478961d5a0075ba5b7
167
+ racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
168
+ rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
169
+ rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
170
+ rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
171
+ regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb
172
+ reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
173
+ rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
174
+ rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
175
+ rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
176
+ rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
177
+ rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
178
+ rubocop (1.87.0) sha256=b9d9ddf55116a513f8ef2c7ae660662d8b49301f118d3f0df61865b33a5c188d
179
+ rubocop-ast (1.49.1) sha256=4412f3ee70f6fe4546cc489548e0f6fcf76cafcfa80fa03af67098ffed755035
180
+ rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d
181
+ rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2
182
+ ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
183
+ rubyzip (3.3.1) sha256=2ed92112c7c43ba2b2527f35e6d99d9c2c99270b640aad5227516436481b1e4e
184
+ securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
185
+ stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
186
+ tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
187
+ tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
188
+ unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
189
+ unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
190
+ uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
191
+ zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12
192
+
92
193
  BUNDLED WITH
93
- 2.3.7
194
+ 4.0.12
data/README.md CHANGED
@@ -20,7 +20,18 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- TODO: Write usage instructions here
23
+ ```rb
24
+ # First, choose OneRoster profile
25
+ Meibo.default_profile = Meibo::Profiles["学習eポータル標準モデル Ver. 3.00"]
26
+
27
+ # Then open OneRoster file
28
+ file = File.open('oneroster.zip')
29
+ Meibo::Roster.from_file(file) do |roster|
30
+ roster.users.each do |user|
31
+ import_user_to_your_system(user)
32
+ end
33
+ end
34
+ ```
24
35
 
25
36
  ## Development
26
37
 
@@ -30,7 +41,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
30
41
 
31
42
  ## Contributing
32
43
 
33
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/meibo. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/meibo/blob/main/CODE_OF_CONDUCT.md).
44
+ Bug reports and pull requests are welcome on GitHub at https://github.com/hanachin/meibo. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/hanachin/meibo/blob/main/CODE_OF_CONDUCT.md).
34
45
 
35
46
  ## License
36
47
 
@@ -38,4 +49,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
38
49
 
39
50
  ## Code of Conduct
40
51
 
41
- Everyone interacting in the Meibo project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/meibo/blob/main/CODE_OF_CONDUCT.md).
52
+ Everyone interacting in the Meibo project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/hanachin/meibo/blob/main/CODE_OF_CONDUCT.md).
data/flake.lock ADDED
@@ -0,0 +1,188 @@
1
+ {
2
+ "nodes": {
3
+ "bundix": {
4
+ "inputs": {
5
+ "nixpkgs": [
6
+ "nixpkgs"
7
+ ]
8
+ },
9
+ "locked": {
10
+ "lastModified": 1762235257,
11
+ "narHash": "sha256-QyXFgaXQETr9BmwUbWM/2EtF+my6Arpt71xItZy3NL8=",
12
+ "owner": "inscapist",
13
+ "repo": "bundix",
14
+ "rev": "2233b24084316b4de1d55321483554f457a09cfc",
15
+ "type": "github"
16
+ },
17
+ "original": {
18
+ "owner": "inscapist",
19
+ "ref": "main",
20
+ "repo": "bundix",
21
+ "type": "github"
22
+ }
23
+ },
24
+ "flake-compat": {
25
+ "flake": false,
26
+ "locked": {
27
+ "lastModified": 1747046372,
28
+ "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
29
+ "owner": "edolstra",
30
+ "repo": "flake-compat",
31
+ "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
32
+ "type": "github"
33
+ },
34
+ "original": {
35
+ "owner": "edolstra",
36
+ "repo": "flake-compat",
37
+ "type": "github"
38
+ }
39
+ },
40
+ "flake-utils": {
41
+ "inputs": {
42
+ "systems": "systems"
43
+ },
44
+ "locked": {
45
+ "lastModified": 1731533236,
46
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
47
+ "owner": "numtide",
48
+ "repo": "flake-utils",
49
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
50
+ "type": "github"
51
+ },
52
+ "original": {
53
+ "owner": "numtide",
54
+ "repo": "flake-utils",
55
+ "type": "github"
56
+ }
57
+ },
58
+ "flake-utils_2": {
59
+ "inputs": {
60
+ "systems": "systems_2"
61
+ },
62
+ "locked": {
63
+ "lastModified": 1731533236,
64
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
65
+ "owner": "numtide",
66
+ "repo": "flake-utils",
67
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
68
+ "type": "github"
69
+ },
70
+ "original": {
71
+ "owner": "numtide",
72
+ "repo": "flake-utils",
73
+ "type": "github"
74
+ }
75
+ },
76
+ "nixpkgs": {
77
+ "locked": {
78
+ "lastModified": 1780243769,
79
+ "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
80
+ "owner": "NixOS",
81
+ "repo": "nixpkgs",
82
+ "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c",
83
+ "type": "github"
84
+ },
85
+ "original": {
86
+ "owner": "NixOS",
87
+ "ref": "nixos-unstable",
88
+ "repo": "nixpkgs",
89
+ "type": "github"
90
+ }
91
+ },
92
+ "nixpkgs-ruby": {
93
+ "inputs": {
94
+ "flake-compat": "flake-compat",
95
+ "flake-utils": "flake-utils_2",
96
+ "nixpkgs": [
97
+ "nixpkgs"
98
+ ]
99
+ },
100
+ "locked": {
101
+ "lastModified": 1779267859,
102
+ "narHash": "sha256-0WVw5bxFhrqIerTuVnXC5weXEWLda2eehb+ArZFRRJY=",
103
+ "owner": "bobvanderlinden",
104
+ "repo": "nixpkgs-ruby",
105
+ "rev": "f6e23dc8dd65bfbd384009c4fb364e88306f6ebb",
106
+ "type": "github"
107
+ },
108
+ "original": {
109
+ "owner": "bobvanderlinden",
110
+ "repo": "nixpkgs-ruby",
111
+ "type": "github"
112
+ }
113
+ },
114
+ "nixpkgs_2": {
115
+ "locked": {
116
+ "lastModified": 1678875422,
117
+ "narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=",
118
+ "owner": "NixOS",
119
+ "repo": "nixpkgs",
120
+ "rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459",
121
+ "type": "github"
122
+ },
123
+ "original": {
124
+ "id": "nixpkgs",
125
+ "type": "indirect"
126
+ }
127
+ },
128
+ "root": {
129
+ "inputs": {
130
+ "bundix": "bundix",
131
+ "flake-utils": "flake-utils",
132
+ "nixpkgs": "nixpkgs",
133
+ "nixpkgs-ruby": "nixpkgs-ruby",
134
+ "ruby-nix": "ruby-nix"
135
+ }
136
+ },
137
+ "ruby-nix": {
138
+ "inputs": {
139
+ "nixpkgs": "nixpkgs_2"
140
+ },
141
+ "locked": {
142
+ "lastModified": 1755059052,
143
+ "narHash": "sha256-yUJmmNIw11ZEIAFogqcqNomk4YV3F/zjwI1f7bYzIyY=",
144
+ "owner": "inscapist",
145
+ "repo": "ruby-nix",
146
+ "rev": "86b498e80058a84461d1f533e121574d85d272d7",
147
+ "type": "github"
148
+ },
149
+ "original": {
150
+ "owner": "inscapist",
151
+ "repo": "ruby-nix",
152
+ "type": "github"
153
+ }
154
+ },
155
+ "systems": {
156
+ "locked": {
157
+ "lastModified": 1681028828,
158
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
159
+ "owner": "nix-systems",
160
+ "repo": "default",
161
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
162
+ "type": "github"
163
+ },
164
+ "original": {
165
+ "owner": "nix-systems",
166
+ "repo": "default",
167
+ "type": "github"
168
+ }
169
+ },
170
+ "systems_2": {
171
+ "locked": {
172
+ "lastModified": 1681028828,
173
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
174
+ "owner": "nix-systems",
175
+ "repo": "default",
176
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
177
+ "type": "github"
178
+ },
179
+ "original": {
180
+ "owner": "nix-systems",
181
+ "repo": "default",
182
+ "type": "github"
183
+ }
184
+ }
185
+ },
186
+ "root": "root",
187
+ "version": 7
188
+ }
data/flake.nix ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ inputs = {
3
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
4
+ ruby-nix.url = "github:inscapist/ruby-nix";
5
+ bundix.url = "github:inscapist/bundix/main";
6
+ bundix.inputs.nixpkgs.follows = "nixpkgs";
7
+ nixpkgs-ruby.url = "github:bobvanderlinden/nixpkgs-ruby";
8
+ nixpkgs-ruby.inputs.nixpkgs.follows = "nixpkgs";
9
+ flake-utils.url = "github:numtide/flake-utils";
10
+ };
11
+
12
+ outputs =
13
+ {
14
+ self,
15
+ nixpkgs,
16
+ ruby-nix,
17
+ bundix,
18
+ nixpkgs-ruby,
19
+ flake-utils,
20
+ }:
21
+ flake-utils.lib.eachDefaultSystem (
22
+ system:
23
+ let
24
+ pkgs = import nixpkgs {
25
+ inherit system;
26
+ overlays = [ nixpkgs-ruby.overlays.default ];
27
+ };
28
+ rubyNix = ruby-nix.lib pkgs;
29
+ gemset = if builtins.pathExists ./gemset.nix then import ./gemset.nix else { };
30
+ gemConfig = {};
31
+ ruby = pkgs."ruby-3.4.9";
32
+ bundixcli = bundix.packages.${system}.default;
33
+ in
34
+ rec {
35
+ inherit
36
+ (rubyNix {
37
+ inherit gemset ruby;
38
+ name = "my-rails-app";
39
+ gemConfig = pkgs.defaultGemConfig // gemConfig;
40
+ })
41
+ env
42
+ ;
43
+ devShells = rec {
44
+ default = dev;
45
+ dev = pkgs.mkShell {
46
+ buildInputs = [
47
+ env
48
+ bundixcli
49
+ pkgs.pinact
50
+ ];
51
+ };
52
+ };
53
+ }
54
+ );
55
+ }