ä»äºã§ã¡ã¿ããã°ã©ãã³ã°ãã¦ã¦èª¿ã¹ã¦ã¾ãã
å¿ãã人ã®ããã®ã¾ã¨ã
extend
ã¯ç¹ç°ã¯ã©ã¹ã¸ã® include
ãªã®ã§ Object#singleton_class.include?
ãã
説æ
ãµã³ãã«ã³ã¼ã
class Precure end module FormChangeable def form_change! "ããã«ã³ã«ã³ï¼" end end class SmilePrecure < Precure end class HappinessChargePrecure < Precure extend FormChangeable end
classã«å¯¾ãã¦extendãã¦ãã®ã§ãããã風ã«å¼ã¹ãã
HappinessChargePrecure.form_change! # => ããã«ã³ã«ã³ï¼ SmilePrecure.form_change! # => NoMethodError: undefined method `form_change!' for SmilePrecure:Class
ãã ãFormChangeable
ãextendããã¦ãããã©ãã調ã¹ãããã¨ãããã°ã°ã£ã¦ãããæ¹ãè¦ã¤ãããã«ããã£ãã
Module#include?
ããããã ãã Module#extend?
ããããã¨æã£ããæå¤ã«ãªãã£ãããã
include?
ã ã¨ãã¡ã
HappinessChargePrecure.include?(FormChangeable) # => false
åºæ¬ã«ç«ã¡è¿ã£ã¦ãªãã¡ã¬ã³ã¹ãèªãã§ããã¨ãinstance method Object#extend ã®
extend ã®æ©è½ã¯ããç¹ç°ã¯ã©ã¹ã«å¯¾ãã Module#includeã ã¨è¨ãæ¿ãããã¨ãã§ãã¾ãã
ã¨ããã®ãèªãã§ãã³ã¨ããã
ç¹ç°ã¡ã½ããã«å¯¾ã㦠include?
ããã°è§£æ±º
HappinessChargePrecure.singleton_class.include?(FormChangeable) # => true