lib/meibo/japan_profile/user.rb in meibo-0.21.0 vs lib/meibo/japan_profile/user.rb in meibo-0.22.0

- old
+ new

@@ -1,32 +1,43 @@ # frozen_string_literal: true module Meibo - class JapanProfile < ::Meibo::Profile + module JapanProfile class User < ::Meibo::User - DataModel.define( - self, - attribute_name_to_header_field_map: 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: superclass.converters - ) - - # 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 + 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 + ) + end end - def home_classroom - home_class && Meibo.current_roster.classes.find(home_class) + 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