Sha256: 0e41ecbe6a31f9ca9a0d26329f00e79f47539f549f89f2837e057ee8ca995129

Contents?: true

Size: 1.22 KB

Versions: 5

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true

module Meibo
  class JapanProfile < ::Meibo::Profile
    class Enrollment < ::Meibo::Enrollment
      ROLES = {
        student: "student",
        teacher: "teacher",
        administrator: "administrator",
        guardian: "guardian"
      }.freeze

      DataModel.define(
        self,
        attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map.merge(
          shusseki_no: "metadata.jp.ShussekiNo",
          public_flg: "metadata.jp.PublicFlg"
        ).freeze,
        converters: superclass.converters.merge(
          boolean: [*superclass.converters[:boolean], :public_flg].freeze,
          enum: { role: ROLES.values.freeze }.freeze,
          integer: [:shusseki_no].freeze
        ).freeze
      )

      # NOTE: 児童生徒の場合primaryはfalse固定
      # MEMO: 保護者の場合もそうでは?
      def initialize(role:, shusseki_no: nil, public_flg: nil, primary: (role == ROLES[:student] ? false : nil),
                     **other_fields)
        super(role: role, primary: primary, **other_fields)
        @shusseki_no = shusseki_no
        @public_flg = public_flg
      end

      def guardian?
        role == ROLES[:guardian]
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
meibo-0.21.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.20.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.19.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.18.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.17.0 lib/meibo/japan_profile/enrollment.rb