Module: Kirico::Helper
- Included in:
- ApplicationRecord, BaseFDManagementRecord
- Defined in:
- lib/kirico/models/helper.rb
Instance Method Summary collapse
-
#define_code_mapper_method(*fields) ⇒ Object
指定したフィールドの値と区分値の値とをマッピングする メソッドを生やす。 対応表は models/mappers.ja.yml 参照.
-
#define_format_date_method(*fields) ⇒ Object
指定した date 型のフィールドを整形するメソッドを生やす.
Instance Method Details
#define_code_mapper_method(*fields) ⇒ Object
指定したフィールドの値と区分値の値とをマッピングするメソッドを生やす。対応表は models/mappers.ja.yml 参照
例:
cause_cd フィールドをマッピングするメソッド
def mapped_birth_at_era
value = object.send('cause_cd').try(:to_sym)
class_name = object.class.underscore
I18n.t("mappers.#{class_name}")[attr_name][value]
end
72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/kirico/models/helper.rb', line 72 def define_code_mapper_method(*fields) fields.each do |attr_name| define_method("mapped_#{attr_name}") do value = send(attr_name) return if value.nil? class_name = self.class.name.underscore @mappers ||= YAML.load_file(File.join(__dir__, 'mappers.yml')) @mappers['mappers'][class_name.to_s].try(:[], attr_name.to_s).try(:[], value.to_s) end end end |
#define_format_date_method(*fields) ⇒ Object
指定した date 型のフィールドを整形するメソッドを生やす
例:
created_at メソッドを整形
# 2015/04/09 => 20150409 def fmt_ymd_created_at
return nil if submit_at.nil?
submit_at.try(:to_era, '%Y%m%d')
end
# 2015/04/09 => 270409 def fmt_era_ymd_created_at
return nil if submit_at.nil?
submit_at.try(:to_era, '%E%m%d')
end
# 2015/04/09 => H def submit_at_era_nengo
submit_at.try(:to_era, '%o%E').try(:[], 0)
end
# 2015/04/09 => 平成def submit_at_era_nengo_kanji
submit_at.try(:to_era, '%O%E').try(:gsub, /\d+\z/, '')
end
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/kirico/models/helper.rb', line 40 def define_format_date_method(*fields) fields.each do |attr_name| define_method("fmt_ymd_#{attr_name}") do send(attr_name).try(:strftime, '%Y%m%d') end define_method("fmt_era_ymd_#{attr_name}") do send(attr_name).try(:to_era, '%E%m%d') end define_method("#{attr_name}_era_nengo") do send(attr_name).try(:to_era, '%o%E').try(:[], 0) end define_method("#{attr_name}_era_nengo_kanji") do send(attr_name).try(:to_era, '%O%E').try(:gsub, /\d+\z/, '') end end end |