概要
内容
ec2.instances で使えるメソッドを取得する
結局のところ ec2.instances
オブジェクトで使えるメソッドを確認するば良いようなので...
puts instance.methods.sort
上記のように、変数としての instance
に methods
と sort
というメソッド(?)をつけて puts してみた。
! != !~ <=> == === =~ __id__ __resource_id__ __send__ _find_in_describe_instance_attribute_response_4 _find_in_describe_instance_attribute_response_5 _find_in_describe_instance_attribute_response_6 _find_in_describe_instance_attribute_response_7 _find_in_describe_instances_response_0 _find_in_describe_instances_response_1 _find_in_monitor_instances_or_unmonitor_instances_response_9 _find_in_run_instances_response_2 _find_in_run_instances_response_3 _find_in_terminate_instances_or_start_instances_or_stop_instances_response_8 add_tag ami_launch_index api_termination_disabled= api_termination_disabled? architecture associate_elastic_ip attach_network_interface attachments attributes_from_response attributes_from_response_object availability_zone block_device_mapping block_device_mappings block_devices (略)
ずらずらーとメソッドが表示される。
なんだか !
とか ===
とか ec2.instances
で使えるものというくくりでは間違いではなさそうだけど、ここ で示されているものよりもかなり冗長な感じがするので、ここ で示されてものと同程度に絞り込めないか調べてみた。
ec2.instances が属するクラスは?
ec2.instances
が属しているクラスを確認する場合には以下のようにする。
puts instance.class
そうすると...
AWS::EC2::Instance
となり AWS::EC2::Instance
に属していることが解る。さらに AWS::EC2::Instance
は何に属しているかというと...
puts instance.class.superclass
とすると...
AWS::EC2::Resource
とどんどんと辿っていけるようです。それは、ここ でも Inherits: のところを show all
すれば確認出来ます。
ec2.instances 固有のメソッドを表示するには...
ということで ec2.instances
固有のメソッドだけを表示するには、以下のようにして上位クラスのオブジェクトが使えるメソッドを非表示にすることで絞り込むことができそう。
puts (instance.methods - instance.class.superclass.instance_methods).sort
以下のように多少は絞れている感じ...
_find_in_describe_instance_attribute_response_4 _find_in_describe_instance_attribute_response_5 _find_in_describe_instance_attribute_response_6 _find_in_describe_instance_attribute_response_7 _find_in_describe_instances_response_0 _find_in_describe_instances_response_1 _find_in_monitor_instances_or_unmonitor_instances_response_9 _find_in_run_instances_response_2 _find_in_run_instances_response_3 _find_in_terminate_instances_or_start_instances_or_stop_instances_response_8 add_tag ami_launch_index api_termination_disabled= api_termination_disabled? architecture associate_elastic_ip attach_network_interface attachments attributes_from_response_object availability_zone
まとめ
- ドキュメントを読んだ方が一万倍くらい良いかもしれないけど、実際に手を動かすとなんとなく理解が深まる