meibo 0.27.1 → 0.29.1

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 +155 -56
  6. data/README.md +14 -3
  7. data/flake.lock +188 -0
  8. data/flake.nix +55 -0
  9. data/gemset.nix +634 -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 +0 -2
  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: 8395fe3a7cbb2b3657a247002c7deb670977ef515da11e3cd2f09ca3fdcbed02
4
+ data.tar.gz: 67572807be8bb77f63c6da519073329387f83dd0736e11548eda106124258344
5
5
  SHA512:
6
- metadata.gz: 0cc54e27f03731076d8326ad23ad0ed2e54125511a60fdff5beaf7c1c0ce49ea2350a6f203f2057659e87829394699552af2c8d636b07db34974bccc34924487
7
- data.tar.gz: 5693fa25285dc06788eaa463c5418661cf06b6bbce118d16d1a8f94a8d880ca2aed47039985d8eb3dc2093045197eabc33915455164f42c4dd46437267c0a622
6
+ metadata.gz: '09a4b0137824dc202fa16931ae115479a6abade2aaf52a83902bcfa189c0f6d9ffba0226c92cc4100d8d00d0c71b8dc0500ee1da0460c342f954f20f08ac1ce3'
7
+ data.tar.gz: 9985effb5bb6cc3704b31613ebad20ebfce2810389414fb3630fe854a78ab60237ffdde2743e5f85a3d2a87e4abe47ff86f263243ab9124c3122401ac85ff42e
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.29.1)
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.1)
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.8)
29
+ connection_pool (3.0.2)
30
+ csv (3.3.6)
31
+ debug (1.11.1)
32
+ irb (~> 1.10)
33
+ reline (>= 0.3.8)
34
+ diff-lcs (1.6.2)
35
+ drb (2.2.3)
36
+ erb (6.0.7)
37
+ factory_bot (6.6.0)
38
+ activesupport (>= 6.1.0)
39
+ i18n (1.15.2)
27
40
  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)
41
+ io-console (0.8.2)
42
+ irb (1.18.0)
43
+ pp (>= 0.6.0)
44
+ prism (>= 1.3.0)
45
+ rdoc (>= 4.0.0)
46
+ reline (>= 0.4.2)
47
+ json (2.21.2)
48
+ language_server-protocol (3.17.0.6)
49
+ lint_roller (1.1.0)
50
+ logger (1.7.0)
51
+ minitest (6.0.6)
52
+ drb (~> 2.0)
53
+ prism (~> 1.5)
54
+ parallel (2.1.0)
55
+ parser (3.3.12.0)
35
56
  ast (~> 2.4.1)
57
+ racc
58
+ pp (0.6.4)
59
+ prettyprint
60
+ prettyprint (0.2.0)
61
+ prism (1.9.0)
62
+ racc (1.8.1)
36
63
  rainbow (3.1.1)
37
- rake (13.0.6)
38
- regexp_parser (2.6.0)
39
- reline (0.3.1)
64
+ rake (13.4.2)
65
+ rbs (4.1.2)
66
+ logger
67
+ prism (>= 1.6.0)
68
+ tsort
69
+ rdoc (8.0.0)
70
+ erb
71
+ prism (>= 1.6.0)
72
+ rbs (>= 4.0.0)
73
+ tsort
74
+ regexp_parser (2.12.0)
75
+ reline (0.6.3)
40
76
  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)
77
+ rspec (3.13.2)
78
+ rspec-core (~> 3.13.0)
79
+ rspec-expectations (~> 3.13.0)
80
+ rspec-mocks (~> 3.13.0)
81
+ rspec-core (3.13.6)
82
+ rspec-support (~> 3.13.0)
83
+ rspec-expectations (3.13.5)
49
84
  diff-lcs (>= 1.2.0, < 2.0)
50
- rspec-support (~> 3.11.0)
51
- rspec-mocks (3.11.1)
85
+ rspec-support (~> 3.13.0)
86
+ rspec-mocks (3.13.8)
52
87
  diff-lcs (>= 1.2.0, < 2.0)
53
- rspec-support (~> 3.11.0)
54
- rspec-support (3.11.1)
55
- rubocop (1.36.0)
88
+ rspec-support (~> 3.13.0)
89
+ rspec-support (3.13.7)
90
+ rubocop (1.89.0)
56
91
  json (~> 2.3)
57
- parallel (~> 1.10)
58
- parser (>= 3.1.2.1)
92
+ language_server-protocol (~> 3.17.0.2)
93
+ lint_roller (~> 1.1.0)
94
+ parallel (>= 1.10)
95
+ parser (>= 3.3.0.2)
59
96
  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)
97
+ regexp_parser (>= 2.9.3, < 3.0)
98
+ rubocop-ast (>= 1.49.0, < 2.0)
63
99
  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)
100
+ unicode-display_width (>= 2.4.0, < 4.0)
101
+ rubocop-ast (1.50.0)
102
+ parser (>= 3.3.7.2)
103
+ prism (~> 1.7)
104
+ rubocop-rake (0.7.1)
105
+ lint_roller (~> 1.1)
106
+ rubocop (>= 1.72.1)
107
+ rubocop-rspec (3.10.2)
108
+ lint_roller (~> 1.1)
109
+ regexp_parser (>= 2.0)
110
+ rubocop (~> 1.86, >= 1.86.2)
111
+ ruby-progressbar (1.13.0)
112
+ rubyzip (3.4.1)
113
+ securerandom (0.4.1)
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.3)
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,59 @@ DEPENDENCIES
89
134
  rubocop-rake
90
135
  rubocop-rspec
91
136
 
137
+ CHECKSUMS
138
+ activesupport (8.1.3.1) sha256=85458765f25ea48b9019c46b6bb3fa5683197bf4280d9f06710a6e8d7a831376
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.18) sha256=02d9a17429de1847b4e0c9f27a9ee4b20c0a74c0a641b4e77195d6019e3618ac
143
+ concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
144
+ connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
145
+ csv (3.3.6) sha256=aba61e7e507a66f03d45cb1f3c4b6359861c3504038b422962875dce099e4456
146
+ debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6
147
+ diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
148
+ drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
149
+ erb (6.0.7) sha256=c5ca6dc25b0ef974a44dc8f59fe847577122483b1968a38dec305c60bf91ee92
150
+ factory_bot (6.6.0) sha256=1fc1b3b5620ec980a6a27aec1b6ec8c250ca82962e970e8a40f93e8d388d4b89
151
+ i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
152
+ io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
153
+ irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
154
+ json (2.21.2) sha256=1f1d3b7cf2b3ba1a69beca0bb6db13d5438b80bff3cd54cdaaa620b9b07c1c6a
155
+ language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
156
+ lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
157
+ logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
158
+ meibo (0.29.1)
159
+ minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1
160
+ parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356
161
+ parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828
162
+ pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
163
+ prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
164
+ prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
165
+ racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
166
+ rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
167
+ rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
168
+ rbs (4.1.2) sha256=050eb1d8b508f1233bed929c0f2c7052302f7adf295230d9cb314e9024078f48
169
+ rdoc (8.0.0) sha256=03bf8c08a9639658855a0cfd77c0abca8325c227693f7f33f82957811348c469
170
+ regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb
171
+ reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
172
+ rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
173
+ rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
174
+ rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
175
+ rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
176
+ rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
177
+ rubocop (1.89.0) sha256=4dee8e3ee9c45e474834efd9e8d6fd031e8331c8dacdff0de4ad65ae0a6faae7
178
+ rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
179
+ rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d
180
+ rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2
181
+ ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
182
+ rubyzip (3.4.1) sha256=0a79e745b5c25872ebd148457df5665da8530ed8626c993b01457128f173ca02
183
+ securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
184
+ tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
185
+ tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
186
+ unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
187
+ unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
188
+ uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
189
+ zeitwerk (2.8.3) sha256=2c85125a8467ce069e20123d1e709a08955c9d29c118c25b46b7b7fafdbb92e5
190
+
92
191
  BUNDLED WITH
93
- 2.3.7
192
+ 4.0.18
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
+ }