Sha256: c9a86239e0f342737124d02b82f1f869eaacd9215b0d6d4156704701ac71128e
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
# 定数をクラスメソッドのように扱う機能を提供するモジュール # @note このモジュールを include したクラスやモジュールでは、定数をクラスメソッドのように呼び出すことができる。 # @note クラスメソッドのように呼び出したくない定数がある場合は、include されたクラスの内部でその定数の名称(シンボル)のリスト(配列)を private なクラスメソッド constants_not_converted_by_method_missing で指定する。 # @note {TokyoMetro} に対しては、このモジュールが定義されているファイルで include している。 module PositiveBasicSupport::Modules::ConstantsAsClassMethods extend ::ActiveSupport::Concern module ClassMethods def method_missing( method_name , *args ) if costants_converted_by_method_missing.include?( method_name.upcase ) return const_get( method_name.upcase ) else super( method_name , *args ) end end private def costants_converted_by_method_missing constants( false ) - constants_not_converted_by_method_missing end def constants_not_converted_by_method_missing [] end end end ::PositiveBasicSupport.module_eval do include ::PositiveBasicSupport::Modules::ConstantsAsClassMethods end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
positive_basic_support-0.2.0 | lib/positive_basic_support/modules/constants_as_class_methods.rb |