Sha256: 842a7501a581256b30b1fbc292f8148ebfd84233aa8f32c7ff5b0fc7d13c5124

Contents?: true

Size: 1.44 KB

Versions: 3

Compression:

Stored size: 1.44 KB

Contents

# frozen_string_literal: true

module Meibo
  module JapanProfile
    class User < ::Meibo::User
      module ClassMethods
        def define_additional_definition(klass)
          DataModel.define(
            klass,
            attribute_name_to_header_field_map: klass.superclass.attribute_name_to_header_field_map.merge(
              kana_given_name: "metadata.jp.kanaGivenName",
              kana_family_name: "metadata.jp.kanaFamilyName",
              kana_middle_name: "metadata.jp.kanaMiddleName",
              home_class: "metadata.jp.homeClass"
            ).freeze,
            converters: klass.superclass.converters.merge(
              mext_grade_code: [:grades].freeze
            )
          )
        end
      end

      module InstanceMethods
        # NOTE: enabled_userは必須ではないが固定
        def initialize(enabled_user: true, kana_given_name: nil, kana_family_name: nil, kana_middle_name: nil,
                       home_class: nil, **other_fields)
          super(enabled_user: enabled_user, **other_fields)
          @kana_given_name = kana_given_name
          @kana_family_name = kana_family_name
          @kana_middle_name = kana_middle_name
          @home_class = home_class
        end

        def home_classroom
          home_class && Meibo.current_roster.classes.find(home_class)
        end
      end

      include InstanceMethods
      extend ClassMethods

      define_additional_definition(self)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
meibo-0.27.1 lib/meibo/japan_profile/user.rb
meibo-0.27.0 lib/meibo/japan_profile/user.rb
meibo-0.26.0 lib/meibo/japan_profile/user.rb