Module: Alias
- Defined in:
- lib/white_gold/abi/alias.rb
Instance Method Summary collapse
- #abi_attr(name, type = nil, original_name = nil) ⇒ Object
- #abi_def(name, original_name = nil, **na) ⇒ Object
- #self_abi_def(name, abi_name, abi_interface) ⇒ Object
Instance Method Details
#abi_attr(name, type = nil, original_name = nil) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/white_gold/abi/alias.rb', line 29 def abi_attr name, type = nil, original_name = nil if original_name if original_name.end_with? "_" getter = "_abi_#{original_name}#{name}".delete_suffix("?").to_sym setter = "_abi_set_#{name}".delete_suffix("?").to_sym else getter = "_abi_get_#{original_name}".to_sym setter = "_abi_set_#{original_name}".to_sym end else if name.end_with? "?" getter = "_abi_is_#{name}".delete_suffix("?").to_sym else getter = "_abi_get_#{name}".to_sym end setter = "_abi_set_#{name}".delete_suffix("?").to_sym end type ||= Boolean if name.end_with? "?" abi_def "#{name.to_s.delete_suffix("?")}=".to_sym, setter, type => nil abi_def name, getter, nil => type end |
#abi_def(name, original_name = nil, **na) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/white_gold/abi/alias.rb', line 2 def abi_def name, original_name = nil, **na if original_name if original_name.end_with? "_" abi_name = "_abi_#{original_name}#{name}".delete_suffix("=").delete_suffix("?").to_sym else abi_name = "_abi_#{original_name}".to_sym end else if name.end_with? "?" abi_name = "_abi_is_#{name}".delete_suffix("?").to_sym elsif name.end_with? "=" abi_name = "_abi_set_#{name}".delete_suffix("=").to_sym else abi_name = "_abi_#{name}".to_sym end end interface = na.map{|k, v| Interface.from k, v }.first self_abi_def name, abi_name, interface end |
#self_abi_def(name, abi_name, abi_interface) ⇒ Object
23 24 25 26 27 |
# File 'lib/white_gold/abi/alias.rb', line 23 def self_abi_def name, abi_name, abi_interface define_method name do |*a| abi_interface.call self, abi_name, *a end end |