Module | Picker |
In: |
lib/picker.rb
|
インスタンスに対する respond_to? で正しいことが仮定されるメッセージ:
選択する最小単位を返す。 適切なキーがなければ false を返す。
# File lib/picker.rb, line 14 14: def picked_atom 15: return false unless picked_keys 16: return picked_keys[0] if picked_keys.size == 1 17: # the order of the following array is significant. 18: %w|person organization company post group|.each do |k| 19: return k if picked_keys.include?(k) 20: end 21: return "lump" # FIXME 22: end
選択するキーたちを返す。 適切なキーでなければ false を返す。
# File lib/picker.rb, line 7 7: def picked_keys 8: return false if input_parameter.blank? 9: input_parameter.split(',') 10: end
受け取ったオブジェクトから関連づいたオブジェクトの配列を返す。
# File lib/picker.rb, line 34 34: def picked_references(x) 35: return [x] if picked_keys.size == 1 36: case picked_atom 37: when "person" 38: return picked_keys.map {|k| k == "person" ? x : x.__send__("preferred_#{k}")} 39: when "organization", "post" 40: return picked_keys.map {|k| k == picked_atom ? x : x.__send__(k)} 41: else 42: raise ArgumentError, "invalid picked atom: #{picked_atom}" 43: end 44: end