Ruby�Ǽ���γ����⥸�塼����ɤ߹�����ˡ - include �� extend �� module_function - (�ߢώ�)o�� sasata299's blog���ɤ�Ǥơ��⤷�����������äȸ��򤬤���Τ��ʤȻפä��Τ�require��include��extend���ä�
require��Kernel�⥸�塼��Υ᥽�å�
Ruby�dz����饤�֥����ɤ߹���ˤϡ�require �����Ѥ��ޤ���
Ruby�Ǽ���γ����⥸�塼����ɤ߹�����ˡ - include �� extend �� module_function - (�ߢώ�)o�� sasata299's blog
����Ϥ����̤ꡣ��äȶ���Ū�˸����ȡ�require�ϰ����Υե�����̾��Ruby�ե�������ɤ߹���Ǽ¹Ԥ���᥽�åɤǤ������������Хѥ����ä��Ȥ��Ϥ��Υե�����򡢤����Ǥʤ����ϥ����ɥѥ���ͥ���̾�̤���é�äƺǽ�˸��Ĥ��ä��ե����������ɤ��롣�ǡ���ĥ�ҤޤǴޤ�ƽ񤤤Ƥ�����Ϥ��Υե�����򡢤����Ǥʤ�����.rb�⤷����.so�Τ�Τ�����ɤ��뤽���ʡ�require��¾��load�Ȥ����᥽�åɤ⤢�äƤ���Ϥ�뤳�Ȥ�Ʊ�������ɡ�require�ξ���ɤ߹���Τϰ��٤��������ɡ�load�ξ���̵�����ɤ߹������ʤΤǥ饤�֥��Ȥ����ɤ߹���Ȥ���require��Ȥ���
include��Module���饹�Υ᥽�å�
�������⥸�塼����ɤ߹���Ȥ��ˤ� include ���ʤ��Ȥ����ʤ����Ȥ������Ȥ�ֽ��Ƥ�Ruby�פ�Ƥ���Τä��Τ���®��Ƥߤޤ�����
Ruby�Ǽ���γ����⥸�塼����ɤ߹�����ˡ - include �� extend �� module_function - (�ߢώ�)o�� sasata299's blog
����ϼ㴳�ְ㤤��include�ϥ⥸�塼���Ȥ���ä��������ʤ��Τǡ�
����Ĵ�٤���̡��ɤ��� include �äƤ��Υե�������ɤ߹��ߤϤ��Ƥ���ʤ��äݤ��Ǥ��͡������ޤǤ�ե�������ɤ߹��ߤ� require ��ô���äݤ��Ǥ���
Ruby�Ǽ���γ����⥸�塼����ɤ߹�����ˡ - include �� extend �� module_function - (�ߢώ�)o�� sasata299's blog
�äƤ����Τ���������
���㤢include�äƲ��ʤ����äƤ��Ȥʤ�����ɡ�����ϡ������˥⥸�塼����ꡢinclude�������饹��include���줿�⥸�塼����������ɲä����פȤ������Ȥ򤷤Ƥ���롢�Ȥ���Module���饹�Υ᥽�åɡ��㤨�С����륯�饹Bar��Foo�⥸�塼���include����ȡ������ѡ����饹(Bar������Ѿ����Ƥʤ���а��ۤΥ����ѡ����饹Object)�ȤηѾ��ط��δ֤�Foo�⥸�塼��򺹤���������᥽�åɤ䥯�饹�ѿ���õ���Ȥ��ˡ�Bar�򸫤뢪̵���ä���Foo�򸫤뢪̵���ä���Object�򸫤뢪̵���ä���Kernel�򸫤뢪����Ǥ�̵���ʤ�̵���פȤ������ˤ��Ƥ���롣�Ĥޤꤳ���������ȡ�
class Bar include Foo end Bar.ancestors # ancestors�ϥ����ѡ����饹�ȥ��󥯥롼�ɤ��Ƥ�⥸�塼���ͥ���̽���֤��᥽�å� # => [Bar, Foo, Object, Kernel]
�ǡ��⥸�塼������������include�����ꤹ��ȡ������������Ȥˤʤ롣
- Hoge�⥸�塼������self.hoge��������줿�᥽�åɤϡ�Hoge.hoge�Ȥ��ƻȤ���
- Hoge�⥸�塼������fuga�Ȥ���������줿�᥽�åɤϡ�Hoge.fuga�Ȥ��Ƥ��Ȥ��ʤ�
- include����ȡ�include�������饹�����󥹥��󥹤����fuga���Ȥ���褦�ˤʤ�
��������̤ηѾ��ط��ˤ��륵�֥��饹�ȥ����ѡ����饹�Τ��Ȥ�ͤ���Ȳ��Τ��ȤϤʤ���
- def self.hoge�����饹��hoge�Ȥ����᥽�åɤ��������
- def fuga�����Υ��饹�Υ��󥹥��󥹤�fuga�Ȥ����᥽�åɤ��������
- ���饹��������줿hoge�᥽�åɤ�Klass.hoge�Ȥ������ǸƤ٤�
- �����ѡ����饹��������줿fuga���󥹥��󥹥᥽�åɤϥ��֥��饹�Υ��󥹥��󥹤����fuga�Ȥ������ǸƤ٤�
�ǡ����ΡַѾ��פ���ʬ���include����פ��ɤߴ�����Ȥ��륯�饹����⥸�塼���include�����Ȥ��ε�ư��ʬ����Ȼפ���Ʊ���褦�˿����񤦡�
�ȥåץ�٥�Ǥ�include
�ǡ������ޤǤϡ֥��饹���⥸�塼���include�����Ȥ��פ��á����ä�����Ϥ���äȤ�䤳�������������Ǥϥȥåץ�٥�ǥ⥸�塼���include���Ƥ������ɡ�����Ϥ���ä����򤤤��Ȥˤʤ롣
�ȥåץ�٥�äƲ��ʤ���ä��äʤ�����ɡ��ȥåץ�٥롢�Ĥޤ�classʸ��moduleʸ��֥��å����椸��ʤ������ֳ�¦�ǽ񤤤�Ruby�����ɤϡ�main�Ȥ������ۤ�Object���饹�Υ��󥹥��󥹤�self�Ǥ��롣�ʤΤǡ��ȥåץ�٥�Dz��餫�Υ᥽�åɤ�ƤӽФ��ȡ�self.method���Ĥޤ�main���֥������ȤΥ᥽�åɤ�ƤӽФ����ˤʤ롣�ǡ���������̯�ʤ�����ɡ����㤢�ȥåץ�٥��include�Ȥ���ä���def self.hoge�����������Ĥ��ȥåץ�٥��hoge�ˤʤꡢdef fuga�����������Ĥ�main���֥������ȤΥ��󥹥��󥹤�fuga�ˤʤꤽ���ʤ�Τ����ɡ������Ϥʤ�ʤ�������main���֥������Ȥ�Object���饹�Υ��󥹥��󥹤ʤΤˡ�����Τ���˥��󥹥��󥹤äƲ������̣�狼���衢�ä��äǤ��衣
�ºݤϤɤ��ʤäƤ뤫�Ȥ����ȡ�def self.hoge����������᥽�åɤ����ƤΥ��饹�Υ��饹�᥽�åɤˤʤꡢdef hoge����������᥽�åɤ����ƤΥ��󥹥��󥹥᥽�åɤˤʤ����ʤΤǡ��������Υ����ɤ�hello�Ϥ�Ǥ���Object���饹�Υ��󥹥��󥹤Ǥ���Ȥ�����main���֥������ȤΥ᥽�åɤˤʤ�ޤ�������debug��Zozom.debug�Ȥ��ƸƤ٤�Τߤʤ餺�̤ʥ��饹���äƤ��㤨��Yakitori.debug�ߤ����˸Ƥ٤롢�Ȥ����äˤʤ롣��䤳������
main���֥������Ȥ���include����
����ϲ��ʤ�������Τɤ��������Ȥ��IJ��ϡ������Ȥ�Ǥ�ʤ����Ƨ�߹���Ǥ��ޤä��Τ��Ĥȸ��������Ȥ��������ɡ��ޤ��¤ϴ�ñ���ä��ä��ꤹ�롣classʸ�����include��Module���饹�Υ��饹�᥽�åɤǤ���Ȥ�����include�����ɡ��ȥåץ�٥��include����̯���ü�ǡ��ȥåץ�٥��include�᥽�åɤĤޤ�main���֥������Ȥ�include�᥽�åɤ�¹Ԥ����Object���饹��include���饹�᥽�åɤ�Ƥ���褦�ʵ�ư�򤹤롣���Τ���ˡ����Τ褦�ʤ��Ȥˤʤ롣
- ���ƤΥ��饹��Object���饹�Υ��֥��饹�ʤΤ�(1.9�Ϥ��㳰�⤢�뤱�ɡ����ͤ������ȻפäƤ����Τ�)��include�����⥸�塼������def self.hoge�Ȥ����������Ƥ����᥽�åɤ����饹�᥽�åɤȤ��ƻȤ���
- main���֥������Ȥ�Object���饹�Υ��󥹥��󥹤ʤΤ�include�����⥸�塼������def fuga�Ȥ����������Ƥ����᥽�åɤ����󥹥��󥹥᥽�åɤȤ��ƻȤ��롢���Τ���fuga���Ȥ߹��ߴؿ��Τ褦�˸�����褦�ˤʤä�
Ĺ���ʤäƤ����Τǰ�ö�ޤȤ��
- Ruby�ե�������ɤ߹���Τ�require
- include�ϡ֥⥸�塼���Ȥ���ä�����פǤϤʤ��ơ֥⥸�塼�뤬���äƤ������򡢥��饹���Ȥ߹���᥽�åɡ�
- class/moduleʸ������Ȥ��ȡ��⥸�塼�����ħ�����Υ��饹���ɲä���
- �⥸�塼������def self.hoge�Ȥ����������Ƥ���Ĥ����Υ��饹�����饹�᥽�åɤˤʤ�
- �⥸�塼������def fuga�Ȥ����������Ƥ���Ĥ����Υ��饹�����󥹥��󥹥᥽�åɤˤʤ�
- class/moduleʸ�������Ȥ��ȡ��⥸�塼�����ħ��Object���饹���ɲä���
- �⥸�塼������def self.hoge�Ȥ����������Ƥ���Ĥ����ƤΥ��饹�����饹�᥽�åɤˤʤ�
- �⥸�塼������def fuga�Ȥ����������Ƥ���Ĥ����ƤΥ��饹�����󥹥��󥹥᥽�åɤˤʤ�
Ĵ�٤Ƥ���include���פ��Τۤ���䤳������������Ĺ���ʤä���ä��Τǡ�module_funcfion��extend�ϼ��ε�����³����
����äȤ�����Â
def self.hoge�Ȥ��������Υ᥽�å�����ϡ���˥��饹�᥽�åɤ�����Ȥ��ƻȤ��Ƥ뤱�ɡ����Τ˸����ȡ��ðۥ᥽�åɡפȤ����Τ���������Ρ��ʤΤ�self����ʬ�ϼ¤Ϥɤ�ʥ��֥������ȤǤ⤢�ޤĤ������Ǥ⤤���������饹�᥽�åɤȸƤ�Ǥ��Τμ��֤ϡ�"���饹�Ȥ�������Υ��֥�������"���ðۥ��饹��(���󥹥���)�᥽�åɡפ��ä��ꤹ�롣�Ϥ����Τ����ðۥ��饹�Ȥ��ðۥ᥽�åɤȤ��ϡļ��ε����ǽ񤯤��ʡ�¿ʬ��
���Ƥ�Ruby
���ԡ�Yugui
���丵�����饤�꡼����ѥ�
ȯ������2008-06-26
���������١�
�������ߤ򸫤�