核心 - 扩展DelegateClass类的类

时间:2016-12-20 16:03:36

标签: ruby self delegation monkeypatching

有一个宝石(gcloud),我想和我的一个(mll)一起使用。

我的库应该有一个核心扩展,它在<script charset="utf-8" type="text/javascript"> $(function() { // jQuery selection for the 2 select boxes var dropdown = { state: $('#select_state'), county: $('#select_county') }; // call to update on load updateCounties(); // function to call XHR and update county dropdown function updateCounties() { var send = { state: dropdown.state.val() }; dropdown.county.attr('disabled', 'disabled'); dropdown.county.empty(); $.getJSON("{{ url_for('_get_counties') }}", send, function(data) { data.forEach(function(item) { dropdown.county.append( $('<option>', { value: item[0], text: item[1] }) ); }); dropdown.county.removeAttr('disabled'); }); } // event listener to state dropdown change dropdown.state.on('change', function() { updateCounties(); }); }); </script> 上调用一些自己的方法。

Object#self

但是他们的库以这种方式声明了一个所谓的# shortened and simplified version of my code class Object def print_class p self.class end end 类:

List

# shortened and simplified version of their code require "delegate" class List < DelegateClass(::Array) def initialize arr = [] super arr end def some_method end ... end 属于另一个类

self

并且它进一步给了我问题,因为[].print_class # Array list = List.new([]) p list.class # List list.print_class # Array 没有Array具有的方法。例如,我无法在我的扩展程序中调用List - 我得到了some_method例外。

如何进行核心扩展,保留对{1}}正确类和方法的访问权限?

0 个答案:

没有答案